Pergunta

Eu tenho uma aplicação que chamar outro aplicativo de console e passar para ele alguns parâmetros (console app é um vídeo / app Coverter áudio) ... há uma maneira para programaticamente "espião" ou pegar os outros do que enganchando paramters passaram / monitoramento shellexecute / CreateThread etc?

Foi útil?

Solução

Sim, há - como você escreve Process Explorer é capaz de fazê-lo, e você poderia empregar a mesma técnica. Mas AFAIK não há nenhuma tradução Delphi da winternl.h arquivo a partir do Platform SDK, por isso é ainda mais tedioso e difícil. Além disso, este é específico versão extremamente, e há chances de que vai quebrar com a próxima versão do Windows. Também não é muito claro se isso funciona para 64 processos bit (de um processo de 32 bits).

Se você realmente deseja fazê-lo você vai encontrar as informações necessárias em esta postagem de blog por Matt Pietrek , e no artigo CodeProject" Leia Ambiente Cordas do processo remoto".

Se você não pretende usá-lo para programas comerciais de código fechado, em seguida, um olhar para o (licença GPL) versão anotada do winternl.h arquivo do projeto ReactOS seria, provavelmente, também ajuda.

Outras dicas

Criar um mesmo executável que apenas chama o original e passa todos os parâmetros sobre a mesma. Em seguida, mova o original em algum lugar mais e substituí-lo com o seu exe. Seu programa pode, então, registrar todas as chamadas para ele, incluindo todos os parâmetros.

É um Win32 FAQ desde 1992: apenas ler o PEB
. Veja no Win32 grupo de peritos .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top