跟踪在VB.net应用程序中调用的外部.EXE的参数

时间:2010-02-12 01:45:36

标签: windows debugging arguments exe command-line-arguments

我没有源代码的程序正在执行第三方EXE文件。我想找出它发送到EXE文件的参数(即thirdparty.exe -c“foo”-d“bar”)。我知道初始程序是用Visual Basic编写的。

我是否可以运行任何可以监控执行调用并拦截参数的工具?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

要以编程方式获取它,请使用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 :(得分:1)

使用Image File Execution Options。通过适当地设置注册表项,您可以让操作系统执行您选择的可执行文件(而不是thirdparty.exe),允许您转换参数并自行运行thirdparty.exe,如果这是您需要的。中间程序可能甚至不知道差异。