hotkeys an minimiertes fenster senden...

  • hallo

    Ich habe ein problem...

    wie kann ich einem fester wie zb scite einen Tastendruck zukommen lassen? also nicht irgendwie mit controlsend sondern dem kompletten Fenster(wie als ob ich über dem Fenster zb strg+s drücke).Es sollte halt mit hidden und minimierten Fenstern funktionieren...

    ich hab keine Ahnung wie das funktionieren soll:(

    helft mir :o

  • Also ich hab das mal mit diesem Code realisiert:

    Spoiler anzeigen
    [autoit]

    HotKeySet("^s", "save()")
    Func save()
    WinActivate("Fenstertitel")
    Send("^s")
    EndFunc

    [/autoit]

    Ich möchte darauf hinweisen, das ich den Code grad aus dem Kopf geschrieben habe. Ich bin mir nicht ganz sicher, ob ^s für Strg+S steht. Aber der Rest müsste auf jeden Fall stimmen.

  • hmm

    es soll an ein javaprogramm gesendet werden... deswegen kein controlsend

    @penta.phoenix das is iwie auch ncith das richtige :(


    mfg

  • Hallo derda.

    Bei dem Satz mußte ich echt acht mal lesen, was da stand. Dann habe ich Deine Signatur gelesen und beim neunten mal habe ich diesen einen Satz verstanden. :D ?( :D
    Soll doch heißen: das ist auch wieder nicht das richtige. Oder habe ich es falsch gedeutet. Naja, ein Satz, auf dem Trip halt. :D


    Zitat

    Original von derda
    @penta.phoenix das is iwie auch ncith das richtige :(
    mfg

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (30. September 2007 um 01:43)

  • Probier mal die function, die ist klasse aber nicht immer akkurat
    Is halt leider nur füer mausklicks, aber vielleicht kann mans ja uch umschreiben.


    [autoit]


    ;===============================================================================
    ;
    ; Function Name: _MouseClickPlus()
    ; Version added: 0.1
    ; Description: Sends a click to window, not entirely accurate, but works
    ; minimized.
    ; Parameter(s): $Window = Title of the window to send click to
    ; $Button = "left" or "right" mouse button
    ; $X = X coordinate
    ; $Y = Y coordinate
    ; $Clicks = Number of clicks to send
    ; Remarks: You MUST be in "MouseCoordMode" 0 to use this without bugs.
    ; Author(s): Insolence <[email='insolence_9@yahoo.com'][/email]>
    ;
    ;===============================================================================
    Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
    Local $MK_LBUTTON = 0x0001
    Local $WM_LBUTTONDOWN = 0x0201
    Local $WM_LBUTTONUP = 0x0202

    Local $MK_RBUTTON = 0x0002
    Local $WM_RBUTTONDOWN = 0x0204
    Local $WM_RBUTTONUP = 0x0205

    [/autoit][autoit][/autoit][autoit]

    Local $WM_MOUSEMOVE = 0x0200

    Local $i = 0

    Select
    Case $Button = "left"
    $Button = $MK_LBUTTON
    $ButtonDown = $WM_LBUTTONDOWN
    $ButtonUp = $WM_LBUTTONUP
    Case $Button = "right"
    $Button = $MK_RBUTTON
    $ButtonDown = $WM_RBUTTONDOWN
    $ButtonUp = $WM_RBUTTONUP
    EndSelect

    If $X = "" OR $Y = "" Then
    $MouseCoord = MouseGetPos()
    $X = $MouseCoord[0]
    $Y = $MouseCoord[1]
    EndIf

    For $i = 1 to $Clicks
    DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int", $WM_MOUSEMOVE, _
    "int", 0, _
    "long", _MakeLong($X, $Y))

    DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int", $ButtonDown, _
    "int", $Button, _
    "long", _MakeLong($X, $Y))

    DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int", $ButtonUp, _
    "int", $Button, _
    "long", _MakeLong($X, $Y))
    Next
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _MakeLong($LoWord,$HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von qsek (30. September 2007 um 20:51)

  • hi


    ich möchte dieses tool steuern...

    *klick*

    edit:

    nach langem probieren habe ich es immer noch nicht geschafft mousemoveplus auf mein Fenster anzuwenden :( mach ich was falsch?

    Spoiler anzeigen
    [autoit]


    Opt("MouseCoordMode", 0)

    [/autoit] [autoit][/autoit] [autoit]

    _MouseClickPlus("ThumbnailGenerator","left",410, 52)

    [/autoit] [autoit][/autoit] [autoit]

    Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
    Local $MK_LBUTTON = 0x0001
    Local $WM_LBUTTONDOWN = 0x0201
    Local $WM_LBUTTONUP = 0x0202

    [/autoit] [autoit][/autoit] [autoit]

    Local $MK_RBUTTON = 0x0002
    Local $WM_RBUTTONDOWN = 0x0204
    Local $WM_RBUTTONUP = 0x0205

    [/autoit] [autoit][/autoit] [autoit]

    Local $WM_MOUSEMOVE = 0x0200

    [/autoit] [autoit][/autoit] [autoit]

    Local $i = 0

    [/autoit] [autoit][/autoit] [autoit]

    Select
    Case $Button = "left"
    $Button = $MK_LBUTTON
    $ButtonDown = $WM_LBUTTONDOWN
    $ButtonUp = $WM_LBUTTONUP
    Case $Button = "right"
    $Button = $MK_RBUTTON
    $ButtonDown = $WM_RBUTTONDOWN
    $ButtonUp = $WM_RBUTTONUP
    EndSelect

    [/autoit] [autoit][/autoit] [autoit]

    If $X = "" OR $Y = "" Then
    $MouseCoord = MouseGetPos()
    $X = $MouseCoord[0]
    $Y = $MouseCoord[1]
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 1 to $Clicks
    DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int", $WM_MOUSEMOVE, _
    "int", 0, _
    "long", _MakeLong($X, $Y))

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int", $ButtonDown, _
    "int", $Button, _
    "long", _MakeLong($X, $Y))

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int", $ButtonUp, _
    "int", $Button, _
    "long", _MakeLong($X, $Y))
    Next
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _MakeLong($LoWord,$HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
    EndFunc

    [/autoit]


    mfg

    2 Mal editiert, zuletzt von derda (3. Oktober 2007 um 12:25)