我使用以下方法
[DllImport("kernel32.dll", SetLastError=true)] static extern int GetProcessId(IntPtr hWnd);
尝试获取正在运行的进程的 processId,我拥有的唯一信息是 HWND。我的问题是它总是返回错误代码 6,即 ERROR_INVALID_HANDLE。我想我可能会将参数更改为 int 类型,但这也没有用。我无法枚举正在运行的进程,因为任何时候都可能有超过 1 个实例在运行。
谁能看看我做错了什么?
注意:该进程是从暴露给框架的自动化对象产生的,并且仅提供 HWND 属性。也许还有另一种方法可以让 processID 看到,因为我编写的代码首先负责运行它?
我的代码看起来与此类似...
AutomationApplication.Application extApp = new AutomationApplication.Application(); extApp.Run(); ...