# Senden per Postmessage oder Sendmessage



## KermitClz (13. Juli 2007)

Ich bin langsam am Verzweifeln. Dies ist mein letzter Hilferuf!!

Was ich will:
Ein Programm öffnen (hier erstmal durch Notepad simuliert), Text bzw. Befehle an dieses P-r-oggi schicken und später P-r-oggi wieder schließen. Öffnen und schließen klappt, bloss mit dem Mittelteil haperts!!
Schließen geht mit Send und Postmessage, ergo Handle stimmt. Was muss ich tun, um den Text bzw. Befehle zu senden. Hab mittlerweile alles versucht, von "WM_Char" über "WM_SETTEXT" auch schon VK_irgendwas ...
Kann mir jmd helfen? Wenn's geht, n bischen ausführlicher ...bin n Newbie ...wie man evtl. am Code sieht .....ich danke ich schon mal!! 


```
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer
    Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Integer
    Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Integer, ByVal X As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal bRepaint As Integer) As Integer
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Integer, ByVal nCmdShow As Integer) As Integer
    Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Integer, ByVal lpString As String) As Integer
    Private Declare Function GetDeskTopWindow Lib "user32" Alias "GetDesktopWindow" () As Integer
    Declare Function PostThreadMessage Lib "user32.dll" Alias "PostThreadMessageA" (ByVal idThread As Integer, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal uMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal uMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

    Private lhwnd As Integer
    Private ret As Integer
    Private Const WM_Quit = &H12
    Private Const WM_Close = &H10
    Private Const WM_SETTEXT = &HC
    Private Const WM_KEYDOWN = &H100
    Const WM_SETFOCUS = &H7
    Const WM_KILLFOCUS = &H8
    Const WM_CHAR As Long = &H102
    Const VK_F5 = &H47

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        
        Dim test As Integer
        Dim lRetVal As Integer

        Dim p = Shell("C:\windows\notepad.exe", AppWinStyle.NormalFocus) ' Warten bis vollstaendig geladen
        lhwnd = FindWindow(vbNullString, "Unbenannt - Editor") ' Handle des neuen Notepad-Fensters feststellen
        test = 12 & vbNullChar
        If lhwnd <> 0 Then

            lRetVal = SendMessage(lhwnd, WM_SETTEXT, 0, test)
        End If
        'SendMessage(lhwnd, WM_Close, 0, 0)
        'PostMessage(lhwnd, WM_Quit, 0, 0)

    End Sub
```

P.S. Gibt es einen Grund, warum hier im Forum aus P-r-oggi ohne die Bindestriche immer nur ein "i" angezeigt wird? 
Fragen über Fragen ....


----------



## DrSoong (13. Juli 2007)

Sieht mir nach VB.NET (bzw. VB2005) aus, oder? Wenn ja poste doch die Frage bitte nochmal im .NET-Unterforum (VB hat seit .NET eine veränderte Syntax, daher ein eigenes Unterforum).

Betr P-roggi, ist wahrscheinlich der Wortfilter des Forums. Ich find Programm schöner als diese Abkürzung.


Der Doc!


----------

