Eingabe in Edit Control überwachen mit _WM_Command

  • Hallo an die Spezialisten,

    ich habe eben die Funktion _WM_Command zur überwchung des EDIT Controls $idCode erstellt.

    Dazu habe ich eine Verständnisfrage: Wodurch wird Case $EN_UPdate ausgelöst :?:

    Hintergrund:
    Wenn ich in das Edit den String S/N: manuell eingebe und die Entertaste drücke wird der Anweisungsblock im Case ausgeführt.
    Scanne ich einen String mit einem 2D-Scanner aus einem QR-Code in dem ebenfalls S/N: vorkommt wird der Anweisungsblock nicht ausgeführt,
    obwohl der Scanner IMMER am Ende eines Scans ein "Enter" mit sendet...

  • hipfzwirgel 17. Februar 2022 um 15:06

    Hat den Titel des Themas von „Eingabe in Edit COntrol überwachen mit _WM_Command“ zu „Eingabe in Edit Control überwachen mit _WM_Command“ geändert.
  • Hallo Bugfix,

    danke für den Anreiz.

    Ich habe es getestet. Offenbar sendet mein Scanner tatsächlich CRLF denn dein Vorschlag funktioniert perfekt.

    Frage mich nun aber was der unterschied zwischen @CRLF und der Entertaste ist :?:
    Sollte schlussendlich doch der gleiche Key-Code sein...

    Einmal editiert, zuletzt von hipfzwirgel (17. Februar 2022 um 15:32)

  • Hallo Bugfix,

    mir ist zum ;( zumute...

    Offenbar funzt das doch nicht richtig . Jetzt reagiert die FUNC schon auf den ersten Zeilenumbruch:

    Der Inhalt des QR-Codes sieht so aus:

    DeviceName @CRLF
    Label: Leihstellung @CRLF
    UUID: 1234... @CRLF
    S/N: 98765432 CRLF vom Scanner

    Vielleicht würde es gehen wenn man die Sequenz ' .*(\r\n + \Z' um den String S/N: ergänzt, sodaß er quasi nur das CRLF der letzten Zeile auswertet...
    'S/N: *(\r\n + \Z' geht jedenfalls nicht...

  • Hallo,

    Problem gelöst:

    mit der Zeile

    Code
    If StringRegExp(ControlGetText($hWnd, '', $iIDFrom), 'S/N: .*' & @CRLF) Then ; last Input = @CRLF

    wird nur die letzte Zeile ausgewertet... :rock:  :party:

    Danke und schönes WE an Bugfix für die Idee :klatschen: