_IsPressed() | 1. Parameter Problem

  • Hallo Community!
    In Zeile 21 im nachfolgenden Skript wird mein Tastendruck nicht erkannt.
    Hat jemand eine Idee woran das liegen könnte?

    Spoiler anzeigen
    [autoit]

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

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

    While 1
    $array = _GetKey()
    If UBound($array) > 1 Then
    _ArrayDisplay($array)
    Exit
    EndIf
    WEnd

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

    Func _GetKey()
    Local $aKey[1], $iCount
    Local $hDLL = DllOpen('User32.dll')

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

    For $iCount = 0x00 To 0xff
    If _IsPressed(String(Hex($iCount, 2)), $hDLL) And Not $iCount = 233 Then
    ReDim $aKey[UBound($aKey) + 1]
    $aKey[UBound($aKey)] = $iCount
    $aKey[0] += 1
    EndIf
    Next

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

    DllClose($hDLL)
    Return $aKey
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von Yjuq (21. April 2013 um 18:47)

  • Ich befürchte fast, dass du zuerst noch erklären müsstest inwiefern das keinen Keylogger geben sollte...

    Gruss Shadowigor

  • Bei anderen Themen hat ja auch keiner gemekert, z.B. hier.
    Außerdem gibt es ja genug andere Wege, die nicht mit _IsPressed() in einer For-Schleife funktionieren.
    (Für einen Keylogger wäre das sowieso zu langsam, besonders wenn man schnell tippen kann.)

    @Make Schon mal ohne String() versucht?

  • WTF oO
    Ich hätte niemals gedacht dass einer von euch denkt ich wollte ein Keylogger basteln oO

    Wenn ich einen Keylogger basteln wollte, würde ich da garantiert nicht AutoIt nehmen. :D


    Und zwar bastel ich gerade an einem Konsolensnake und ich wollte die Möglichkeit in betracht ziehen, nicht einzelne Tasten abzufragen sondern zu überprüfen welche Tasten gedrückt sind. Da hatte ich dieses obere Skript geschrieben und merke gerade, dass dies nicht so funktionieren will wie ich das will. ^^

    Aber habt ja recht,... Das ganze sieht wirklich verdammt nach einem Keylogger aus.
    Aufgrund der Tatsache dass sich dies in der Konsole abspielt, würde es auch gut tun wenn ich den Puffer irgendwie auslesen könnte?

    (AutoIt Skript wurde als Konsolen Anwendung kompiliert)

    James >> Hab es schon ohne String() versucht,... Das funktioniert so aber auch nicht.

  • Mein Fehler lag in der If-Abfrage:

    [autoit]

    If _IsPressed(Hex($iCount, 2), $hDLL) And Not $iCount = 233 Then

    [/autoit]


    Es wird ja erst Not $iCount durchgeführt und dann verglichen :whistling:

    [autoit]

    If _IsPressed(Hex($iCount, 2), $hDLL) And Not ($iCount = 233) Then

    [/autoit]

    Danke an alle ^^