如何由PID得到執行檔名稱? |
答題得分者是:pcboy
|
wivern
初階會員 發表:31 回覆:63 積分:28 註冊:2002-07-31 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
把您的 PID 和找出來的所有 PID 去比對, 就可以知道執行檔名稱
[發表] 顯示目前執行的程序(Process List) (含Source Code) http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=86821
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2007-08-17 15:17:43, 註解 無‧
|
shunchia63
高階會員 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
講到PID
最近在測WatchDog AP 需找AP Handle 有兩個 CASE1: 當程式在Task時PID 可以找到Handle 如下 FindMainWindow(PID: DWORD): DWORD; CASE2: 當程式在處理程序時時PID 可以找不到Handle,需知道AP 的ClassName 用FindWindow去找 想不出用什麼方式去找 .除了FindWindow. Why 因為要監控AP是否當掉,然後KillProcess and Restart AP function EnumWindowsProc(Wnd: DWORD; var EI: TEnumInfo): Bool; stdcall; var PID: DWORD; begin GetWindowThreadProcessID(Wnd, @PID); Result := (PID <> EI.ProcessID) or (not IsWindowVisible(WND)) or (not IsWindowEnabled(WND)); if not result then EI.HWND := WND; end; function FindMainWindow(PID: DWORD): DWORD; var EI: TEnumInfo; begin EI.ProcessID := PID; EI.HWND := 0; EnumWindows(@EnumWindowsProc, Integer(@EI)); Result := EI.HWND; end; function KillProcessByID(APID: THandle): boolean; var AhProcess: THandle; begin // The OpenProcess function returns a handle of an existing process object. AhProcess := OpenProcess(PROCESS_ALL_ACCESS, TRUE, APID); Result := TerminateProcess(AhProcess, 0); end; |
anyone
中階會員 發表:1 回覆:63 積分:52 註冊:2007-02-12 發送簡訊給我 |
|
wivern
初階會員 發表:31 回覆:63 積分:28 註冊:2002-07-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |