看了這幾年關于PostMessage 后臺發送滑鼠點擊 表單任意設定的位置,居然沒有發現一個代碼是可以實作的,郁悶啊,不知道這些代碼錯誤在什么地方
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_LBUTTONDOWN As Long = &H201
Private Const WM_LBUTTONUP As Long = &H202
Private Sub Command1_Click()
SendClick Me.hwnd, 10, 10
End Sub
Private Sub Form_Click()
MsgBox "dasd"
End Sub
Private Function SendClick(hwnd As Long, mX As Long, mY As Long)
'發送點擊訊息
Dim I As Long
I = PostMessage(hwnd, WM_LBUTTONDOWN, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)
I = PostMessage(hwnd, WM_LBUTTONUP, 0, (mX And &HFFFF) + (mY And &HFFFF) * &H10000)
End Function
你要是說 hwnd不對,所以沒有發送到,好像又不是這么回事情,不知道為什么。現在難道高手都不在了嗎?
uj5u.com熱心網友回復:
PostMessage設定表單位置?樓主為什么舍本求末?uj5u.com熱心網友回復:
我有這個代碼。表單中坐標可以是點擊的。沒問題的。如果是普通creat的表單。那么連里邊的按鈕也是可以點的。但是你如果是gui表單 gdi生成的只能是 背景。按鈕都是不可以點的。
還有就是。如果就是messagebox對話框是不可以點擊的。而且如果出現對話框。表單內句柄也是不可以點擊的。messagebox只能是桌面級句柄才可以點擊。這個測驗過很奇怪。
uj5u.com熱心網友回復:
如果是普通creat的表單。那么連里邊的按鈕也是可以點其中creat的表單是什么意思,不是指一般程式生成的表單嗎?
uj5u.com熱心網友回復:
有沒有會的?uj5u.com熱心網友回復:
頂一下,我也想知道為什么就不管用?在很多論壇都看到過樓主發的這些代碼,有個叫“嗷嗷叫的老馬”發過多次。可是為什么我的機子上就測驗不成功呢~?
同樣的代碼肯定有很多人成功了,為什么有的人就不能成功?到底是哪的原因呢~!?
uj5u.com熱心網友回復:
我就是那個嗷嗷叫的老馬- -!
樓主的測驗代碼應該是不成功的,因為VB的表單好象對產生單擊事件的訊息回應條件不僅僅是這兩條訊息.
以前我試過,僅這兩條訊息發送的話,就算與手工點擊時產生的訊息一模一樣,也仍然不會產生單擊事件.
因此就更不用說想要以相對坐標點擊表單內部的控制元件了.
這個現象的具體原因我沒有深入去了解,不過其它控制元件,例如按鈕卻是可以回應的.
將樓主代碼改一下,再添加一個按鈕,然后再加個訊息框,像這樣:
private sub Command2_Click()
msgbox "Click!"
end sub
接著將按鈕1內的句柄換成按鈕2的句柄:
SendClick Command2.hwnd, 10, 10
這樣就OK了.
另外,這個代碼只要坐標正確,可以點擊網頁,已經用它做了好多XXXXXX軟體了,咳咳.
uj5u.com熱心網友回復:
老馬,有空看看postmessage任意位置點擊,我搞了幾個月了,還是不行啊,救命啊uj5u.com熱心網友回復:
https://code.csdn.net/snippets/112740幫忙看看,感謝!
uj5u.com熱心網友回復:
http://www.autohotkey.com轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/132461.html
標籤:API
上一篇:新手提問..VB6.0的tchart v2010中添加很多隨機顏色的曲線后,曲線顏色和圖例顏色不一致~
下一篇:VB2008專案打包發布
