How to toggle between two Autohotkey configurations -


i need toggle between 2 autohotkey key mapping configurations. i'd toggle 2 through f3. research online , on stackoverflow, think below should want:

#ifwinactive  next_make_mac = %1% msgbox next_make_mac: %next_make_mac%  #if next_make_mac     msgbox setting mac settings.     ralt::control     escape::delete      rwin::escape     lwin::lalt     lalt::lwin     next_make_mac := false     msgbox mac settings set. #if  #if !next_make_mac     msgbox setting pc settings.     ralt::escape     msgbox pc settings set.     next_make_mac := true #if  msgbox %next_make_mac%  f3::      run %a_ahkpath% %a_scriptname% %next_make_mac% return 

however, #if next_make_mac directive evaluates true. i'm not sure why is. in fact, if slip in next_make_mac := false still evaluates true. there better way i'm doing?

i'm running autohotkey 1.1.21.03

first of all, message-boxes have inside #if statements not behave expected. first one, on line 7 go off, telling it's setting mac settings. hotkeys however, setup properly.

i think due auto-exec section reaching way first hotkey finds.

only put hotkeys inside #if statements.


next, in first #if statement, you're checking if next_make_mac contains other false or 0. meaning string "false", evaluate true.

note, false in ahk same 0.

in second #if statement, you're checking if next_make_mac contains either false or 0.


as toggling, since can't change values of variables directly inside #if statements, you'll have add f3 hotkey.

like this:

f3::     next_make_mac := !next_make_mac ; flip value     msgbox % next_make_mac     run %a_ahkpath% %a_scriptname% %next_make_mac% return 

that line toggle next_make_mac, assuming contains either true, false, 1 or 0.


so, make sure have hotkeys inside #if statements, , pass 1 or 0 params instead of true or false don't accidentally use string, , script should work expected.


here's full example of changes:

#singleinstance, force #ifwinactive  next_make_mac = %1%  ; check settings we'll using if (next_make_mac)     msgbox, using mac settings else     msgbox, using pc settings  ; hotkeys inside here #if next_make_mac     ralt::control     escape::delete      rwin::escape     lwin::lalt     lalt::lwin #if  ; hotkeys inside here #if !next_make_mac     ralt::escape #if  f3::     next_make_mac := !next_make_mac ; flip value     run %a_ahkpath% %a_scriptname% %next_make_mac% return 

edit: while outside scope of question, can add #singleinstance, force @ top of script rid of dialog asks if want restart script every time press f3.


Comments

Popular posts from this blog

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -

ubuntu - Selenium Node Not Connecting to Hub, Not Opening Port -