Mausklick in inaktives fenster.

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Mausklick in inaktives fenster.

    Hallo, ich versuche momentan in ein inaktives fenster zu klicken. momentan hab ich das hier :

    VB.NET-Quellcode

    1. SendMessage(handle, WM_LBUTTONDOWN, 1700, 180)
    2. SendMessage(handle, WM_LBUTTONUP, 1700, 180)

    das problem dabei ist, dass ich immer genau dahin klicke wo gerade die maus ist und nicht dahin, wo ich die koordinaten gesetzt hab.
    hoffe jemand kann mir helfen.

    MfG Jannes
    Welche Bedeutung haben denn die Zahlen

    XneofuX schrieb:

    VB.NET-Quellcode

    1. 1700, 180
    :?:
    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!

    bla schrieb:


    du musst mit findwindow das fensterhandle finden und mit findwindownext das handle des controls worauf du klicken willst. Such hier mal, da gibts was bei source code austausch

    das hab ich doch alles und funktioniert auch ;)
    so, die 2 parameter sollten x/y-koordinate sein, was sich aber beim erneuten checken der api erledigt hat. demnach muss ich beide koordinaten in den "lParam" reinschreiben, aber wie?

    link zur api (eher zur konstante): msdn.microsoft.com/en-us/libra…s645606%28v=vs.85%29.aspx

    MfG

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „XneofuX“ ()

    Du musst dort eine Struktur übergeben (dies ist kein kopierbarer Code :!: :(

    VB.NET-Quellcode

    1. Public Structure StructXY
    2. Dim x As Integer
    3. Dim y As Integer
    4. End Structure
    Die Instanz davon musst Du einem IntPtr übergeben.
    Da solltest Du mal ganz gezielt suchen und finden.
    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!
    so, hab das jetzt so:

    VB.NET-Quellcode

    1. Public Structure coords
    2. Public x As Int32
    3. Public y As Int32
    4. End Structure
    5. Dim klickcoord As coords
    6. klickcoord.x = 1700
    7. klickcoord.y = 180
    8. Dim coords As IntPtr = Marshal.AllocHGlobal(Marshal.SizeOf(coords))
    9. Try
    10. Marshal.StructureToPtr(klickcoord, coords, False)
    11. SendMessage(handle, WM_LBUTTONDOWN, Keys.LButton, coords)
    12. SendMessage(handle, WM_LBUTTONUP, Keys.LButton, coords)
    13. Finally
    14. Marshal.FreeHGlobal(coords)
    15. End Try


    quelle: msdn.microsoft.com/de-de/library/vstudio/4ca6d5z7.aspx

    klappt aber immernoch nicht ...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „XneofuX“ ()

    XneofuX schrieb:

    VB.NET-Quellcode

    1. Marshal.StructureToPtr(klickcoord, coords, False)
    2. SendMessage(handle, WM_LBUTTONDOWN, Keys.LButton, coords)
    3. SendMessage(handle, WM_LBUTTONUP, Keys.LButton, coords)
    Was ist / wozu brauchst Du klickcoord :?:
    Ohne es jetzt genau zu wissen würde ich meinen, das müsste so aussehen:

    VB.NET-Quellcode

    1. SendMessage(handle, WM_LBUTTONDOWN, coords, IntPtr.Zero)
    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!