admin 管理员组

文章数量: 1184232

  • 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 - 记事本 的句柄,

本文标签: 记事本 如下 编程