_IsPressed mit ß

Statement zur DSGVO im Forum

Alles zur DSGVO und zur Umsetzung im Forum hier: Statement zur DSGVO (letztes Update: 30.05.2018)
  • Das ß taucht aber in der Hilfe zu _IsPressed gar nicht auf. Du kannst aber den Scancode "BD" nehmen, dass korreliert auf der engl. Tastatur nämlich mit "-" welches sich auf der selben Stelle befindet.


    Ein kleiner Test bestätigt das auch:

    AutoIt
    1. #include <Misc.au3>
    2. $hDLL = DllOpen("user32.dll")
    3. While True
    4. For $i = 1 To 0xFF
    5. If _IsPressed(Hex($i), $hDLL) Then ConsoleWrite(Hex($i) & @CRLF)
    6. Next
    7. Sleep(10)
    8. WEnd
  • Hiermit kannst du dir die gedrückte Taste via ToolTip anzeigen lassen... Abbruch mit ESC!


    Wenn dein Script eine GUI hat und die Taste(n) nur abgefragt werden sollen, wenn diese aktiv ist, solltest du besser GUISetAccelerators verwenden.

  • Danke! Damit hab ich herausgefunden dass bei mir ß 0xDB ist! Klappt, danke!

    Hat mein Skript bei dir nicht geklappt oder hast du es überhaupt nicht probiert? Bei mir spuckt der für ß auch 0xDB aus.


    Bitnugger   Schnieker

    Ohh, ich sehe grad, ich habe beim Forumpost die Buchstaben vertauscht, tatsächlich meinte ich natürlich 0xDB!

  • Moin.

    Meine Erweiterung übersetzt nun auch den HEX-Code in das entsprechende Zeichen auf der Tastatur:

    Immer wenn die deutsche und englische Belegung unterschiedlich sind werden beide angegeben.


    Jetzt fehlt mir nur noch die Auswertung der Modifier links oder rechts. Denn dabei wird immer der Standardcode für den Modifier zusammen mit dem Code des Modifiers spezialisiert auf seine Seite angegeben. Mit anderen Worten die linke SHIFT-Taste spukt immer die "10" und "A0" raus. Der Loop wird aber bereits bei einem Treffer von 10 beendet und deswegen gar nicht bis zu A0 durchgeschritten.

    Hat da jemand eine Idee dazu? Wenn ich einfach die ["10", "SHIFT"] rauswerfe dann wird meistens der HEX-Code angezeigt und nicht "Left SHIFT".


    Gruß, Conrad

    SciTE4AutoIt = 3.7.3.0 AutoIt = 3.3.14.2 AutoItX64 = 0 OS = Win7Pro SP1 OSArch = X64 Language = 0407/german

    H:\...\AutoIt3\SciTE H:\...\AutoIt3 H:\...\AutoIt3\Include (H:\ = Network Drive)


    86223-publicdomain-88x31-png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

  • Schau mal hier...

  • Moin. Ich habe über viele Inputs mir mal was anderes gebastelt:

    Das funktioniert auch echt fluffig. Nun passiert aber was merkwürdiges. Ich drücke "ASDF" gleichzeitig und bekomme es auch angezeigt. Drücke ich nun "G" oder "H" dazu tauchen diese bei mir nicht auf. Drücke ich nur das "F" im Wechsel mit "G" und "H" kann ich nun die 2 Buchstaben gleichzeitig sehen, aber niemals "FGH" gleichzeitig. Hat da jemand irgendeine Idee?


    Gruß, Conrad

    SciTE4AutoIt = 3.7.3.0 AutoIt = 3.3.14.2 AutoItX64 = 0 OS = Win7Pro SP1 OSArch = X64 Language = 0407/german

    H:\...\AutoIt3\SciTE H:\...\AutoIt3 H:\...\AutoIt3\Include (H:\ = Network Drive)


    86223-publicdomain-88x31-png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

  • Das hängt vermutlich mit deiner Tastatur zusammen. Diese können selten mehr als 3-4 Tasten gleichzeitig erkennen und dabei kommt es manchmal auch auf die Tastenkombination an.

    Das ist dann also je nach Tastatur unterschiedlich.


    Ich würde auch mit Hooks arbeiten, da dann nicht permanent in einer Schleife die Funktion durchläuft sondern von Windows das Keyboard-event getriggered wird, sobald eine Taste gedrückt wird. -> CPU-Auslastung.

  • Mein Tool wird nur dann gestartet, wenn ich den Verdacht einer hängenden Taste habe, da sollte die Schleife nicht das Problem sein.

    Aber mich würde schon interessieren, wie Du das optimieren würdest. Hätte das was mit _WinAPI_SetWindowsHookEx() zu tun?

    SciTE4AutoIt = 3.7.3.0 AutoIt = 3.3.14.2 AutoItX64 = 0 OS = Win7Pro SP1 OSArch = X64 Language = 0407/german

    H:\...\AutoIt3\SciTE H:\...\AutoIt3 H:\...\AutoIt3\Include (H:\ = Network Drive)


    86223-publicdomain-88x31-png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.

  • Hätte das was mit _WinAPI_SetWindowsHookEx() zu tun?

    Genau. Ist eine interessante Sache. Leider wird das auch für gar nicht gern gesehene Aktivitäten (z.B. Keyloggger) genutzt.

    Deshalb halten wir uns mit Unterstützung zu diesem Thema etwas bedeckt. Mit etwas eigener Anstrengung findet man dann schon zu Lösungen.

    Da Scriptkiddies sich nicht gern anstrengen, reichen unsere vagen Hinweise den Usern eigentlich.

  • Ja, das dachte ich mir auch schon. Ich versuche mal was und frage bei Details dann noch mal nach.


    Gruß, Conrad

    SciTE4AutoIt = 3.7.3.0 AutoIt = 3.3.14.2 AutoItX64 = 0 OS = Win7Pro SP1 OSArch = X64 Language = 0407/german

    H:\...\AutoIt3\SciTE H:\...\AutoIt3 H:\...\AutoIt3\Include (H:\ = Network Drive)


    86223-publicdomain-88x31-png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind.