2009-09-27 69 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

句柄可以「屬於」多個進程(子進程中的繼承句柄等)