Söker snabb hjälp med Autohotkey

Permalänk

Söker snabb hjälp med Autohotkey

Hej, jag sitter med en grej på jobbet som jag inte lyckas lösa. Jag har skrivit lite PHP men har ingen kunskap i Autohotkey.

Jag har en handscanner som skickar formatet A1234B1234C1234D1234, men med olika längder siffror, så ingen fast längd på strängen. Detta ställer till det, när jag väljer input så måste jag sätta L26, annars tar den inte inputen. L0 fungerar inte, och jag kan inte skicka V som argument, för då skickar den strängen 2 gånger och det fungerar inte i mjukvaran som tar emot min splittade sträng.

Så vad jag behöver lösa är - att den tar input av olika längder och att man ska kunna välja antingen "scan" mode eller kunna skriva in tecken från tangentbordet, det blockas för tillfället när jag kör mitt script. Ibland händer det att man måste skriva in något manuellt, då måste alternativet finnas. Samtidigt så ska man inte behöva göra något innan varje scanning. Tack

Loop { Input, ScanData, L26 M if (RegExMatch(ScanData, "iO)([A-Z]\d+)([A-Z]\d+)([A-Z]\d+)([A-Z]\d+)", Output)){ for k,v in % StrSplit(RegExReplace(ScanData,"(?<=\d)[A-Z]\d+","|$0"),"|") { send, % v "{Enter}" Sleep, 500 } ;Send {F1} Send F1 Sleep, 1000 ;Send {F4} Send F4 } }

Permalänk

Jag har fått en annan kod som nästan fungerar som jag vill.
Problemet här är att den inte skickar scannad data förrän jag trycker F1 igen.
Jag vill ju kunna scanna oavbrutet utan att behöva trycka på något annat än just en gång på scannern för att trigga själva scanningen.

F1:: ; press F1 to toggle scanner/keyboard input Soundbeep, 750, 1000 MsgBox, , Input, Scannerläge - Tryck "OK" och sedan "F1" för tangentbordsläge Input, OutputVar, , {F1} a := 0, strings := [] for i, char in StrSplit(OutputVar) { if char is alpha { a++ strings[a] := char } else if char is digit strings[a] .= char } sleep 200 for a, b in strings Send % b "{Enter}" Soundbeep, 1000, 200 MsgBox, , Input, Tangentbordsläge - Tryck "OK" och sedan "F1" för scannerläge return