I need some guidance! I'm using sendmessage to send keystrokes to another application that is not active. This part works just great. But I am not able to send hotkeys. Say for example. I'm sending keystrokes to notepad and I want the date. One can do this by clicking Edit>Time/Date or sending Alt then E then D. How could I achieve this? Thanks!
p.s. I've tried using WM_KEYDOWN, WM_KEYUP, WM_COMMAND to no avail. I'm sent the commands both to the handle for the specific control and the application itself (hwnd and x) and still no success.
This is what I'm using to send the keys so far (sending keys works, just not hotkeys):
Code:VB.net:
--------------------------------------------------------------------------------
Private Declare Ansi Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Public Const WM_CHAR = &H102
System.Diagnostics.Process.Start("C:WINNTsystem32notepad.exe")
Dim hwnd As Integer = FindWindow(vbNullString, "Untitled - NotePad")
Dim x As Integer = FindWindowEx(hwnd, 0, "Edit", vbNullString)
SendMessage(x, WM_CHAR, Keys.C, 0)
SendMessage(x, WM_CHAR, Keys.L, 0)
p.s. I've tried using WM_KEYDOWN, WM_KEYUP, WM_COMMAND to no avail. I'm sent the commands both to the handle for the specific control and the application itself (hwnd and x) and still no success.
This is what I'm using to send the keys so far (sending keys works, just not hotkeys):
Code:VB.net:
--------------------------------------------------------------------------------
Private Declare Ansi Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As String) As Integer
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Integer, ByVal hWnd2 As Integer, ByVal lpsz1 As String, ByVal lpsz2 As String) As Integer
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
Public Const WM_CHAR = &H102
System.Diagnostics.Process.Start("C:WINNTsystem32notepad.exe")
Dim hwnd As Integer = FindWindow(vbNullString, "Untitled - NotePad")
Dim x As Integer = FindWindowEx(hwnd, 0, "Edit", vbNullString)
SendMessage(x, WM_CHAR, Keys.C, 0)
SendMessage(x, WM_CHAR, Keys.L, 0)