Отслеживание аргументов внешнего .EXE, вызываемого в приложении VB.net - PullRequest
1 голос
/ 12 февраля 2010

Программа, для которой у меня нет исходного кода, выполняет сторонний EXE-файл. Я хотел бы узнать аргументы, которые он отправляет в EXE-файл (например, thirdparty.exe -c "foo" -d "bar") Я знаю, что первоначальная программа написана на Visual Basic.

Существуют ли какие-либо инструменты, которые я могу запустить, которые будут контролировать вызов выполнения и перехватывать аргументы?

Любая помощь будет оценена.

Ответы [ 2 ]

3 голосов
/ 12 февраля 2010

Чтобы получить его программно, используйте 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"));
}

Если вы просто хотите увидеть командную строку, вы можете сделать это, используя Process Explorer .

1 голос
/ 12 февраля 2010

Использовать Параметры выполнения файла изображения . Установив соответствующий раздел реестра, вы можете заставить ОС выполнять исполняемый файл по вашему выбору (вместо thirdparty.exe), что позволит вам преобразовать параметры и запустить третий файл для них самостоятельно, если это то, что вам нужно. Средняя программа, вероятно, даже не будет знать разницу.

...