Ahora con procesos del sistema

02/01/2006 - 18:26 por Ch0rY | Informe spam
Como nadie me ha contestado a esto

Estoy usando un control webbrowser llamado weboculto, para comprobar si
existe el archivo o no, de esta forma

webOculto.Navigate(New Uri(RutaArchivo))

como hago para q no salte el gestor de descargas, ni el cuadro de dialogo
guardar como, para poder descargarlo desde mi aplicacion, y no tener que
estar cancelando cadavez q va a descargar un archivo?

lo intento enfocar desde otro punto.

Se que es posible cerrar aplicaciones y procesos desde vb.net

Dim proc As Process
Dim processes() As Process
Dim procName As String = "descarga de archivo"
processes = Process.GetProcesses
For Each proc In processes
If proc.MainWindowTitle.ToLower.IndexOf(procName) <> -1 Then
proc.CloseMainWindow()
proc.WaitForExit()
End If
Next

pero como hago para que ese codigo se ejecute cuando se carga un nuevo
proceso en memoria?

Gracias

Preguntas similare

Leer las respuestas

#1 Jesús López
02/01/2006 - 23:47 | Informe spam
Yo creo que usar un control webbrowser para comprobar si un archivo existe o
no es como matar moscas a cañonazos.

Una forma más liviana de ver si un archivo es accesible a través de http es
usar un objeto webrequest con el método HEAD para obtener sólo la
información mínima acerca del archivo, en vez de intentar descargárselo por
completo.

Supón que en un formulario tienes un botón Button1 y una caja de texto
txtUrl. El siguiente código muestra los encabezados devueltos por el
servidor en caso de que el archivo sea accesible o muestra un mensaje de
error en caso contrario. Si el archivo no existe obtentrás un error HTTP 404
que está especialmente tratado en el código:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim request As WebRequest = WebRequest.Create(Me.txtUrl.Text)
request.Method = "HEAD"
Try
Dim response As WebResponse = request.GetResponse()
For Each Header As String In response.Headers.AllKeys
Debug.WriteLine(String.Format("{0}:{1}", Header,
response.Headers.Item(Header)))
Next
Catch ex As WebException
If ex.Status = WebExceptionStatus.ProtocolError And ex.Message
Like "*(404)*" Then
MsgBox("No existe")
Else
MsgBox(ex.Message)
End If
Catch ex As Exception
MsgBox("Error inesperado: " & ex.Message)
End Try
End Sub


Saludos:

Jesús López
MVP

"Ch0rY" escribió en el mensaje
news:
Como nadie me ha contestado a esto

Estoy usando un control webbrowser llamado weboculto, para comprobar si
existe el archivo o no, de esta forma

webOculto.Navigate(New Uri(RutaArchivo))

como hago para q no salte el gestor de descargas, ni el cuadro de dialogo
guardar como, para poder descargarlo desde mi aplicacion, y no tener que
estar cancelando cadavez q va a descargar un archivo?

lo intento enfocar desde otro punto.

Se que es posible cerrar aplicaciones y procesos desde vb.net

Dim proc As Process
Dim processes() As Process
Dim procName As String = "descarga de archivo"
processes = Process.GetProcesses
For Each proc In processes
If proc.MainWindowTitle.ToLower.IndexOf(procName) <> -1 Then
proc.CloseMainWindow()
proc.WaitForExit()
End If
Next

pero como hago para que ese codigo se ejecute cuando se carga un nuevo
proceso en memoria?

Gracias

Respuesta Responder a este mensaje
#2 Ch0rY
03/01/2006 - 00:25 | Informe spam
Si lo he intentado, pero como primero tengo q identificarme en una web, la
unica manera q lo he conseguido es mediante el webbrowser, y los archivos a
descargar los cojo de la propia pagina, cuyos enlaces saltan a otra pagina, q
devuelve el archivo a descargar.

Para q os hagais una idea, es una web q usa phpNuke, inicialmente mediante un
boton, cargo en el webbrowser la pagina principal y ahi me identifico,
despues ya puedo navegar por la web, y cuando lo deseo, pulso otro boton, q
me saca del codigo de la pagina los enlaces, q analiza y discrimina los q no
me interesan, para despues, permitirme cual quiero seleccionar y descargar.

Si hago lo q me dices, lo q consigo es una pagina indicandome que intento
acceder a un area restringida.

Lo estoy usando para descargarme en este caso aprox. 600 mapas del Juego Day
of Defeat, para meterlos en un DVD, y tenerlos, para cuando me hagan falta.

Con este programa, tb me aseguro de tener actualizado "mis" mapas con los q
estan alojados en la web.

Espero haberme explicao bien.

Si quereis ver como van esas web, estoy haciendo pruebas con
http://www.kgustmapping.com

Gracias, x tu ayuda
Respuesta Responder a este mensaje
#3 Jesús López
03/01/2006 - 08:05 | Informe spam
Aún así, se puede hacer todo automáticamente con WebRequest. La cuestión es
enviar al servidor exáctamente lo mismo que haría Internet Explorer, sin
olvidar las cookies, los encabezados ni los datos de los controles de los
formularios.

Sé que hay algún programilla por ahí que te muestra todo lo que va por http.
Sería bueno monitorizar con ese programa mientras se realizan los pasos para
descargar un archivo usando el Internet Explorer.

¿Cual es el sitio al que estás accediendo y cuales son exáctamente los pasos
que sigues hasta descargar un archivo?

Podría ser divertido automatizar el proceso de descarga de los archivos :-)

