【精选】通过获取窗口句柄模拟键鼠点击的一些方法 |
您所在的位置:网站首页 › 按键精灵怎么在特定窗口显示 › 【精选】通过获取窗口句柄模拟键鼠点击的一些方法 |
目的:
实现能自动在窗口中实现鼠标点击与键盘输入的操作(以QQ自动发送某些为例) 语言:C/C++ 实现原理:一、窗口句柄(HWND): 【1】 每个程序窗口都有一个窗口句柄,在程序的一次运行中句柄是不会发生变化的(每当重新开启程序后句柄会发生改变),句柄的类型为HWND 【2】 我们可以用VS自带的Spy++工具获取窗口句柄,窗口类名,与标题 【2.1】 比如下图我们“记事本”的 窗口句柄是:00030B24 窗口类名是:Notepad 窗口标题是:新建文本文档.txt - 记事本 【3.1】使用FindWindow函数查找窗口句柄 函数原型:HWND FindWindow(LPCSTR lpClassName,LPCSTR lpWindowName); 其中:lpClassName参数指向类名,lpWindowName指向窗口名,如果有指定的类名和窗口的名字则表示成功返回一个窗口的句柄。否则返回零。(类名与窗口名至少知道一个就可以进行查找) 例:获得窗口 HWND h = FindWindow(L"Notepad", NULL); HWND h = FindWindow(NULL, L"新建文本文档.txt - 记事本"); 在这里通过Spy++查找窗口的类名,知道了记事本窗口的类名Notepad,则可成功查找(或者使用窗口标题) 这个函数前面是通过句柄获得了某个窗口的截图,并将其放入了剪贴板中。 接下来是要将截图发送到qq的某个人 注:这里面使用的是腾讯的TIM软件,windows系统 注:使用时要保证要发送的那个人是在窗口最前 void QQsend() { HWND h = FindWindow(L"TXGuiFoundation", L"鸽"); RECT rect; GetWindowRect(h, &rect); ShowWindow(h, SW_RESTORE); //激活h窗口 SetFocus(h); //设置当前窗口为焦点 SetForegroundWindow(h); //指定窗口的线程设置到前台,激活该窗口。键盘输入转向该窗口 cout |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |