Hotkey aus mehreren Zeichen

  • Hallo,

    ich möchte ein Script erstellen, das die Verwendung von Hotkeys aus mehreren Zeichen ermöglicht.

    Beispiel: #mfg wird - egal wo eingegeben - in "Mit freundlichen Grüßen" ersetzt.

    Habe es versucht mit:

    HotKeySet("{#}mfg", "Func1")
    Func Func1()
    send("Mit freundlichen Grüßen")
    EndFunc ; ==> Func1

    Aber das funktioniert nicht. Weiß jemand Abhilfe? Danke

    Peter

    Einmal editiert, zuletzt von ansorge (15. Juli 2008 um 20:44)

  • Danke, Autohotkey funktioniert.

    Aber wenn jemand eine Lörung in Autoit kennt, ich bin immer noch interessiert daran.

    Peter

  • Vielleicht könnte dir das helfen:

    Spoiler anzeigen
    [autoit]


    #include <Misc.au3>

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

    While 1
    If _IsPressed("4D") = 1 Then
    Sleep(50)
    If _IsPressed("53") = 1 Then
    Sleep(50)
    If _IsPressed("47") = 1 Then
    Send("Mit freundlichen Grüßen")
    EndIf
    EndIf
    EndIf
    WEnd

    [/autoit]
  • Für eine einzelne zu ersetzende Sequenz sollte das gut funktionieren.
    Ich will aber flexibel eine größere Anzahl solcher Sequenzen verwalten, dann wird mir das aufwändig.
    An die Flexibilität von Autohotkey kommt eine selbstgebastelte Lösung wohl nicht heran.

    Peter

  • Geht mit Autoit auch, kommt aber einem Keylogger sehr nahe. Daher poste ich meine Lösung erst mal nicht ;)

  • @Shareware da muss man sich schon was einfallen lassen.

    @Keylogger frist das nicht unendlich resourcen ?

    Man müsste doch die Tastendrücke in Strings umwandeln und dann Vergleichen
    Aber woher würde Autoit wissen wann ein String aufhört ? Sann hast du doch irgendwann 1000 Zeichen die verglichen werden wollen.
    oder liege ich falsch ??

  • 1. du liegst falsch
    2. du könntest doch auch die autohotkey funktion ind au3 importieren 0o

    hat schonmal jemand mit imagesearch gemacht so weit ich mich daran erinner

  • Du musst eben ein Start- und ein End-Signal verwende. (Kann eben nicht in der Abkürzung verwendet werden.)

  • spontaner einfall:

    [autoit]


    #include <Misc.au3>

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

    adlibenable("hotkeys",100)
    func hotkeys()
    If _IsPressed("4D") = 1 and _IsPressed("53") = 1 and _IsPressed("47") = 1 then Send("Mit freundlichen Grüßen")
    endfunc

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

    While 1
    sleep(50)
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Dann musst du das gleichzeitig drücken :P
    Nee, da nimmt man einen Hook und ein paar andere API-Calls ... WH_KEYBOARD_LL zum Beispiel

  • Ich denke, wie man an die Tasten kommt, kann man noch sagen, aber wie es weitergeht, nicht. In lesbare Zeichen umwandelen, vergleichen ... muss man dann schon noch machen.