我想获得chrome的线程ID。我不想得到我的窗口的线程ID。我想获得其他窗口的线程ID。我应该使用什么功能?并且处理器ID与线程ID相同吗?
答案 0 :(得分:0)
您可以使用GetWindowThreadProcessId函数获取窗口的线程ID。它需要两个参数,第一个是窗口的句柄,第二个是进程ID。该函数返回线程ID。有关详细信息,请查看here。您可以使用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
答案 1 :(得分:0)
您没有在问题中指定平台。假设这是Windows,您可以在此处开始您的研究:http://msdn.microsoft.com/en-us/library/ms684847(v=VS.85).aspx
简而言之,您需要枚举进程和线程(或者,在桌面上枚举窗口),然后您可以打开相应资源的句柄。