繁体   English   中英

您如何获取线程的进程ID?

[英]How do you get Process id of thread?

我想获取Chrome的线程ID。 我不想获取我的窗口的线程ID。 我想获取其他窗口的线程ID。 我应该使用什么功能? 处理器ID是否与线程ID相同?

您可以使用GetWindowThreadProcessId函数获取窗口的线程ID。 它有两个参数,第一个是窗口的句柄,第二个是进程ID。 该函数返回线程ID。 这里查看更多信息。 您可以通过使用获得句柄到窗口WindowFromPoint函数。 (我假设您在Windows计算机上)。

我认为“处理器”是指过程。 进程ID与线程ID不同。 每个进程内部可能都有许多线程,每个线程都有自己的ID。 通过将参数发送到GetWindowThreadProcessId函数的第二个参数,您可以获得进程ID及其信息。

在以下代码中,win_thread_id将获得执行时光标所在窗口的线程ID:

HWND handle;
POINT *point = new POINT();
GetCursorPos(point);
handle = WindowFromPoint(*point);

//Get the thread ID for the window from the handle
DWORD win_thread_id;
win_thread_id = GetWindowThreadProcessId(handle, NULL);

注意:我没有测试代码,顺便说一句,您应该包括windows.h

您没有在问题中指定平台。 假设这是Windows,则可以在这里开始研究: http : //msdn.microsoft.com/zh-cn/library/ms684847(v=VS.85).aspx

简而言之,您需要枚举进程和线程(或者,枚举桌面上的窗口),然后可以打开相应资源的句柄。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM