Send.Messege an mehrere Inaktiven Programme senden!Problem!

  • VB.NET

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Resk.

    Send.Messege an mehrere Inaktiven Programme senden!Problem!

    Hey gemeinde :)
    ich hab wie oben schon ein problem mit Send.Messege.
    Ich hab schon tausende versuche gemacht und auch die Sufu genutzt das könnt ihr mir glauben :D

    Ich hab jetz ein textbox der meine tastendrücke abfängt und ich möchte die weiter senden an Inaktive Programme
    die im Hintergrund offen sind.

    ich bekomm das einfach nicht hin >.<...

    ich hoffe ihr könnt mir helfen

    EDIT:
    was ich noch sagen muss ...
    Die offenen Programme sind alle die selben programme.
    Und wenn ich die Handle auslese (und alle programme gleich heißen) bekomm ich immer sooderso den selben Handle..
    oder mach ich was falsch?

    Ich hab auch schon einmal versucht eine Taste weiter zu senden..--> aber es kommt nichts and -.-...

    mfg
    Resk
    Du startest alle diese Programme aus Deinem Programm über Prodess.Start, da hast Du schon mal das Fenster-Handle des Hauptfensters.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Per Spy++ identifizieren und per API.SendMessage ansprechen.
    Suche nach beiträgen von mir und SendMessage (erweiterte Suche).
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    danke für die infos...

    aber ist spy nicht nur nützlich wenn es nur bei mir funktionieren soll?
    Das programm soll ja später veröffentlicht werden und bei allen funktionieren? :)

    könntest du mir wenn du nett bist die links hier post..muss nähmlich jetz zur arbeit und kann mich dann abends damit hinsetzen ..

    wäre echt nett


    mfg
    Resk
    Die Klasse NativeMethods vomir gib
    Das Handle für das Hauptfenster musst Du Dir während der Laufzeit besorgen.
    Die Zugriffsinformation für Controls innerhalb eines Programmes ändern sich nicht, die kannst Du während der Entwicklungszeit coden.

    VB.NET-Quellcode

    1. ' aus dem gestarteten Prozess das Fensterhandle holen
    2. Me._hwndMain = Me._Process.MainWindowHandle
    3. ' einen Button im Fenster ermitteln
    4. Me._hwndInput = NativeMethods.FindWindowEx(Me._hwndMain, IntPtr.Zero, "edit", "")
    Den Namen "edit" holst Du Dir mit Spy++.
    Wenn es mehrere Controls mit gleichem Namen gibt, musst Du mit EnumWindows arbeiten und Dich durchhangeln.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    cool danke dir :)

    nur eins versteh ich nicht...warum soll einen button finden?

    ich möcht ja nur die handls rausbekommen um gleichzeitig EINEN button den ich drücke (zb ich drücke die taste "1"
    dann soll jedes fenster der geöffnet ist die "1" geschickt werden per send.messege) and alle zu senden...


    vlt haben ich mich oben falsch ausgedrückt :)
    wenn dann tuts mir leid...


    mfg
    Banana
    Geh mal mit dem Spy++-Zeiger über eines Deiner Zielfenster und sieh Dir an, was der alles ausgibt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    joa ich hab mir das mit den handles angeguckt und weis jetz warum ich den "button" oder "textfeld" finden muss ;)

    ich danke euch viel mahls...ich probier mal bisschen rum und wenn ich es schaffe dann schreib ich hier rein und wenn nicht dann brauche ich wohl weiterhin hilfe :(


    EDIT:
    ja textsenden an fremde fenster ist richtig danke für die links :)
    nur sollen die inaktiven fenster inaktiv bleiben :)


    mfg
    Banana
    so hab das jetz eig ganz gut verstanden mit dem Spy++ und sowas...

    nur ist jetz mein problem...das ich die tastendrücke in 3D anwendungen senden will...
    und spy++ spuckt nicht soviel aus...als wenn ich eine normale anwendung mir angucke...

    also im großen und ganzem ....Es ist ein Game das mehrmahls offen ist und GANZ vorne wo man jetz zb selber spielt sollen die tastendrücke auch weiter gesendet werden an die hinteren Fenster die inatkiv sind...
    aber per Spy++ find ich nichts benutzbars...ich schaff es nichtmal ein "Hallo" in den chat schreiben zu lassen..
    Keylogger sogesagt dafür hab ich schon...nur wie verbinde ich die keylogg funktion DAMIT...

    hoffe jemand kann mir in der sitiuation helfen :)


    mfg
    Banana

    ps: das soll für mein kleinen Bruder und seine freunde sein am ende.
    Letztens als ich ihn wieder gesehen habe hat er mir von dem Game erzählt und mich gefragt ob ich sowas machen könnte.
    Und das sollte eig am 25.9 fertig sein >.<...als kleines stück "Geburtstag geschenkt!" + sein hauptsächliches geschenk^^..
    hoffe wirklich das mir jemand helfen kann...:(

    EDIT:
    so bin jetz ein stück weiter :D

    damit hab ich es geschafft an ALLE fenster die offen sind..(also alle die an die ich möchte) ein buchstaben zu senden damit:

    VB.NET-Quellcode

    1. sTitle = "titel"
    2. lhWnd = FindWindow(vbNullString, sTitle)
    3. TextBox2.Text = lhWnd
    4. SendMessage(lhWnd, WM_CHAR, 49, vbNullString)


    so in der textbox hab ich die handle und mit dem code funktioniert auch das senden...nur ein problem hab ich jetz.
    undzwar er sendet NUR ein buchstabe und das ist "49" ich weis nicht welcher buchstabe das ist..aber ich würde auch gerne das jetz so verändern das alles gesendet wird was ich tippe..

    vllt weist das jemand..danke im vorraus :)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Resk“ ()

    /push


    so hab dazu es noch geschafft mit dem keylogger und der sendmessage funktion so..
    mein letztes problem :)

    VB.NET-Quellcode

    1. SendMessage(lhWnd, WM_CHAR, label1.text, vbNullString)


    so ich sammle von jedem fenster die handle und setzte jedes einzelne Send.message in nen Timer.
    funktioniert alles :D

    nur mein problem ich möchte das der timer es nur so lange schicken tut wie ich auch eine Taste drücke.
    er verschickt ja immer die letztgedrückte taste und wenn ich dann nichts mehr drücke schickt der timer 10000mal die letz gedrückte taste>.<.

    vllt hat dafür jemand eine lösung..

    mfg
    Resk