Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄

在Windows下完成这些功能需要用到VC

模拟键盘输入:

VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,DWORD dwExtralnfo);  //包含windows.h

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄_第1张图片

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄_第2张图片

 

鼠标按键事件:

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄_第3张图片

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄_第4张图片

备注:模拟鼠标单击  

mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,0,0,0,0);

 

 

鼠标移动事件:

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄_第5张图片

 

获取其它程序句柄:

Windows下C++ 模拟键盘输入,鼠标点击,鼠标移动,获取句柄_第6张图片

 

备注:

HWND id = FindWindow(NULL,"微信");    //类名(第一个参数)可以为空,第二个参数为需要获取那个程序的句柄的程序名,打开任务管理器可以看到。 获取微信的句柄

 

QT中在FindWindow中直接填入 程序名字符串(第二个参数),可能会报错或者无法正确获取程序句柄;

解决方案:需要将 程序名字符串 转为 LPCWSTR 再填入

如:

 
QString appNameStr("微信");
QString classNameStr("WeChatMainWndForPC");
LPCWSTR appName = reinterpret_cast(appNameStr.data());
 
LPCWSTR className= reinterpret_cast(classNameStr.data());

 

 

 

你可能感兴趣的:(C/C++&C#)