
В общем ситуация такая:
На форме webbrouser, по Ctrl-F поиск нормально поднимается, но вот вызвать его по нажатию кнопки на форме - не могу сообразить как.
Через ExecWB пыталась - посылает нафиг

natcap писал(а):Ой, как мат на язык просится то.....
GSerg писал(а):Ха
Ха-ха
Ха-ха-ха
Привет мелкософту. Большой и горячий.
Dim a As IHTMLTxtRange
Private Sub Command1_Click()
Set a = WB.Document.selection.createRange
a.findText "test"
a.Select
End Sub
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal Flags As Long) As Long
Function KBD(Lang As String)
Dim KeybLayoutName As String
KeybLayoutName = String(9, 0)
GetKeyboardLayoutName KeybLayoutName
If Lang = "RUS" Then
If Mid(KeybLayoutName, 1, 8) = "00000409" Then ActivateKeyboardLayout 0, 0
End If
If Lang = "ENG" Then
If Mid(KeybLayoutName, 1, 8) = "00000419" Then ActivateKeyboardLayout 0, 0
End If
End Function
Private Sub Command1_Click()
'Переключить на русскую раскладку
KBD ("RUS")
End Sub
Private Sub Command2_Click()
'Переключить на английскую раскладку
KBD ("ENG")
End Sub
Private Sub Command3_Click()
'Показать текущую раскладку
Dim KeybLayoutName As String
KeybLayoutName = String(9, 0)
GetKeyboardLayoutName KeybLayoutName
If Mid(KeybLayoutName, 1, 8) = "00000409" Then MsgBox "ENG" Else MsgBox "RUS"
End Sub
На насчет посделнего варианта, у меня все круче - у меня ВБ SendMessage не хочет понимать
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function ActivateKeyboardLayout Lib "user32" (ByVal HKL As Long, ByVal Flags As Long) As Long
--------------------------------------
WebBrowser1.SetFocus
Dim KeybLayoutName As String
KeybLayoutName = String(9, 0)
GetKeyboardLayoutName KeybLayoutName
a = KeybLayoutName
If a <> "00000409" Then
ActivateKeyboardLayout 0, 0
End If
GetKeyboardLayoutName KeybLayoutName
SendKeys "^f"
If a <> KeybLayoutName Then
ActivateKeyboardLayout 0, 0
End If
SendMessage FindWindowEx(FindWindowEx(FindWindowEx(Me.hwnd, 0, "Shell Embedding", vbNullString), 0, "Shell DocObject View", vbNullString), 0, "Internet Explorer_Server", vbNullString), &H111&, &H10043, ByVal 0&
Private Declare Function MapVirtualKey Lib "user32.dll" Alias "MapVirtualKeyA" (ByVal wCode As Long, ByVal wMapType As Long) As Long
Private Sub Command2_Click()
WebBrowser1.SetFocus
SendKeys "^" & LCase$(Chr$(MapVirtualKey(vbKeyF, 2)))
End Sub
Private Declare Function GetFocus Lib "user32.dll" () As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Sub Command2_Click()
WebBrowser1.SetFocus
SendMessage GetFocus, &H111&, &H10043, ByVal 0&
End Sub
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 2