2010-02-12 14 views
1

Un programme pour lequel je n'ai pas le code source exécute un fichier EXE tiers. Je voudrais trouver les arguments qu'il envoie au fichier EXE (c'est-à-dire thirdparty.exe -c "foo" -d "bar"). Je sais que le programme initial est écrit en Visual Basic.Suivi des arguments d'un fichier .EXE externe appelé dans une application VB.net

Existe-t-il des outils que je peux exécuter pour surveiller l'appel d'exécution et intercepter les arguments?

Toute aide serait appréciée.

Répondre

3

Pour l'obtenir par programme, utilisez WMI:

SelectQuery query = new SelectQuery("select CommandLine from Win32_Process where Name='thirdparty.exe'"); 
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); 
foreach (var process in searcher.Get()) 
{ 
    Debug.WriteLine(process.GetPropertyValue("CommandLine")); 
} 

Si vous voulez juste voir la ligne de commande, vous pouvez le faire en utilisant Process Explorer.

+0

+1 pour Process Explorer – leoluk

1

Utilisez Image File Execution Options. En définissant correctement une clé de registre, vous pouvez demander au système d'exploitation d'exécuter l'exécutable de votre choix (au lieu de thirdparty.exe), ce qui vous permet de transformer les paramètres et d'exécuter thirdparty.exe sur ceux-ci, si c'est ce dont vous avez besoin. Le programme intermédiaire ne connaîtra probablement même pas la différence.