線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2638
推到 Plurk!
推到 Facebook!

請問 Win32 中的 PROCESS_INFORMATION 結構

答題得分者是:jow
linly
一般會員


發表:42
回覆:37
積分:15
註冊:2007-10-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-07 13:16:06 IP:218.168.xxx.xxx 訂閱
您好!!!
我想請問一下,在 CreateProcess 中的最後一個參數 - PROCESS_INFORMATION,會在 Create 之後,
收到 Process HANDLE( 此 HANDLE 是 HANDLE 型別,而非 HWND 型別 )、ID, Thread HANDLE、ID,我想
請問的是:

1. 能否從這個 HANDLE 找到這個應用程式所有的視窗 HWND?
( 我目前是用 EnumWindows GetWindowThreadProcessId 來比較是不是和我當初產生的應用程式 id 一樣,不過沒成功~"~ )

2. 這個 HANDLE 型別的 HANDLE 感覺上是唯一,不過應用程式識別碼可以由 Process id 來確定,那這個 HANDLE的出現為了是?

3. 比較老掉牙的問題,不過還是不太清楚,這個 HANDLE 型別的 HANDLE,和 HWND 的 HANDLE 差在哪邊?
( 我會這樣描述是因為很多人還是喜歡把 HWND 的值稱作 HANDLE,我就霧煞煞了 )

謝謝你們的答覆 m( _ _ )m

底下是 PROCESS_INFORMATION Structure
typedef struct _PROCESS_INFORMATION {
  HANDLE hProcess;                 // 放大一下
  HANDLE hThread;
  DWORD dwProcessId;
  DWORD dwThreadId;
} PROCESS_INFORMATION, 
 *LPPROCESS_INFORMATION;
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-07 18:58:45 IP:123.193.xxx.xxx 訂閱
(1)爬文一下, 這篇應該可以滿足你的需求
http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=30409

(2)HANDLE是由Windows回應你的系統資源要求配置好之後,
回傳給你的, 可是你應該無法自訂一個HANDLE編號, 要求Windows
在這個HANDLE編號下配置你要的資源.即使你拿到兩個Handle,只要
內含值相同,也只能存取那個編號下的資源.

(3)HWND, HANDLE, HDC...還有其他名稱的編號,其實都是LongWord,
是Windows給你的"票根",

Windows說: 如果您想對某個資源做動作, 請準備好你的票根,
我們將會為您服務, 同時請保留您的票根, 我們將依此編號將
相關處理訊息通知您.

如果您不再需要我們的服務, 請務必將此票根歸還, 以免造成系統
資源浪費, 資源耗盡時別怪我給你臉色看(Dead Blue Screen).

個人看法僅供參考^^


===================引 用 linly 文 章===================
您好!!!
我想請問一下,在 CreateProcess 中的最後一個參數 - PROCESS_INFORMATION,會在 Create 之後,
收到 Process HANDLE( 此 HANDLE 是 HANDLE 型別,而非 HWND 型別 )、ID, Thread HANDLE、ID,我想
請問的是:

1. 能否從這個 HANDLE 找到這個應用程式所有的視窗 HWND?
( 我目前是用 EnumWindows GetWindowThreadProcessId 來比較是不是和我當初產生的應用程式 id 一樣,不過沒成功~"~ )

2. 這個 HANDLE 型別的 HANDLE 感覺上是唯一,不過應用程式識別碼可以由 Process id 來確定,那這個 HANDLE的出現為了是?

3. 比較老掉牙的問題,不過還是不太清楚,這個 HANDLE 型別的 HANDLE,和 HWND 的 HANDLE 差在哪邊?
( 我會這樣描述是因為很多人還是喜歡把 HWND 的值稱作 HANDLE,我就霧煞煞了 )

謝謝你們的答覆 m( _ _ )m

底下是 PROCESS_INFORMATION Structure
typedef struct _PROCESS_INFORMATION {
  HANDLE hProcess;                 // 放大一下
  HANDLE hThread;
  DWORD dwProcessId;
  DWORD dwThreadId;
} PROCESS_INFORMATION, 
 *LPPROCESS_INFORMATION;
系統時間:2024-04-24 13:08:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!