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可执行文件