wiedermal hotkeyset frage. hotkey als ziffernfolge.

  • Hi,

    kann man die Hotkeyset funktion nur für eine Buchstaben oder Shortcuts verwenden? Wie schaffe ich es, wenn ich die Folge ABCD als Hotekey belegen möchte? wenn ich

    [autoit]

    HotKeySet("ABCD", "_save")

    [/autoit]


    mache wird _save bereits beim drücken von A ausgeführt.

    Mit

    [autoit]

    _ispressed

    [/autoit]

    habe ich das gleiche Problem.

    :wacko:

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

    Einmal editiert, zuletzt von franzp (27. August 2008 um 19:22)

  • Hallo. Mit HotkeySet klappt's anscheinend nicht, dafür aber mit _IsPressed. Es gibt allerdings eine Einschränkung. Laut meinen Test können nur 3 Tasten gleichzeitig gedrückt werden.


    [autoit]

    #include <Misc.au3>

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

    While 1
    Sleep(50)
    If _IsPressed("41") And _IsPressed("42") And _IsPressed("43") Then MsgBox(0,"","Es wurde a, b und c gleichzeitig gedrückt!")
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
  • achso vergessen zu sagen. es soll nicht gleichzeitig sein, sondern als Folge.. also Hintereinander... ^^

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Gibt's nicht fertig, kann man sich jedoch machen!

    [autoit]

    Global $erster, $zweiter, $dritter, $vierter

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

    HotKeySet("a","_save")
    HotKeySet("b","_save")
    HotKeySet("c","_save")
    HotKeySet("d","_save")

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

    While 1
    Sleep(20)
    WEnd

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

    Func _save()
    $erster = $zweiter
    $zweiter = $dritter
    $dritter = $vierter
    $vierter = @HotKeyPressed
    If $erster&$zweiter&$dritter&$vierter = "abcd" Then MsgBox(64,"Geschafft","Zeichenfolge a,b,c,d eigegeben")
    EndFunc

    [/autoit]
  • Hi Funkey,

    ziemlich cool. Ja mit der Tastatur geht´s... allerdings funktioniert das nur, wenn die langsamer ist als 99ms zwischen den Tasten.
    Leider kommt die Tastenfolge nicht von der Tastatur und daher ziemlich schnell.. Und dann geht so nicht.

    ?(

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Hi,
    siehe Anhang, da ist ein Zip-Archiv aus dem englischen Forum!

    --> Hotstrings

    Ich hab die deshalb neu hochgeladen, weil noch alte Befehle benutzt wurden, wie z.B. @Unicode.
    Mit dem Archiv im Anhang funktionierts :).

    Einmal editiert, zuletzt von anno2008 (27. August 2008 um 14:36)

  • vielen Dank,das wäre echt toll, wenn das funktioniert. Aber wenn ich das example ausprobiere kommt genau das Problem, dass Du genannt hast:
    ---
    C:\Programme\AutoIt3\Include\DllCallBack.au3(114,16) : ERROR: undefined macro.
    If @Unicode Then
    ~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Include\DllCallBack.au3(127,16) : ERROR: undefined macro.
    If @Unicode Then
    ---

    also habe ich die @unicode gegen @AutoItUnicode in der DllCallBack.au3 getauscht und der erste test war erfolgreich :thumbup:

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Blub ich hoff ich sag jetzt nix falsches:
    Aber für die ispressed funktion wird doch die user32.dll verwendet kann man diese DLL nur so benutzen das man den query für die Taste stellt und quasi nur einen boolschen wert zurückbekommt (taste gedrückt oder nicht) oder gibt es auch eine andere Funktion (oder ähnloches) das direkt die Taste zurückgibt
    Ich sag mal von (meinem) logischen Denkansatz her, irgendwoher muss der PC / Windoof bzw. jede Anwendung mit Textfeld/Eingabe ja wissen was für eine Taste der user gerade drückt... Das alles in einer Schleife abzufragen ob die jeweilige Taste gedrückt wurde oder nicht fänd ich schon sehr krass... Leider bin ich der totale kackboon was DLLs anbelangt aber ich schätze/hoffe unsere profis hier können dir da vielleicht weiterhelfen :D

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • jetzt hab ichs in meinem Script. und es kommt

    Zitat

    C:\Programme\AutoIt3\Include\WinAPI.au3(138,34) : ERROR: $WH_KEYBOARD_LL previously declared as a 'Const'
    Global Const $WH_KEYBOARD_LL = 13

    scheinbar wird die Variable in mehreren UDF anders definiert? Kann ich ich die dann einfach bei der UDF auskommentieren?

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Oh man, tut mir leid franzp, ich hab extra die neue Version als zip erstellt und dann doch die alte hochgeladen, jetzt gehts, im Anhang vom 8 post :)

    vielen Dank, soweit ich sehen kann sind das genau die Änderungen die ich auch gemacht habe.

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • habe aus der Hotstrings.au3

    [autoit]

    Global Const $WH_KEYBOARD_LL = 13

    [/autoit]


    auskommentiert. Jetzt geht´s :)

    Das wird bereits in der WINapi.au3 definiert.

    vielen Dank !!

    Franz

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---