-
SendMessage to a window
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim ret As Long
Dim lResult As Long
ret = UtilityModule.FindWindow("OSKMainClass", "On-Screen Keyboard")
lResult = UtilityModule.SendMessage(ret, 100, 15, 1)
I am trying to send message to a window with the code above and it does not work. Can someone look at this and give some guidance. I got wMsg,wParam and lParam from Spy++.
-
If you have Spy++ then check the window handels to make sure
your getting the correct one. They are in hex as compared to vb
decimal value. Findwindow only will get the main window. It looks
like you are trying to get a child window? If so use FindWindowEx.
HTH
-
RESOLVED
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim ret As Long
Dim lResult As Long
ret = UtilityModule.FindWindow("OSKMainClass", "On-Screen Keyboard")
lResult = UtilityModule.SendMessage(ret, &H403, &H15, &H80000002)
Most of the arguments were pulled from Spy++. This code is used to turn the English characters from c:\windows\system32\osk.exe to Japanese characters.