Pregunta

Tengo una aplicación que llama a otra aplicación de consola y le pasa algunos parámetros (la aplicación de la consola es una aplicación de cobertura de video / audio) ... ¿hay una manera de programar " espiar " o capturar los parámetros pasados ??que no sean enganchar / monitorear shellexecute / CreateThread, etc.?

¿Fue útil?

Solución

Sí, hay, mientras escribe, Process Explorer puede hacerlo, y podría emplear la misma técnica. Pero AFAIK no hay una traducción Delphi del archivo winternl.h del Platform SDK, por lo que es aún más tedioso y difícil. Además, esto es extremadamente específico de la versión, y hay posibilidades de que se rompa con la próxima versión de Windows. Tampoco está del todo claro si esto funciona para procesos de 64 bits (de un proceso de 32 bits).

Si realmente quieres hacerlo, encontrarás la información necesaria en este blog publicado por Matt Pietrek , y en el artículo de CodeProject " Leer las cadenas de entorno del proceso remoto " ;.

Si no planea usarlo para programas comerciales de código cerrado, consulte la (licencia GPL) versión anotada del archivo winternl.h del proyecto ReactOS probablemente también ayude.

Otros consejos

Cree usted mismo un ejecutable que solo llame al original y le pase todos los parámetros. Luego mueva el original a otro lugar y reemplácelo con su exe. Luego, su programa puede registrar todas las llamadas, incluidos todos los parámetros.

Es una pregunta frecuente sobre Win32 desde 1992: solo lea el PEB.
Consulte en grupo de expertos de Win32 .

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