實際運用,視頻講解python和C++實現(xiàn)模擬鍵鼠操作實測說明【300英雄】 視頻傳送門:點我 相關(guān)環(huán)境操作系統(tǒng):Win10 企業(yè)版 相關(guān)說明參考資料:windows API,里面很詳細,愛死了 mouse_eventprivate static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo); #include <Windows.h>
1、這里是鼠標(biāo)左鍵按下和松開兩個事件的組合即一次單擊:
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
2、模擬鼠標(biāo)右鍵單擊事件:
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 )
3、兩次連續(xù)的鼠標(biāo)左鍵單擊事件 構(gòu)成一次鼠標(biāo)雙擊事件:
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
4、使用絕對坐標(biāo)
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0 )
需要說明的是,如果沒有使用MOUSEEVENTF_ABSOLUTE,函數(shù)默認(rèn)的是相對于鼠標(biāo)當(dāng)前位置的點,如果dx,和dy,用0,0表示,這函數(shù)認(rèn)為是當(dāng)前鼠標(biāo)所在的點。
5、直接設(shè)定絕對坐標(biāo)并單擊
mouse_event(MOUSEEVENTF_LEFTDOWN, X * 65536 / 屏幕寬, Y * 65536 / 屏幕高, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, X * 65536 / 屏幕寬, Y * 65536 / 屏幕高, 0, 0);
其中X,Y分別是你要點擊的點的橫坐標(biāo)和縱坐標(biāo)
ps:求屏幕大小,參考 https://blog.csdn.net/yp18792574062/article/details/88351342
#include <Windows.h>
// 帶標(biāo)題欄和菜單欄
int width = GetSystemMetrics(SM_CXSCREEN);
int height = GetSystemMetrics(SM_CYSCREEN);
keybd_event
#include <Windows.h>
keybd_event(16,0,0,0);//按下Shift鍵
keybd_event('A',0,0,0);//按下a鍵
keybd_event('A',0,KEYEVENTF_KEYUP,0);//松開a鍵
keybd_event(16,0,KEYEVENTF_KEYUP,0);//松開Shift鍵
實際案例實現(xiàn)效果:來回走動,并按 'q’鍵。ps:管理員運行
獲取鼠標(biāo)當(dāng)前位置#include <Windows.h>
#include <iostream>
using namespace std;
int main()
{
// 死循環(huán)
while (1)
{
POINT pt = {0,0};
GetCursorPos(&pt);
printf('x=%d,y=%d\n', pt.x,pt.y);
Sleep(3000);
}
//system('pause');
return 0;
}
|
|