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