elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C# Duda] Como interactuar con una página web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C# Duda] Como interactuar con una página web  (Leído 4,519 veces)
SCM

Desconectado Desconectado

Mensajes: 17


Ver Perfil
[C# Duda] Como interactuar con una página web
« en: 18 Enero 2015, 20:58 »

Hola buenas, tenía una duda que no sé exactamente si es algo sencillo de hacer o por el contrario bastante complicado, agradecería si me echárais una mano porque no sé muy bien por donde comenzar haciendo esto con C#.

La idea es que, por ejemplo, yo tenga abierto el navegador Chrome en el escritorio, y abriendo un programa (da lo mismo si es con la interfaz de la consola o con un GUI mientras funcionara..) interactue con Chrome, es decir:
-Abro Chrome y me conecto a la página de google.com
-Un programa en C# interactua con el navegador y hace que busque X cosa en google

Se puede hacer creando tu mismo un navegador en C#, pero eso no me interesa... porque no me interesa crear un navegador entero, me gustaría que a poder ser utilizase Chrome por ejemplo.
También se podría hacer mediante sockets y peticiones http, pero eso no interactuaría con el navegador, ocurriría solamente en el programa, y por lo tanto no podría ver en tiempo real lo que está ocurriendo.

Gracias, un saludo!


« Última modificación: 18 Enero 2015, 21:22 por SCM » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: [C# Duda] Como interactuar con una página web
« Respuesta #1 en: 18 Enero 2015, 22:58 »

Se puede hacer creando tu mismo un navegador en C#, pero eso no me interesa... porque no me interesa crear un navegador entero, me gustaría que a poder ser utilizase Chrome por ejemplo.

Quizás haya herramientas que te ahorrarían el 90% de todo ese esfuerzo de elaboración manual para automatizar de forma "interactiva" un navegador externo, como por ejemplo Selenium, pero nunca lo he usado en .Net, y por los ejemplos que he visto PARECE ser que con Selenium habría que hookear/inyectar el proceso de Chrome, no estoy seguro, algo leí sobre el tema hace tiempo, pero parece requerir tela de elaboración también.

Para este tipo de tareas yo he utilizado las classes de Windows Automation (con Firefox), obviamente primero se requiere hacerle bastantes análisis (Spy/Ing. Inversa) al poceso para descubrir el nombre de las classes, el nombre de sus funciones, los handles de las ventanas y los controles ...identificar las barras de navegaciónd le navegador y el resto de sus componentes, y etc, todo lo que sea necesario para automatizarlo, puedes valerte de Winspy++, SpyStudio, o las herramientas de Microsoft UI Automation de la SDK de Windows para conocer los detalles necesarios del exe.
http://msdn.microsoft.com/en-us/library/System.Windows.Automation(v=vs.110).aspx
En resumen, deberías leer sobre técnicas de IPC (InterProcess comunication) para conocer otras alternativas también.

Creo que deberías plantearte de nuevo la pregunta y no complicarte de esa manera, puedes implementar un navegador con funcionalidades básicas de forma sencilla y obtener mayor control, puedes utilizar un WebBrowser Control (IE), o usar la libreria de GeckoFX (Firefox), la librería de WebKit (Chrome), o la librería de pago de EO WebBrowser (Chrome), al menos esos son los que caben a destacar en mi opinión, y entre los 4 yo prefiero el navegador de EO por ser el más completo y compatible (flash, scripts, etc), sin duda el mejor de los 4 para evitar quebraderos de cabeza.

De todas formas te muestro ejemplos aleatorios de la utilización de Windows Automation para Chrome, en C#:
http://stackoverflow.com/questions/26381515/get-url-from-chrome-to-c-sharp-not-working
http://stackoverflow.com/questions/18897070/getting-the-current-tabs-url-from-google-chrome-using-c-sharp

Saludos


« Última modificación: 18 Enero 2015, 23:10 por Eleкtro » En línea


SCM

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: [C# Duda] Como interactuar con una página web
« Respuesta #2 en: 18 Enero 2015, 23:41 »

Gracias por la respuesta!! Después de leer lo que comentas, lo cierto es que parece verdaderamente complicado para simplemente automatizar un par de cosas, así que si que sale a cuenta crear un webBrowser con WebKit, por ejemplo.

Aunque de todos modos veo bastante útil eso que has colocado sobre Windows.Automation, y si no me equivoco tras haber leído algunos artículos en este foro puede ser utilizada esa misma librería para automatizar algo en un videojuego por ejemplo, no?
Por ejemplo, algo bastante básico, automatizar la compra de x armas en Counter Strike, asociado a diferentes atajos de teclado. O igual me estoy liando y no se usa esa librería para ese tipo de fines.

De todos modos la duda está resuelta, gracias!
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: [C# Duda] Como interactuar con una página web
« Respuesta #3 en: 19 Enero 2015, 07:30 »

Gracias por la respuesta!! Después de leer lo que comentas, lo cierto es que parece verdaderamente complicado para simplemente automatizar un par de cosas, así que si que sale a cuenta crear un webBrowser con WebKit, por ejemplo.

Quizás simplemente cueste demasiado por falta de información o herramientas para esa tarea específica en este lenguaje, por poner un ejemplo comparativo, en Ruby con la gema/librería Watir WebDriver (que se basa en Selenium) es cuestión de escribir un par de lineas para conseguir abrir un navegador y navegar a "X" página de forma "interactiva" (visualmente quiero decir), en python lo mismo con Mechanize (aunque si nor ecuerdo mal no era "interactivo"), pero en .Net, y por lo poco que sé de este tema de automatizar una aplicación externa, Windows Automation parece ser la opción más viable, aunque resulta algo complejo de utilizar.


Citar
AWindows.Automation, y si no me equivoco tras haber leído algunos artículos en este foro puede ser utilizada esa misma librería para automatizar algo en un videojuego por ejemplo, no?
Por ejemplo, algo bastante básico, automatizar la compra de x armas en Counter Strike, asociado a diferentes atajos de teclado. O igual me estoy liando y no se usa esa librería para ese tipo de fines

No, Windows Automation no está orientado en ese aspecto ni se utiliza para esos fines (ni sabría decirte cómo hacerlo), una cosa es automatizar las funcionalidades de un Soft, y otra es leer/escribir los offsets de un proceso/juego.

De todas formas en el foro de MSDN puedes plantear y resolver dudas al respecto de UI Automation:
https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/home?forum=windowsaccessibilityandautomation

Si la idea es simular atajos del teclado entonces puedes hacer simplemente eso, registrar hotkeys globales en el sistema y utilizarlas, es una tarea mucho más sencilla.
(o en el caso del Counter-Strike, simplemente puedes editar el archivo de configuración para añadir combinaciones de teclas para una compra automática, eso ya sería lo más sencillo de todo)

Otra alternativa de automatización de software sería crear Macros (Grabar y reproducir movimientos del mouse y pulsaciones del teclado, entre otras cosas), para ello puedes utilizar aplicaciones de terceros (ej: JitBit Macro Recorder) o hacerlo tu mismo utilizando las funciones de la API de Windows ( FindWindowEx + EnumWindows + OtrasFunciones + SendInput (o MouseSend + Keybd_Event) ).
http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310%28v=vs.85%29.aspx

Aquí un ejemplo básico:
http://msdn.microsoft.com/en-us/library/ms171548%28v=vs.110%29.aspx

Saludos
En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como interactuar entre un .exe de vb y word!!
Programación Visual Basic
wmd_18 2 1,109 Último mensaje 14 Marzo 2006, 06:54
por juampivicius
Como interactuar con el correo.
Programación Visual Basic
fred99 1 1,178 Último mensaje 26 Junio 2009, 23:39
por BlackZeroX (Astaroth)
Interactuar con pagina web
Programación General
chilvao 2 3,304 Último mensaje 29 Marzo 2012, 19:39
por [Case]
Interactuar una PC con X tablets ¿cómo?
Windows
Platanito Mx 2 1,093 Último mensaje 3 Octubre 2014, 19:09
por Platanito Mx
interactuar página web
Programación General
jd.rodriguez21 0 815 Último mensaje 29 Noviembre 2015, 23:52
por jd.rodriguez21
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines