我正在使用網絡瀏覽器控件打開一個網站。在網站的第三頁上,有一個按鈕。因此,在加載此第三頁後,我想按編程方式首先將控制焦點放在按鈕上,然後在加載後立即在網站的第三頁上按ENTER鍵。我正在使用vb.net 2008平臺來執行此操作。請問任何人PLZ告訴我的解決方案?如何以編程方式按Tab鍵並按vb.net編碼輸入密鑰
回答
首先,你需要找到你想要發送密鑰的窗口句柄,然後發送你想要的實際密鑰。這裏有必要做這樣的方法:
'API calls
Public Declare Function FindWindowExA Lib "user32.dll" (ByVal hWnd1 As IntPtr, ByVal hWnd2 As Int32, ByVal lpsz1 As String, ByVal lpsz2 As String) As IntPtr
Public Declare Function SendMessageA Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
'Function to find window by either ClassName or WindowText
Public Shared Function FindWindowEx(ByVal hWndParent As IntPtr, ByVal hWndChildAfter As Int32, ByVal ClassName As String, ByVal WindowName As String) As IntPtr
Return FindWindowExA(hWndParent, hWndChildAfter, ClassName, WindowName)
End Function
'Function to send pressed keys to specified window by handle
Public Shared Function SendKeyToWindow(ByVal hwnd As IntPtr, ByVal data As String) As Boolean
Try
Dim rc As Int32
Dim asciiChar As Byte
If data.Length < 1 Then 'if no data
Return True
End If
'If data.Length > 1 Then
' data = data.ToUpper
'End If
'sendMessageA is used to issue messages to windows simulating keypresses
Select Case data.ToUpper
Case Chr(13)
rc = SendMessageA(hwnd, WM_KEYDOWN, &HD, &H1C0001) 'send Enter Key
rc = SendMessageA(hwnd, WM_CHAR, &HD, &H1C0001) 'send Enter Key
rc = SendMessageA(hwnd, WM_KEYUP, &HBE, &HC0340001) 'send Ener Key
Case Chr(&H9) 'tab key
rc = SendMessageA(hwnd, WM_KEYDOWN, &H9, &HF0001) 'send tab Key
rc = SendMessageA(hwnd, WM_KEYUP, &H9, &HC00F0001) 'send tab Key
Case Else
asciiChar = CByte(Asc(data.Substring(0, 1)))
rc = SendMessageA(hwnd, WM_CHAR, asciiChar, 0) 'send 0 Key
End Select
Return True
Catch ex As Exception
Return False
End Try
Return False
End Function
在你的情況下,你可能只需要調用sendKeyToWindow功能與網頁瀏覽器控件的句柄:
SendKeyToWindow(WebBrowser1.Handle,CHR(& H9)) SendKeyToWindow(WebBrowser1.Handle,Chr(13))
希望有幫助。
可以請你通過上面的評論來解釋代碼的每一行 – user1473832
我添加了一些評論和一個類似於你正在尋找的例子。我不知道我能否比這更清楚。 –
代碼不能正常工作 – user1473832
- 1. 以編程方式按Win + X,Alt-Tab
- 2. JTable - 按Tab鍵進入編輯模式
- 3. 如何以編程方式按鍵盤上的按鍵?
- 4. 以編程方式點擊按鈕vb.net
- 5. 以編程方式在文本輸入中按「左」鍵
- 6. 以編程方式MFC Tab鍵順序
- 7. 以編程方式按鍵盤
- 8. 以編程方式將密鑰發送到輸入字段?
- 9. 如何以編程方式按鍵盤鍵?
- 10. 如何用vb.net以編程方式點擊HTML按鈕
- 11. 如何以編程方式按下tooltripbutton?
- 12. 以編程方式更改java密鑰庫的密碼
- 13. 如何將「輸入密鑰」合併到按鈕按下事件
- 14. 以編程方式按下按鈕
- 15. iPhone:以編程方式按下按鈕
- 16. 以編程方式按下此按鈕
- 17. 如何在Xcode中以編程方式按下iOS鍵盤按鍵?
- 18. 以編程方式編寫android:按鈕
- 19. 如何以編程方式在加密的pdf上輸入密碼?
- 20. 如何以編程方式在netcf中發送TAB鍵擊
- 21. 以編程方式在Python中提示輸入密碼?
- 22. 以編程方式編輯pyqt4中的tab鍵python
- 23. 如何以編程方式生成mousedown或按鍵事件?
- 24. 如何以編程方式生成按鍵事件
- 25. 如何以編程方式生成按鍵Android
- 26. 以編程方式設置等效於按鈕的按鍵
- 27. 以編程方式更改VB.NET代碼
- 28. 以編程方式觸發VB.Net Windows應用程序中的Tab鍵功能
- 29. bat文件以編程方式按輸入去下一行
- 30. .net winforms TextBox以編程方式按下輸入
您應該重新考慮您的解決方案。最大的原因之一是,如果網站的佈局有任何重大變化,它將無法正常工作。有比打開瀏覽器和模擬擊鍵更好的方法來打電話給URL。 – Wug
如何模擬擊鍵? – user1473832
這是一條評論,而不是答案。我不知道。我建議你考慮一種不同的方法。 – Wug