3
A
回答
1
有一個回答你的問題http://www.codeproject.com/KB/threads/ParentPID.aspx
總之,你創建lpfCreateToolhelp32Snapshot()
運行的所有進程的快照,然後遍歷它與lpfProcess32First()/lpfProcess32Next()
找到你的進程(通過GetCurrentProcessId()
標識)。一旦你找到了自己的流程,你得到的結構就爲你提供了父進程的進程ID,這是運行你的應用的進程ID。
一旦你得到家長的PID,很容易獲得exe文件的文件名和其他屬性與EnumProcessModules()
和GetModuleFileNameEx()
。
但是,您大概可以使用鏈接中的代碼。
1
你想通過編程的方式找到它嗎?然後,你會發現這些related questions有所幫助:
- How to get parent process in .NET in managed way
- How can I get the PID of the parent process of my application
- How can a Win32 process get the pid of its parent?
如果你只是想看看你可以使用Sysinternals公司Process Explorer父進程。
1
爲什麼你需要知道這個? Windows並沒有像unix那樣維護一個嚴格的父級進程heirarchy,它記錄了當進程創建時父進程的PID,但是當這個進程消失時它不會被更新(因爲一個進程沒有跟蹤它的子進程,所以你無法更新它)。這意味着父進程PID有可能指向一個不再存在的進程。更糟糕的是,從理論上說,進程ID可以被重用,這意味着父進程ID可以指向完全不同的進程。
相關問題
- 1. 與DLL彈簧啓動可執行文件的可執行文件
- 2. 啓動本地可執行文件Javascript
- 3. 鶯可執行文件無法啓動
- 4. 從網站啓動可執行文件?
- 5. 爲什麼可執行文件不可執行?
- 6. 爲什麼我的C++輸出可執行文件太大了?
- 7. tclsh85可執行文件和tclsh85s可執行文件有什麼區別?
- 8. 主要可執行文件運行啓動程序可執行文件,然後啓動程序運行主要可執行文件
- 9. 可執行文件
- 10. 可執行文件
- 11. 爲了運行,VC++可執行文件需要什麼?
- 12. 將Unix可執行文件轉換爲Windows可執行文件
- 13. 通過Netbeans上的文件啓動任意可執行文件
- 14. IIS可執行文件沒有執行
- 15. C#可執行文件執行目錄
- 16. 可執行文件的CDN
- 17. 使用自定義配置文件啓動可執行文件
- 18. 我想將可執行文件注入其他可執行文件
- 19. 如何將動態可執行文件轉換爲靜態可執行文件?
- 20. xcode:在路徑上沒有可啓動的可執行文件
- 21. 可執行文件的Android.mk文件:accRuntimeTest
- 22. 啓動C在啓動時raspbian可執行文件
- 23. 從我的可執行文件調用
- 24. 使awk文件可執行
- 25. RPMbuild與可執行文件
- 26. 單個可執行文件
- 27. helink dll可執行文件
- 28. 可執行文件和Django
- 29. 製作可執行文件
- 30. InnoSetup strip可執行文件