[VB2005] Sendkey

IntelligenzBestie

Grünschnabel
Hallo,
Code:
 Dim lhWnd As Long
        Dim sTitle As String
        sTitle = "Test"
        lhWnd = FindWindow(vbNullString, sTitle)

An dieses Fenster soll jetzt mit dem Sendkey-Befehl Tastendrücke simuliert werden.
Bloß weiss ich nicht wie?
Ich danke für jede Hilfe.
 
Hier mal ein Stückchen Code:

Code:
Module Module1
    Declare Ansi Function FindWindowA Lib "user32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Declare Ansi Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long) As Boolean

    Sub Main()
        Dim handle = FindWindowA(Nothing, "Unbenannt - Editor")

        If Not SetForegroundWindow(handle) Then MessageBox.Show("Konnte Fenster nicht aktivieren!")

        SendKeys.SendWait("Hallo, du !")

        Console.ReadKey()
    End Sub
End Module

Du musst das Fensterhandle rausfinden, dann muss du das Fenster in den Vordergrund holen und ihm den Fokus geben. Dann kannst du eine Eingabe machen.

Ergebnis im vorher minimierten Editor-Fenster:


Für Sonderzeichen hier schauen: http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx
 
Du kannst mit der SendKeys-Klasse nur an das aktive Fenster Tastendrücke senden, obs eventuell mit der API auch anders geht, weiß ich nicht. Du könntest das Fenster danach aber wieder minimieren. Das geht so schnell, dass man es nicht sieht :)

Code:
    Private Declare Ansi Function SetWindowPlacement Lib "user32.dll" (ByVal hWnd As Long, ByVal lpwndpl As WINDOWPLACEMENT) As Boolean
    Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Integer, ByRef lpwndpl As WINDOWPLACEMENT) As Integer

    Private Const SW_SHOWMINIMIZED As Short = 2

    Private Structure POINTAPI
        Dim X As Integer
        Dim Y As Integer
    End Structure

    Private Structure RECT
        Dim Left_Renamed As Integer
        Dim Top_Renamed As Integer
        Dim Right_Renamed As Integer
        Dim Bottom_Renamed As Integer
    End Structure

    Private Structure WINDOWPLACEMENT
        Dim length As Integer
        Dim flags As Integer
        Dim showCmd As Integer
        Dim ptMinPosition As POINTAPI
        Dim ptMaxPosition As POINTAPI
        Dim rcNormalPosition As RECT
    End Structure

...

        Dim wp As New WINDOWPLACEMENT

        GetWindowPlacement(handle, wp)
        wp.showCmd = SW_SHOWMINIMIZED

        SetWindowPlacement(handle, wp)
 

Neue Beiträge

Zurück