小编Esb*_*sby的帖子

GetProcessId返回零

我有一个充满进程句柄的数组,现在我正在尝试获取每个进程句柄的相关进程ID.

但是,我的所有Process ID都回归零.任何人都能指出我错过了哪个明显的问题?

非常感谢

'child'数组填充了进程ID,因此:

currChild = FindWindowEx(hParent, prevChild, null, null);
Run Code Online (Sandbox Code Playgroud)

然后我尝试获取进程ID:

for (int i = 0; i < children.Count; ++i)
 {
      handle = children[i];
      pid = GetProcessId(handle);
      Console.WriteLine(children[i].ToString("X") + " : " + pid.ToString());
Run Code Online (Sandbox Code Playgroud)

API:

[DllImport("user32.dll", EntryPoint = "FindWindowEx", CharSet = CharSet.Auto)]
   static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("kernel32.dll", EntryPoint = "GetProcessId", CharSet = CharSet.Auto)]
    static extern int GetProcessId(IntPtr handle);
Run Code Online (Sandbox Code Playgroud)

输出:

2417E2 : 0
B20D9A : 0
48108C : 0
8809D6 : 0
B5140E …
Run Code Online (Sandbox Code Playgroud)

c# pid handle

0
推荐指数
1
解决办法
888
查看次数

标签 统计

c# ×1

handle ×1

pid ×1