調(diào)用api
成都創(chuàng)新互聯(lián)公司從2013年開(kāi)始,先為建始等服務(wù)建站,建始等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為建始企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
在Visual Baisc點(diǎn)虐 中的聲明:
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = H2 '模擬鼠標(biāo)左鍵按下
Public Const MOUSEEVENTF_LEFTUP = H4 ’模擬鼠標(biāo)左鍵釋放
Public Const MOUSEEVENTF_MIDDLEDOWN = H20 '模擬鼠標(biāo)中間鍵按下
Public Const MOUSEEVENTF_MIDDLEUP = H40 '模擬鼠標(biāo)中間鍵釋放
Public Const MOUSEEVENTF_RIGHTDOWN = H8 '模擬鼠標(biāo)右鍵按下
Public Const MOUSEEVENTF_RIGHTUP = H10 '模擬鼠標(biāo)右鍵釋放
Public Const MOUSEEVENTF_MOVE = H1 '模擬鼠標(biāo)指針移動(dòng)
例:
mouse_event MOUSEEVENTF_LEFTDOWN,10,10,0,0
'在(10,10)模擬鼠標(biāo)左鍵按下
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)
Dim postion1 As New Point
mouse_event(H1 Or H8000, postion1.X * 65535 / 1366, postion1.Y * 65535 / 768, 0, 0)
'按絕對(duì)位置移動(dòng)鼠標(biāo)
'在鼠標(biāo)坐標(biāo)系統(tǒng)中,屏幕在水平和垂直方向上均勻分割成65535×65535個(gè)單元,
'當(dāng)前所用顯示屏分辨率為1366*768
'所以要進(jìn)行如上轉(zhuǎn)換
mouse_event(H2, 0, 0, 0, 0) '鼠標(biāo)左鍵按下
mouse_event(H4, 0, 0, 0, 0) '鼠標(biāo)左鍵彈起
msdn上有 mouse_event 的詳解,大致使用如上
當(dāng)然可以啊。
使用API函數(shù)mouse_event可以模擬鼠標(biāo)事件,比如左鍵單擊、雙擊和右鍵單擊等。這個(gè)實(shí)例利用此函數(shù)產(chǎn)生了十分有趣的效果,無(wú)論鼠標(biāo)處于屏幕的任何位置,每隔一秒程序會(huì)使鼠標(biāo)在那個(gè)位置單擊或雙擊一次,這會(huì)給我們?cè)斐墒裁礃拥幕靵y呢?試一試就知道了。
先在程序中加入如下的聲明后,就能引用mouse_event函數(shù):
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
其中各個(gè)參數(shù)的意義如下表所示:
參數(shù) 意義
dwFlags Long,下表中標(biāo)志之一或它們的組合
dx,dy Long,根據(jù)MOUSEEVENTF_ABSOLUTE標(biāo)志,指定x,y方向的絕對(duì)位置或相對(duì)位置
cButtons Long,沒(méi)有使用
dwExtraInfo Long,沒(méi)有使用
dwFlags常數(shù) 意義
MOUSEEVENTF_MOVE H1,移動(dòng)鼠標(biāo)
MOUSEEVENTF_LEFTDOWN H2,模擬鼠標(biāo)左鍵按下
MOUSEEVENTF_LEFTUP H4,模擬鼠標(biāo)左鍵抬起
MOUSEEVENTF_RIGHTDOWN H8,模擬鼠標(biāo)右鍵按下
MOUSEEVENTF_RIGHTUP H10,模擬鼠標(biāo)右鍵抬起
MOUSEEVENTF_MIDDLEDOWN H20,模擬鼠標(biāo)中鍵按下
MOUSEEVENTF_MIDDLEUP H40,模擬鼠標(biāo)中鍵抬起
MOUSEEVENTF_ABSOLUTE H8000,標(biāo)示是否采用絕對(duì)坐標(biāo)
程序中我們這樣使用mouse_event函數(shù):
1、這里是鼠標(biāo)左鍵按下和松開(kāi)兩個(gè)事件的組合即一次單擊:
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
2、模擬鼠標(biāo)右鍵單擊事件:
mouse_event MOUSEEVENTF_RIGHTDOWN Or MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0
3、兩次連續(xù)的鼠標(biāo)左鍵單擊事件 構(gòu)成一次鼠標(biāo)雙擊事件:
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0
如上面所示如果我們要使用兩個(gè)dwFlags常數(shù)的組合時(shí),可以用Or將其連接起來(lái)。本例中我們把dx,dy參數(shù)都設(shè)為0,是指每次模擬事件的位置是鼠標(biāo)的當(dāng)前位置,dx,dy在沒(méi)有使用MOUSEEVENTF_ABSOLUTE標(biāo)志時(shí)是相對(duì)于鼠標(biāo)當(dāng)前位置的坐標(biāo),如果設(shè)置為使用絕對(duì)坐標(biāo),則dx,dy是相對(duì)于屏幕的坐標(biāo)。
然后把這些語(yǔ)句放在Timer控件的Timer事件中,就能實(shí)現(xiàn)每一定間隔模擬一次鼠標(biāo)事件了。
說(shuō)明:我不是很會(huì)VC,所以只給出VB里面調(diào)用得方法。抱歉。
錄制回放沒(méi)有問(wèn)題,可是在鼠標(biāo)移動(dòng)過(guò)程中怎么去捕獲,鼠標(biāo)進(jìn)行了單擊,還是雙擊呢.捕獲不到回放的時(shí)候不知道什么時(shí)候該單擊還是雙擊.
當(dāng)前標(biāo)題:VB點(diǎn)虐
模擬兩個(gè)鼠標(biāo) vb模擬鼠標(biāo)點(diǎn)擊
文章鏈接:http://bm7419.com/article24/ddejdje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、標(biāo)簽優(yōu)化、網(wǎng)站制作、營(yíng)銷型網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容