02. august 2001 - 01:25Der er
2 kommentarer og 2 løsninger
SendKeys gennem hWnd
Hvordan Sender jeg en tast til et program som \"IKKE er Activate\", jeg har prøvet med:
\'------------- Form1 ------------- Private 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
Const WM_SETTEXT = &HC Dim chWnd As Long
Private Sub Command1_Click() textbuffer$ = 2 SendMessage chWnd, WM_SETTEXT, 0, ByVal textbuffer$ End Sub
Private Sub Form_Load() \'Åbner Lommeregneren chWnd = Shell(\"C:\\WINDOWS\\CALC.EXE\", vbNormalFocus) End Sub \'------------- Form1 -------------
Man bør også lave det i et module men når man bare skal lave det som et eksempel, så man hurtig kan sette det ind i en Form. ;)
Og nu har jeg fundet en løsning. :-)
\'--------------------------------- Form1 --------------------------------- Private Declare Function PostMessage Lib \"user32\" Alias \"PostMessageA\" _ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _ ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib \"user32\" Alias \"FindWindowA\" _ (ByVal lpClassName As Long, ByVal lpWindowName As Long) As Long
Private Declare Function GetParent Lib \"user32\" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowThreadProcessId Lib \"user32\" _ (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Function GetWindow Lib \"user32\" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Function InstanceTohWnd(ByVal IsId As Long) As Long Dim Is_hwnd As Long, pid As Long, thread_id As Long Is_hwnd = FindWindow(ByVal 0&, ByVal 0&) Do While Is_hwnd <> 0 If GetParent(Is_hwnd) = 0 Then thread_id = GetWindowThreadProcessId(Is_hwnd, pid) If pid = IsId Then InstanceTohWnd = Is_hwnd Exit Do End If End If Is_hwnd = GetWindow(Is_hwnd, GW_HWNDNEXT) Loop End Function
Private Sub Command1_Click() PostMessage Chwnd, WM_KEYDOWN, VK_NUMPAD1, 0 PostMessage Chwnd, WM_KEYDOWN, VK_NUMPAD2, 0 PostMessage Chwnd, WM_KEYDOWN, VK_NUMPAD3, 0 End Sub
Private Sub Form_Load() Command1.Caption = \"Send 123\" Chwnd = InstanceTohWnd(Shell(\"C:\\WINDOWS\\CALC.EXE\", vbNormalNoFocus)) End Sub \'--------------------------------- Form1 ---------------------------------
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.