Pregunta

Tengo un pequeño problema.

Relacionado con mis preguntas anteriores sobre SP3 integrado vs.SP3 parcheado, llegamos a la conclusión de que se está iniciando un proceso de Internet Explorer, con instrucciones de cargar un archivo .html simple desde el disco local, que contiene javascript, que abre el resto de un sistema de chat/reuniones más grande.Internet Explorer se inicia desde un cliente Lotus Notes.

Desafortunadamente, todo lo que podemos ver es el proceso IExplore.exe apareciendo en el Administrador de tareas y, unos segundos después, desaparece nuevamente.

Si intentamos abrir el archivo .html local, que encontramos en el disco, nos muestra esa barra de información en la parte superior, indicándonos que ha deshabilitado el contenido activo.Sin embargo, éste no es el verdadero problema.Tenemos otra máquina que tiene la misma configuración pero donde todo funciona, y cargar el archivo .html manualmente también nos da el mismo error.

Sin embargo, tal vez se muestre otro mensaje de error cuando se inicia IExplore desde las notas, pero como se supone que este proceso simplemente inicia el resto del sistema y esta ventana está oculta, no podemos verla, es decir, el error mensaje/problema.

Entonces pensé, tal vez debería intentar crear un pequeño programa que espere a que se inicie IExplore.exe y luego muestre inmediatamente la ventana, para que podamos ver el mensaje de error, o cualquiera que sea el problema.Al menos, con suerte, podremos ver eso.

Hasta ahora todo bien, excepto que si inicio un proceso desde mi propio programa, con una ventana oculta, el identificador de la ventana principal es 0 y, por lo tanto, no puedo mostrar la ventana después de todo.Espero que este proceso IExplore.exe iniciado desde Lotus Notes tenga el mismo problema.

Mi programa de monitoreo está escrito en C# y básicamente ejecuta este bucle:

foreach (var process in Process.GetProcesses())
{
    if (process.ProcessName.ToLower() == "iexplore")
        result.Add(process);
}

Esto selecciona todos los procesos de IExplore.exe, Windows o no, y con IE8, obtengo 2 procesos para la primera ventana, como se esperaba.Ejecuto esto una y otra vez y manejo las diferencias con las ejecuciones anteriores.

Sin embargo, el proceso tiene brevemente un identificador de ventana 0 al inicio, así que lo cambié a esto:

foreach (var process in Process.GetProcesses())
{
    if (process.ProcessName.ToLower() == "iexplore" &&
        process.MainWindowHandle != IntPtr.Zero)
    {
        result.Add(process);
    }
}

pero ahora no detecta nada en absoluto, incluso después de que la ventana haya obtenido un identificador (y sí, Process.MainWindowHandle tiene un valor de identificador distinto de cero después de que se haya mostrado la ventana, pero en el caso de que la ventana sea nunca se muestra, permanece en 0.)

Entonces, la pregunta es:¿Hay alguna forma de tomar este proceso oculto de IExplore.exe e indicarle que se muestre solo cuando aún no tiene un identificador de ventana?Lo dudo, pero quizás alguien pueda demostrar que estoy equivocado.

De lo contrario, mi plan de respaldo es crear un programa shim IExplore.exe, que reenvía todos los argumentos de la línea de comando al original, excepto que especifica que se mostrará la ventana.¿Sería esta una solución?

¿Fue útil?

Solución

No creo que hay alguna manera de forzar una ventana de Internet Explorer que no tiene un identificador de ventana para asignar un identificador de ventana por sí mismo (o utilizar una previamente asignado uno) y manifestarse.

En cuanto a su método de copia de seguridad: I Think Esto funcionaría, pero que está trabajando en un territorio peligroso allí. De hecho, me gustaría recomendar a escribir su cuña sólo tiene que entrar cada invocación de iexplore.exe y todo lo que va en ella, y el uso que para caracterizar su problema; sólo después de la caracterización a fondo su problema con el registro completamente benigna iba yo sugiero la posibilidad de modificar los parámetros para forzar iexplore.exe para mostrar una ventana.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top