如題,網頁是在控制元件webbrower加載的。滑鼠也移到“save”上了,就是無法點擊,不知道是什么問題?
uj5u.com熱心網友回復:
代碼呢111uj5u.com熱心網友回復:
Cursor.Position = New Point(251, 1054) '滑鼠移動
mouse_event(&H2, 0, 0, 0, 0) '滑鼠左鍵按下
mouse_event(&H4, 0, 0, 0, 0) '滑鼠左鍵釋放
251, 1054是“Save”的坐標
uj5u.com熱心網友回復:
看看是不是殺毒軟體阻止了uj5u.com熱心網友回復:
我覺得是不是焦點的問題,因為我用這種方法去模擬點擊桌面的圖示都是沒有問題的,就是這個webbrower控制元件內的彈出視窗無法點擊。uj5u.com熱心網友回復:
那模擬回車有用嗎?uj5u.com熱心網友回復:
模擬回車也沒有用,但是如果時間點擊鍵盤或者單擊滑鼠缺是可以用的。我還試了使用軟鍵盤,軟鍵盤是點擊不了。uj5u.com熱心網友回復:
Web.WebBrowser1.Document.GetElementById("Subject").InnerText = "公司名稱" '在主題中輸入公司名稱用于篩選
Web.WebBrowser1.Document.GetElementById("btnSearch").InvokeMember("click") '點擊Search
Web.WebBrowser1.Document.GetElementById("btnExport").InvokeMember("click") '點擊Export
Cursor.Position = New Point(1031, 553) '滑鼠移動 可是實作
mouse_event(&H2, 0, 0, 0, 0) '滑鼠左鍵按下 無法實作
mouse_event(&H4, 0, 0, 0, 0) '滑鼠左鍵釋放
SendKeys.Send("{Enter}") ‘模擬回車,無法實作
uj5u.com熱心網友回復:
你確信這是活動視窗嗎?uj5u.com熱心網友回復:
<DllImport("user32.dll", CharSet:=CharSet.Auto, SetLastError:=False)> _Public Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
End Function
Public Const WM_KEYDOWN As Integer = &H100
Public Const WM_KeyUP As Integer = &H101
Public Sub SendMouseClick(ByVal handle As IntPtr, ByVal x As Integer, ByVal y As Integer)
If handle <> IntPtr.Zero Then
Dim lParam As IntPtr = New IntPtr((y << 16) Or x)
Dim wParam As IntPtr = IntPtr.Zero
SendMessage(handle, WM_LBUTTONDOWN, wParam, lParam)
Threading.Thread.Sleep(100)
My.Application.DoEvents()
SendMessage(handle, WM_LBUTTONUP, wParam, lParam)
End If
End Sub
x,y是handle對應視窗的坐標系。
uj5u.com熱心網友回復:
Public Const WM_LBUTTONDOWN As Integer = &H201Public Const WM_LBUTTONUP As Integer = &H202
uj5u.com熱心網友回復:
你把這個視窗句柄找到,然后置最前,點擊后再取消置前轉載請註明出處,本文鏈接:https://www.uj5u.com/net/109100.html
標籤:VB.NET
上一篇:來自一個軟工孩紙的困惑