"Ch0rY" escribió en el mensaje
news:
Si lo he intentado, pero como primero tengo q identificarme en una web, la
unica manera q lo he conseguido es mediante el webbrowser, y los archivos
a
descargar los cojo de la propia pagina, cuyos enlaces saltan a otra
pagina, q
devuelve el archivo a descargar.

Para q os hagais una idea, es una web q usa phpNuke, inicialmente mediante
un
boton, cargo en el webbrowser la pagina principal y ahi me identifico,
despues ya puedo navegar por la web, y cuando lo deseo, pulso otro boton,
q
me saca del codigo de la pagina los enlaces, q analiza y discrimina los q
no
me interesan, para despues, permitirme cual quiero seleccionar y
descargar.

Si hago lo q me dices, lo q consigo es una pagina indicandome que intento
acceder a un area restringida.

Lo estoy usando para descargarme en este caso aprox. 600 mapas del Juego
Day
of Defeat, para meterlos en un DVD, y tenerlos, para cuando me hagan
falta.

Con este programa, tb me aseguro de tener actualizado "mis" mapas con los
q
estan alojados en la web.

Espero haberme explicao bien.

Si quereis ver como van esas web, estoy haciendo pruebas con
http://www.kgustmapping.com

Gracias, x tu ayuda
Respuesta Responder a este mensaje
#4 Jesús López
03/01/2006 - 10:24 | Informe spam
He encontrado una herramienta el "proxyTrace"
http://www.pocketsoap.com/tcptrace/pt.aspx que monitoriza el tráfico http.

Usar esta herramienta es sencillo.
(1) Ejecuta "proxyTrace.exe"
(2) Sale un cuadro de diálogo preguntántote un puerto. Puedes dejar el
predeterminado: 8080
(3) Abre el Internet Explorer
(4) Menú herramientas opciones de internet
(5) Ficha conexiones, botón "Configuración de LAN"
(6) Activa la casilla "Utilizar un servidor proxy para su LAN ."
(7) dirección: localhost, puerto: 8080 (o el que hayas puesto antes)
(8) pulsa aceptar y aceptar otra vez

A partir de este momento, todo lo que hagas con el internet explorer quedará
registrado en el proxyTrace. Cuando cierres el proxyTrace tienes que volver
la configuración del proxy del internet explorer como estaba anteriormente,
si no no podrás navegar.

He hecho unas pruebas con el proxy trace y he llegado a la conclusión de que
el sitio utiliza cookies persistentes para la autentificación. Lo único que
hay que hacer para que funcione el WebRequest es pasarle esa cookie:

Dim request As WebRequest =
WebRequest.Create("http://www.kgustmapping.com/mapas/p....exe")
request.Method = "HEAD"
request.Headers.Add("Cookie", "lang=spanish; user=XYZXYZXYZ aquí va
el identificador de usuario, lo verás en el proxyTrace XYZYZYZYZYZYZYZ")
Try
Dim response As WebResponse = request.GetResponse()
For Each Header As String In response.Headers.AllKeys
Debug.WriteLine(String.Format("{0}:{1}", Header,
response.Headers.Item(Header)))
Next
Catch ex As WebException
If ex.Status = WebExceptionStatus.ProtocolError And ex.Message
Like "*(404)*" Then
MsgBox("No existe")
Else
MsgBox(ex.Message)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try

Saludos:

Jesús López
MVP


"Jesús López" escribió en el mensaje
news:
Aún así, se puede hacer todo automáticamente con WebRequest. La cuestión
es enviar al servidor exáctamente lo mismo que haría Internet Explorer,
sin olvidar las cookies, los encabezados ni los datos de los controles de
los formularios.

Sé que hay algún programilla por ahí que te muestra todo lo que va por
http. Sería bueno monitorizar con ese programa mientras se realizan los
pasos para descargar un archivo usando el Internet Explorer.

¿Cual es el sitio al que estás accediendo y cuales son exáctamente los
pasos que sigues hasta descargar un archivo?

Podría ser divertido automatizar el proceso de descarga de los archivos
:-)

"Ch0rY" escribió en el mensaje
news:
Si lo he intentado, pero como primero tengo q identificarme en una web,
la
unica manera q lo he conseguido es mediante el webbrowser, y los archivos
a
descargar los cojo de la propia pagina, cuyos enlaces saltan a otra
pagina, q
devuelve el archivo a descargar.

Para q os hagais una idea, es una web q usa phpNuke, inicialmente
mediante un
boton, cargo en el webbrowser la pagina principal y ahi me identifico,
despues ya puedo navegar por la web, y cuando lo deseo, pulso otro boton,
q
me saca del codigo de la pagina los enlaces, q analiza y discrimina los q
no
me interesan, para despues, permitirme cual quiero seleccionar y
descargar.

Si hago lo q me dices, lo q consigo es una pagina indicandome que intento
acceder a un area restringida.

Lo estoy usando para descargarme en este caso aprox. 600 mapas del Juego
Day
of Defeat, para meterlos en un DVD, y tenerlos, para cuando me hagan
falta.

Con este programa, tb me aseguro de tener actualizado "mis" mapas con los
q
estan alojados en la web.

Espero haberme explicao bien.

Si quereis ver como van esas web, estoy haciendo pruebas con
http://www.kgustmapping.com

Gracias, x tu ayuda




Respuesta Responder a este mensaje
#5 Ch0rY
03/01/2006 - 17:05 | Informe spam
Otia, otia, otia, eres la otia, cohonudo el proxyTrace.exe ese, y fenomenal
el codigo, lo he probao en una aplicacion chorra y funciona fenomenal, ahora
a implantarlo en la menos chorra :D

Muuuuuchas gracias
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida