【发布时间】:2021-11-02 08:32:15
【问题描述】:
在 windows 10 中如何知道哪个进程正在使用键盘输入?
【问题讨论】:
-
请参阅 键盘焦点和激活 docs.microsoft.com/en-us/windows/win32/inputdev/… 另外,到目前为止您尝试/研究了什么,请阅读 How to Ask。
标签: c++ windows debugging winapi keyboard
在 windows 10 中如何知道哪个进程正在使用键盘输入?
【问题讨论】:
标签: c++ windows debugging winapi keyboard
要获得前台窗口(用户当前正在工作的窗口,操作系统将所有键盘输入发送到该窗口)的窗口句柄,您可以使用函数GetForegroundWindow。
要获取创建该窗口的线程的进程ID,可以使用函数GetWindowThreadProcessId。
以下控制台程序将每隔 5 秒打印一次前台窗口句柄的值,以及创建该窗口的线程和进程 ID。
#include <windows.h>
#include <stdio.h>
int main( void )
{
HWND hWnd;
DWORD dwTID, dwPID;
while ( 1 )
{
hWnd = GetForegroundWindow();
dwTID = GetWindowThreadProcessId( hWnd, &dwPID );
printf(
"Handle of current foreground window: %p\n"
"That window was created by:\n"
"Thread ID: %u\n"
"Process ID: %u\n",
hWnd, dwTID, dwPID
);
fflush( stdout );
Sleep( 5000 );
printf( "\n" );
}
}
【讨论】: