2009-09-27 71 views
3

是否有任何Win32 API检查给定句柄是否属于当前进程?检查句柄是否属于当前进程?

+0

什么样的句柄? – 2009-09-27 20:43:16

+0

我想说“任何”,但我的印象是它会让它变得不可能或者更难。所以我会解决一个窗口句柄:) – TheCodeJunkie 2009-09-27 20:49:23

+0

根据当前答案的窗口句柄。任何类型的内核句柄 - 像文件句柄?内核句柄恰好作为每个进程句柄表中的数组索引来实现。所以他们会有像“1”或“2”这样的值。这意味着没有一种确定内核句柄属于哪个进程的方法: - 它们只在自己的进程环境中才有意义。 – 2009-09-30 15:19:10

回答

2

从窗口句柄中,您可以使用GetWindowThreadProcessId Function来获取进程ID。
从一个进程句柄你得到的ID与GetProcessId Function.

我不知道有多容易是从其他句柄得到一个进程句柄。但我相信这将与枚举kernel objects有关。

+1

窗口句柄不是内核对象。它们由用户模式下的user32.dll管理。 – 2009-09-30 14:17:14

1

句柄可以“属于”多个进程(子进程中的继承句柄等)