_ispressed ungleich HotkeySet

  • wie kann ich erreichen, das beim Arbeiten mit _isPressed die gedrückten Tasten abgefangen werden (wie bei HotkeySet) und nicht ausgeführt werden.

    Das folgende Beispiel funzt zwar, aber in nem Textdokument würde beim Ausführen des Hotkeys ein "i" geschrieben. Und genau das will ich verhindern.

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    $dll = DllOpen("user32.dll")

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

    while 1
    Select
    case _IsPressed("01",$dll) And _IsPressed("49",$dll) ;linke Maustaste + i
    while _IsPressed("01",$dll)
    sleep(1)
    wend
    _irgendwas ()
    EndSelect
    sleep(1)
    WEnd

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

    Func _irgendwas ()
    MsgBox(0,"","Juhu!!!",5)
    EndFunc

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

    DllClose($dll)

    [/autoit]

    hat jemand n Tipp für mich?

    Einmal editiert, zuletzt von Vollnoob (16. Oktober 2007 um 12:29)

    • Offizieller Beitrag

    HI,

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    $dll = DllOpen("user32.dll")

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

    While 1
    Sleep(1)
    _run()
    WEnd

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

    Func _run()
    While _IsPressed("01", $dll) ;linke Maustaste + i
    HotKeySet('i', '_irgendwas')
    Sleep(1)
    WEnd
    HotKeySet('i')
    EndFunc ;==>_run

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

    Func _irgendwas()
    MsgBox(0, "", "Juhu!!!", 5)
    HotKeySet('i')
    EndFunc ;==>_irgendwas

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

    DllClose($dll)

    [/autoit]

    Edit: so ist es vielleicht übersichtlicher:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    $dll = DllOpen("user32.dll")

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

    While 1
    Sleep(1)
    While _IsPressed("01", $dll) ;linke Maustaste + i
    HotKeySet('i', '_irgendwas')
    Sleep(1)
    WEnd
    HotKeySet('i')
    WEnd

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

    Func _irgendwas()
    MsgBox(0, "", "Juhu!!!", 5)
    HotKeySet('i')
    EndFunc ;==>_irgendwas

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

    DllClose($dll)

    [/autoit]

    So long,

    Mega

  • Die idee ist spitze, nur weitergesponnen hab ich hier n overflow, dessen Logik ich wiedermal nicht verstehe. :comp2:
    warscheinlich ists eh wieder bloß ne kleinigkeit.
    Mein script sieht nun so aus:

    Spoiler anzeigen
    [autoit]

    #include <Misc.au3>
    #include <Array.au3>

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

    $dll = DllOpen("user32.dll")

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

    ; $hex = StringSplit("20|30|31|32|33|34|35|36|37|38|39|41|42|43|44|45|46|47|48|49|4A|4B|4C|4D|4E|4F|50|51|52|53|54|55|56|57|58|59|5A|60|61|62|63|64|65|66|67|68|69","|")
    $chr = StringSplit(" |0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|0|1|2|3|4|5|6|7|8|9","|")

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

    if FileExists("xxx.ini") not Then
    for $t= 1 to $chr[0]
    IniWrite("xxx.ini","Hotkeys", $chr[$t],"hallo")
    next
    EndIf

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

    While 1
    sleep(1)
    if _ispressed("01",$dll) then
    ToolTip("ein!")
    for $t= 1 to $chr[0]
    hotkeyset ($chr[$t],"_send")
    next
    while _ispressed("01",$dll)
    sleep(1)
    ToolTip("warte auf Eingabe des Hotkeys")
    wend
    ToolTip("aus!")
    for $t= 1 to $chr[0]
    hotkeyset ($chr[$t])
    Next
    endif
    WEnd

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

    Func _send()
    $text = iniread("xxx.ini","Hotkeys",@HotkeyPressed,"")
    ToolTip("folgender Text sollten nun gesendet werden: "& $text)
    send ($text)
    endfunc

    [/autoit]
  • n Keylogger könnte ich schon ohne Hilfe Programmieren (stolz Bin).

    Nein, das ding is fürn game, soll mittels Hotkeys Konsolenbefehle senden.
    Und da ich keine Zeit habe die Hand von der Maus zu nehmen, und so ziehmlich die ganze Tastatur im Spiel belegt ist, versuch ich die Maus als Hotkey mit einzubinden.

    edit/ Ps. nicht jeder Mensch ist grundsätzlich bösartig ;)

    Einmal editiert, zuletzt von Vollnoob (17. Oktober 2007 um 15:19)

  • So, Spider, jez is es so weit, vor lauter Keyloggerpanik traut sich keiner mehr mir zu helfen. Was mach ich nur?

    Langen Strick?, kurzen Strick?, Brücken-Springen?, Schlaftabletten?, oder Auspuff umleiten? ;(

  • So, falls es jemanden interessiert, das prob lag daran, dass ich schlauerweise mit "Send" meine Hotkeys selbst aufgerufen habe :D

    Wie üblich ne Kleinigkeit.

    besser gehts so:

    [autoit]

    #include <Misc.au3>
    #include <Array.au3>

    $dll = DllOpen("user32.dll")

    ; $hex = StringSplit("20|30|31|32|33|34|35|36|37|38|39|41|42|43|44|45|46|47|48|49|4A|4B|4C|4D|4E|4F|50|51|52|53|54|55|56|57|58|59|5A|60|61|62|63|64|65|66|67|68|69","|")
    $chr = StringSplit(" |0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|0|1|2|3|4|5|6|7|8|9","|")

    if FileExists("xxx.ini") not Then
    for $t= 1 to $chr[0]
    IniWrite("xxx.ini","Hotkeys", $chr[$t],"hallo")
    next
    EndIf


    While 1
    sleep(1)
    if _ispressed("01",$dll) then
    ToolTip("ein!")
    for $t= 1 to $chr[0]
    hotkeyset ($chr[$t],"_send")
    next
    while _ispressed("01",$dll)
    sleep(1)
    ToolTip("warte auf Eingabe des Hotkeys")
    wend
    ToolTip("aus!")
    for $t= 1 to $chr[0]
    hotkeyset ($chr[$t])
    Next
    endif
    WEnd



    Func _send()
    $text = iniread("xxx.ini","Hotkeys",@HotkeyPressed,"")
    ToolTip("folgender Text sollten nun gesendet werden: "& $text)
    for $t= 1 to $chr[0]
    hotkeyset ($chr[$t])
    Next
    send ($text)
    endfunc

    [/autoit]