今天看了一篇mouse_event函數用于模拟滑鼠選擇文本的文章,學習了一下這個函數。有一點認識記錄如下:
VOID mouse_event(
DWORD dwFlags
,// 用來訓示模拟怎麼養的滑鼠動作,并且可以指定滑鼠動作的位置參數是絕對量還是相對量
DWORDdx
,// 水準方向的滑鼠位置移動量
DWORDdy
,// 垂直方向的滑鼠位置移動量
DWORDdwData
,// 滑鼠滾輪的移動量
DWORDdwExtraInfo
// 32位的附加資訊
);1. dwFlags這個量可以設定MOUSEEVENTF_ABSOLUTE來指定dx,dy表示的是絕對的位置改變量
2. 當dwFlags這個量設定了MOUSEEVENT_MOVE時,dx,dy的值取值在0~65,535之間,此時的坐标為整個螢幕的坐标,也就是說(0,0)對應的是螢幕左上角,(65,535,65,535)對應的是螢幕右下角。是以,對于不同分辨率的螢幕應該采取換算。例如1024×768的分辨率下,(x,y)就應該換算成((65535/1024)*x, (65535/768)*y)
問題:
1. 似乎當MOUSEEVENT_MOVE被置位1時,dx和dy才有實際意義,否則,他們的值都不會對滑鼠位置有影響。不知這點是否正确~~!
2. 當MOUSEEVENT_MOVE置位1時,可以配合其他的flag、如MOUSEEVENTF_LEFTDOWN一起使用,可以達到移動滑鼠的效果,但是不知道這個坐标值是怎麼算的,好像不是按照一個象素一個象素算的。難道是坐标映射模式的問題?我再看看吧