gpt4 book ai didi

.NET - 查找外部应用程序主线程 ID

转载 作者:行者123 更新时间:2023-12-03 12:58:02 25 4
gpt4 key购买 nike

我试图找到 的句柄主 外部应用程序的线程。我试图找到主线程的程序是多线程的,重要的是我总是能找到主线程。我知道这个程序最多只有一个副本在运行。这就是我目前的做法:

Process[] someProcesses = Process.GetProcessesByName("some");
IntPtr threadHandle = OpenThread(ThreadAccess.SUSPEND_RESUME, false, (uint)someProcesses[0].Threads[0].Id);

大多数时候,Threads[0] 是主线程,但其他时候不是。如何确保我找到的线程是另一个应用程序的主线程?

谢谢你。

最佳答案

这是一个疯狂的猜测,但通过 Processes ,您可以获得 ProcessThreadCollection通过 Threads属性(property)。每个线程都有一个 StartTime (也可用作 Ticks),因此假设主线程是第一个启动的,您可以选择启动时间最短的线程。

否则,如果您可以获得每个线程的调用堆栈,则可以查找应用程序入口点。我找不到一个托管调用,但我相信你可以通过 P/Invoke 获得它。

关于.NET - 查找外部应用程序主线程 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/522394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com