- AttachThreadInput函数说明如下:
WINUSERAPI
BOOL
WINAPI
AttachThreadInput(
__in DWORD idAttach,
__in DWORD idAttachTo,
__in BOOL fAttach);简单来说,就是让两个线程,拥有共同的焦点,可以进行处理输入等信息
简要的来说就是如此,接下来是简单的使用:
-
首先创建一个win32的项目,并且添加一个按钮
添加按钮的代码如下:
//创建按钮 CreateWindow(L"Button", L"测试按钮", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON,35,10,120,60, hWnd,(HMENU)IDB_FRONTBUTTON,hInst ,NULL);然后按钮点击事件中逻辑处理的代码如下:
HWND QQ_HWND=FindWindow(NULL,L"本周.txt - 记事本");
DWORD cur_threadid =GetWindowThreadProcessId(QQ_HWND,NULL);
DWORD iss =GetCurrentThreadId();
DWORD ForegroundThreadID =GetWindowThreadProcessId(GetForegroundWindow(),NULL);if(cur_threadid == ForegroundThreadID){MessageBox(nullptr,L"重复id",L"退出",0);break;}else{//测试后台窗口激活到前台AttachThreadInput(ForegroundThreadID,cur_threadid,TRUE);::SetForegroundWindow(QQ_HWND);
HWND hFocus =GetFocus();AttachThreadInput(ForegroundThreadID,cur_threadid,FALSE);PostMessage(hFocus, WM_KEYDOWN, VK_TAB,0);//空格输入//}
这段代码的含义是 先获取到窗口名为
本周.txt - 记事本
的句柄,


发布评论