Code: Select all
#SingleInstance force
Chars = 0123456789 abcdefghijklmnopqrstuvwxyz!""$`%^&*()_+=-``\|,./;'#[]{}:@~<>?
Loop, Parse, Chars
{
fn := Func("BarcodeHandler").Bind(A_LoopField)
Hotkey, % "$~" A_LoopField, % fn, on
}
Chars_Upper = ABCDEFGHIJKLMNOPQRSTUVWXYZ
Loop, Parse, Chars_Upper
{
fn := Func("BarcodeHandler").Bind(A_LoopField)
Hotkey, % "$~+" A_LoopField, % fn, on
}
fn := Func("BarcodeHandler").Bind(" ")
Hotkey, $~Space, % fn, on
BarCodeHandler(key){
global Accu
Accu .= key
If (Strlen(Accu) > 4 && A_TimeSincePriorHotkey < 20)
SetTimer, TheBigShebang, -20
Else If (A_TimeSincePriorHotkey > 25)
Accu := SubStr(key, 0)
}
TheBigShebang:
If Accu
msgbox You scanned barcode %Accu%
return
^Esc::ExitApp