Convertir internet explorer en una pagina que no se pueda abandonar.

Iniciado por Antoniolioli, 26 Marzo 2014, 12:27 PM

0 Miembros y 1 Visitante están viendo este tema.

Antoniolioli

Os explico un poco he creado un .bat que inicia la url www.google.com, la estructura de este es muy simple:
//start.bat//
start www.google.es

Y ahora he creado un .vbs  llamado controla , que lo que hace es comprobar cada 5 segundos si se esta ejecutando el .bat , si no lo  vuelve a ejecutar , lo he probado con aplicaciones .exe y solo se volvia a ejecutar si se cerraba dicha aplicación.

Lo que me sucede cuando lo programo con el start.bat es que me hable mil navegadores (bucle) y debo cerrar el wscript.exe en la administración del sistema para que pare.Alguna idea?¿

Espera(5000)
Function Espera(miliSegundos)
   Set WshShell = WScript.CreateObject ("WScript.Shell")
   Set colProcessList = GetObject("Winmgmts:").ExecQuery ("Select * from Win32_Process")

   For Each objProcess in colProcessList
       If objProcess.name = "nocerrar.cmd" then
           Encontrado = True
   End if
   Next
   If Encontrado = True then
       rem Msgbox("Proceso encontrado")
   Else
       rem Msgbox("Proceso No encontrado")
       WshShell.Run("nocerrar.cmd")
   End If
   WScript.Sleep(miliSegundos)
   Espera(milisegundos)
End Function


Código (vb) [Seleccionar]

//controla.vbs//
Espera(5000)
Function Espera(miliSegundos)
   Set WshShell = WScript.CreateObject ("WScript.Shell")
   Set colProcessList = GetObject("Winmgmts:").ExecQuery ("Select * from Win32_Process")

   For Each objProcess in colProcessList
       If objProcess.name = "start.bat" then
           Encontrado = True
   End if
   Next
   If Encontrado = True then
       rem Msgbox("Proceso encontrado")
   Else
       rem Msgbox("Proceso No encontrado")
       WshShell.Run("start.bat")
   End If
   WScript.Sleep(miliSegundos)
   Espera(milisegundos)
End Function



este es el correcto , sorry




[MOD]: ¿Ves que diferencia con el formato de la pregunta?.

Eleкtro

#1
Hola

1. El subforo indicado para dudas de Scripting es Scripting, no dudas generales.

2. Has de usar el botón modificar para editar un comentario, no inundarnos con más posts para hacer correciones de última hora.

3. El doble post no está permitido.

4. Has de usar las etiquetas de código para insertar códigos.

Porfavor, LEE LAS NORMAS.






El problema es simple de entender, estás intentando buscar un archivo de texto plano como si se tratase de un proceso,
en otras palabras, le estás indicando al Script que busque un proceso que no existe (nunca se instanció), y por eso se inicia un bucle infinito.

Código (vb,2) [Seleccionar]
   For Each objProcess in colProcessList
       If objProcess.name = "start.bat" then
       ...
   End if


Start.bat no es un proceso, por proceso se entiende a un archivo binario que acaba en .exe,
al ejecutar el archivo Start.bat, lo que se inicia es el proceso CMD.exe, que es el encargado de parsear las órdenes del Script, y ese es el proceso que debes controlar.

Añádele un título a tu Script Batch:
Código (dos,2) [Seleccionar]
@Echo Off
Title Mi titulo
...

Y eso añadirá un Caption a la barra de título del proceso CMD:


...Así ya tienes algo que poder comparar de forma (algo más) eficiente en VBS:

Código (vb,1,2) [Seleccionar]
ProcessName   = "CMD.exe"
WindowCaption = "Mi título"

Set WSS = WScript.CreateObject("WScript.Shell")
Set CMD = WSS.Exec("CMD.exe /C ""Tasklist.exe /FI ""ImageName EQ " & ProcessName & """ /FO csv /NH /V | Find /I """ & WindowCaption & """""")

Do Until CMD.Status ' Esperar hasta que que finalice la ejecución del proceso.
    WScript.Sleep 500 ' ms
Loop

' Evaluamos el código de salida del proceso (el que devuelve el comando 'FIND')
Select case CMD.ExitCode

Case 0 ' El nombre de la ventana se ha encontrado.
' Hacer algo...

Case 1 ' El nombre de la ventana no se ha encontrado.
' Hacer algo...

Case Else ' Código de error inesperado, quizás '2', por un error de sintaxis.
' Hacer algo...

End Select


PD: Puedes dejar de usar la Class Win32_Process de WMI ya que no proporciona ninguna propiedad para obtener el título de la ventana de un proceso http://msdn.microsoft.com/en-us/library/aa394372%28v=vs.85%29.aspx

De todas formas, lo que estás haciendo en Batch es complétamente innecesario, no tiene lógica, tienes un script batch sólamente con una instrucción (Start) cuando puedes hacer lo mismo desde el propio lenguaje de VisualBasicScript, lo cual te seria más sencillo y te ahorra abrir múltiples archivos innecesarios:
Código (vb) [Seleccionar]
WScript.CreateObject("WScript.Shell").Run "www.Google.com"

Saludos








crist_andy

hola

el mismo problema siempre ah agoviado a mchas ppersonas, lo que te recomiendo que hagas es que re instales  firefox y a explores y de utilizar otro pero si solo te gustan esos te dejare una pagina donde hay keys que  te serviran para identificar virus

http://elarchivo.es/proceso/iexplore.exe.html