diff --git a/INFO_and_PROFILES/ignore me/2nd_keyboard_if_using_Razer--BAD IDEA.ahk b/INFO_and_PROFILES/ignore me/2nd_keyboard_if_using_Razer--BAD IDEA.ahk
new file mode 100644
index 0000000..68691ec
--- /dev/null
+++ b/INFO_and_PROFILES/ignore me/2nd_keyboard_if_using_Razer--BAD IDEA.ahk
@@ -0,0 +1,110 @@
+#NoEnv
+SendMode Input
+#InstallKeybdHook
+#InstallMouseHook
+#UseHook On
+
+#SingleInstance force ;only one instance may run at a time!
+#MaxHotkeysPerInterval 2000
+#WinActivateForce ;https://autohotkey.com/docs/commands/_WinActivateForce.htm ;this may prevent taskbar flashing.
+detecthiddenwindows, on
+
+;;--------------------------------------------------------------------
+;;;;;;SCRIPT THAT RECIEVES MESSAGES AND TURNS THEM INTO FUNCTIONS:;;;;
+;;--------------------------------------------------------------------
+
+;;Discussion:https://autohotkey.com/board/topic/18361-anyway-to-pass-params-to-script-while-running/
+
+;;Where I got the script from:
+; https://autohotkey.com/docs/commands/OnMessage.htm
+
+#ifwinactive
+OnMessage(0x4a, "Receive_WM_COPYDATA") ; 0x4a is WM_COPYDATA
+return
+
+Receive_WM_COPYDATA(wParam, lParam)
+{
+ StringAddress := NumGet(lParam + 2*A_PtrSize) ; Retrieves the CopyDataStruct's lpData member.
+ CopyOfData := StrGet(StringAddress) ; Copy the string out of the structure.
+
+ ;msgbox, %A_ScriptName%`nReceived the following string:`n`n%CopyOfData%
+
+ ; So at this point, %CopyOfData% contains the following string:
+ ; coolFunction("from Q",0)
+
+ ; If only there was an easy way to use that string in such a way that the function is called... I believe this is known as dynamic code execution: https://www.autohotkey.com/docs/Functions.htm#dynamic or https://autohotkey.com/board/topic/51532-execute-string-in-ahk/
+ ; But IDK how to get that working.
+
+ ;#(%CopyOfData%) ;<--this doesn't work, but i guess it would if I used a mile of code from that thread I linked to. That ain't happening.
+
+ ;callIt := CopyOfData ;<--unfortunately, this also doesn't work, even if we start off with `%coolFunction`%("from Q",0) ... which means that I need to do it the hard way, which you will see below.
+ ;callIt = %CopyOfData% ;<- this don't work neither, dang it.
+
+ ;/*
+ string = %CopyOfData%
+ theFunctionName := SubStr(String, 1, InStr(string, "(") - 1) ;<-- This assumes that your function name is to the left of a "(" and I think that's a pretty fair assumption.
+
+ parameter1 := SubStr(String, InStr(string, "(") + 1)
+ parameter1 := SubStr(parameter1, 1, InStr(parameter1, ",") - 1) ;this and the preceeding line will extract the parameters, assuming you properly put them inside of ( ) parentheses!
+
+
+ ;Func.Call()
+
+ return true ; Returning 1 (true) is the traditional way to acknowledge this message.
+}
+
+;;DEFINE YOUR FUNCTIONS BELOW HERE
+
+coolFunction(param1,param2 := 2) ;<--Just in case you forgot a 2nd parameter, this means that it'll be a 2.
+{
+ msgbox, congrats! you made it to coolFunction`, with the parameters`n%param1%`nand`n%param2%
+ bueno = "bueno"
+ return bueno
+}
+
+anotherFunction(yeah,whatever)
+{
+msgbox, %yeah%`n%whatever%
+sleep 10
+
+}
+
+^+s::
+send ^s
+reload
+
+return
+
+; Keyshower(f_path,"InstExplor")
+; if IsFunc("Keyshower") {
+ ; Func := Func("Keyshower")
+ ; RetVal := Func.Call(f_path,"InstExplor")
+; }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/INFO_and_PROFILES/ignore me/E.ahk b/INFO_and_PROFILES/ignore me/E.ahk
new file mode 100644
index 0000000..e9a4d58
--- /dev/null
+++ b/INFO_and_PROFILES/ignore me/E.ahk
@@ -0,0 +1,22 @@
+StringToSend = fakeFunction("from E",0)
+;; The above line is the only thing you should change. Write out the function you wish to call in exactly the same way you would with any function! Otherwise it won't work!! Note that it must have two parameters. (Unless you modify the code yourself.) If you don't want to use the 2nd parameters, just put a 0.
+
+result := Send_WM_COPYDATA(StringToSend)
+;The above line is what actaully calls the Send_WM_COPYDATA function, which is defined in the REDIRECTOR_RAZER.ahk script, which has been #include-d below. Yeah. You can define functions even below an "Exitapp" command.
+
+;At this point, we are hoping to recieve "true" as our result. If it fails, we will recieve "fail".
+
+if (result = 0)
+ wasIgnored()
+
+if (result = "fail"){
+ failtastic(stringtosend,result) ;I want to have as little code in these small scripts as possible. failtastic(,) is therefore defined inside of the REDIRECTOR_RAZER.ahk script.
+ }
+
+Exitapp
+
+
+SetWorkingDir %A_ScriptDir% ;<--This is superior to the alternative on the following line:
+;SetWorkingDir C:\AHK\2nd-keyboard\Razer\razer_direct_launch
+;Because even though they both achieve the same result, the way I've done it means that you can move the entire folder wherever you want. The downside is that you'd still have to redefine all the script locations inside of razer synapse. yikes!
+#Include %A_ScriptDir%/REDIRECTOR_RAZER.ahk ;<-- REDIRECTOR_RAZER.ahk must always be in the same folder as all the smaller scripts (like this one) that it is servicing.
diff --git a/Intercept/2nd_keyboard_if_using_interception.ahk b/Intercept/FULL_extra_keyboard.ahk
similarity index 94%
rename from Intercept/2nd_keyboard_if_using_interception.ahk
rename to Intercept/FULL_extra_keyboard.ahk
index 9a8e56e..bc1aecf 100644
--- a/Intercept/2nd_keyboard_if_using_interception.ahk
+++ b/Intercept/FULL_extra_keyboard.ahk
@@ -1,4 +1,6 @@
-SetWorkingDir, C:\AHK\2nd-keyboard\ ;This line is actually optional. But it must go here if you need it.
+#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
+SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
+;SetWorkingDir, C:\AHK\2nd-keyboard\ ;Or you could put the directory here. Whatevs.
Menu, Tray, Icon, shell32.dll, 283 ;changes the taskbar icon to something
;SetKeyDelay, 0 ;IDK exactly what this does.
@@ -52,9 +54,6 @@ SendMode Input
;; https://notepad-plus-plus.org/
;; You'll probably want the syntax highlighting: https://stackoverflow.com/questions/45466733/autohotkey-syntax-highlighting-in-notepad
-;;;#if (getKeyState("F23", "P")) && (uselayer = 0) ;;you can use a varibable like so, but I don't.
-;;;More info about #if thingies (important): https://github.com/TaranVH/2nd-keyboard/issues/65
-
;;;WARNING - THIS IS KINDA UNTESTED SINCE I STOPPED USING IT. LET ME KNOW IF YOU HAVE ANY ISSUES, BY LEAVING A GITHUB... ISSUE. https://github.com/TaranVH/2nd-keyboard/issues
@@ -63,9 +62,14 @@ SendMode Input
F23::return ;this line is mandatory for proper functionality
escape::tooltip, [F23] You might wish to not give a command to escape. Could cause problems. IDK.
-F1::
+;escape::return ;<--to disable a key, just use a "return," like so.
+
+F1::msgbox, you pressed F1 on the extra keyboard
F2::
-F3::
+SoundBeep, 900, 400
+tooltip, you pressed F2 AND get a beep sound!
+return
+F3::tooltip, you pressed F3 but do not get a beep.
F4::
F5::
F6::
@@ -74,7 +78,7 @@ F9::
F8::
F10::
F11::
-F12::tooltip, [F23] %A_thishotKey%
+F12::tooltip, you pressed the function key %A_thishotkey% on the [F23] keyboard
;;Note that the assignment on the above line will apply to ALL prior lines ending in "::"
;;...which you should know from the AHK tutorial I linked you to.
@@ -154,6 +158,7 @@ return
;;===================== MODIFIERS =========================;;
+;;Keep these commented out, as they are!
;Lshift::tooltip, do not use
;Lctrl::tooltip, do not use
;Lwin::tooltip, do not use
@@ -275,6 +280,8 @@ F1::msgbox, You pressed F1 on your secondary keyboard while inside of Premiere P
; msgbox, You pressed F1 on your secondary keyboard while NOT inside of Premiere Pro
;;This is easier to understand, but it's not as clean of a solution.
+;; #if (getKeyState("F23", "P")) && (uselayer = 0) ;;you can also use a varibable like so, but I don't.
+
;; Here is a discussion about all this:
;; https://github.com/TaranVH/2nd-keyboard/issues/65
@@ -286,6 +293,7 @@ F1::msgbox, You pressed F1 on your secondary keyboard while inside of Premiere P
;;IDK what you foreign language peoples are gonna have to do!
;;At the very least, you'll have some duplicate keys.
+
#if
;;*******************************************************************************
diff --git a/Intercept/I_do_not_use/FULL_extra_keyboard.ahk b/Intercept/I_do_not_use/FULL_extra_keyboard.ahk
deleted file mode 100644
index 3823e90..0000000
--- a/Intercept/I_do_not_use/FULL_extra_keyboard.ahk
+++ /dev/null
@@ -1,208 +0,0 @@
-#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
-; #Warn ; Enable warnings to assist with detecting common errors.
-SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
-SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
-#SingleInstance force
-
-
-#if (getKeyState("F23", "P"))
-F23::return
-
-;;;;;first row;;;;;
-
-F1::msgbox, you pressed F1 on the extra keyboard
-F2::
-SoundBeep, 900, 400
-tooltip, you pressed F2 AND get a beep sound!
-return
-F3::tooltip, you pressed F3 but do not get a beep.
-F4::
-F5::
-F6::
-F7::
-F9::
-F8::
-F10::
-F11::
-F12::tooltip, you pressed the function key %A_thishotkey% on the extra keyboard
-
-;;;;;next row;;;;;
-
-`::
-1::
-2::
-3::
-4::
-5::
-6::
-7::
-8::
-9::
-0::
--::
-=::
-backspace::tooltip, you pressed %A_thishotkey% on the extra keyboard from the numbers row
-
-;;;;;next row;;;;;
-
-tab::
-q::
-w::
-e::
-r::
-t::
-y::
-u::
-i::
-o::
-p::
-[::
-]::
-\::tooltip, you pressed %A_thishotkey% on the extra keyboard
-
-;;;;;next row;;;;;
-
-capslock::
-a::return
-s::
-d::
-f::
-g::
-h::
-j::
-k::
-l::
-`;::
-'::
-enter::tooltip, you pressed %A_thishotkey% on the extra keyboard
-
-;;;;;next row;;;;;
-
-Lshift::
-z::
-x::
-c::
-v::
-b::
-n::
-m::
-,::
-.::
-/::
-Rshift::tooltip, you pressed %A_thishotkey% on the extra keyboard
-
-;;;;;next row;;;;;
-
-Lctrl::
-Lwin::
-Lalt::
-space::
-Ralt::
-Rwin::
-appskey::
-Rctrl::tooltip, you pressed %A_thishotkey% from the bottom row of keys
-
-;;;;;next area;;;;;
-
-PrintScreen::tooltip, printscreen
-ScrollLock::tooltip, scroll lock
-SC061::tooltip, SC061 is unpredictable
-
-CtrlBreak::tooltip, IDK if CTRL BREAK is even a real key
-pause::tooltip, 'pause' is unpredictable
-Break::tooltip, 'break' is unpredictable
-SC045::msgbox, sc045 is num lock but maybe actually pause/break???
-
-insert::
-home::
-pgup::
-
-delete::
-end::
-pgdn::tooltip, you pressed %A_thishotkey% on the extra keyboard weird keys
-
-up::
-down::
-left::
-right::tooltip, you pressed the %A_thishotkey% directional arrow on the extra keyboard
-
-;;;;;next area;;;;;
-
-numpad0::
-numpad1::
-numpad2::
-numpad3::
-numpad4::
-numpad5::
-numpad6::
-numpad7::
-numpad8::
-numpad9::tooltip, you pressed %A_thishotkey% from the extra keyboard's numpad numbers
-
-numlock::
-numpadDiv::
-numpadMult::
-
-numpadSub::
-numpadAdd::
-numpadEnter::
-
-numpadDot::tooltip, you pressed %A_thishotkey% on the extra keyboard's numpad
-
-;;;;;some scan codes;;;;;
-
-;These are modifier keys that I prefer to keep as modifier keys
-;SC060::msgbox sc060 is L SHIFT
-;SC061::msgbox sc061 is R SHIFT
-;SC062::msgbox sc062 is L CTRLA
-;SC063::msgbox sc063 is L WIN
-;SC064::msgbox sc064 is L ALT
-;SC065::msgbox sc065 is R ALT
-;SC066::msgbox sc066 is R WIN
-;SC067::msgbox sc067 is R CTRL
-
-SC07E::msgbox, sc7E was pressed.
-SC07F::msgbox, sc7F is as high as I could go, after 80 they become unusable for some reason.
-SC080::msgbox, sc080... this does not register.
-SC0FF::msgbox, sc0FF ...this does not register.
-
-return
-#if
-;END of F23 based keyboard
-;-------------------------
-
-
-;BEGINNING OF 3RD KEYBOARD - USB NUMPAD
-#if (getKeyState("F22", "P"))
-F22::return
-
-numpad0::
-numpad1::
-numpad2::
-numpad3::
-numpad4::
-numpad5::
-numpad6::
-numpad7::
-numpad8::
-numpad9::tooltip, you pressed %A_thishotkey% from the 3RD keyboard!
-
-numlock::
-numpadDiv::
-numpadMult::
-
-numpadSub::
-numpadAdd::
-numpadEnter::
-
-numpadDot::tooltip, you pressed %A_thishotkey% from the 3RD keyboard! YEAAAH!
-
-
-#if
-;End of F22 based 3rd keyboard
-
-;And then you can have a 4th keyboard and so on and so FOURTH!
-;If you use all the function keys from F24 to F13, you can start using weird unassigned scancodes, or virtual keys!
-;if you run out of those, you can maybe start doubling up keys! Wrap each on in TWO layers of other keys!
-;If you run out of THAT, then you're absolutely crazy and your whole room would be filled with keyboards.
-
diff --git a/Intercept/README.md b/Intercept/README.md
index fe20902..5d9d990 100644
--- a/Intercept/README.md
+++ b/Intercept/README.md
@@ -33,7 +33,7 @@ install-interception.exe /install
### USING INTERCEPT.EXE -- (This is different from intercepTION!)
- Download Kamaz's intercept.exe zip from here:
- http://octopup.org/img/code/interception/intercept.zip
- (Let me know if this file ever goes offline, I'll rehost it.)
+ (If it's no longer available from that location, I've already rehosted it in this folder.)
- Unzip intercept.zip to some location on your computer.
- Plug in your second keyboard and ensure that it is working normally.
- Double click on intercept.exe. It will open a command prompt thingy.
@@ -53,7 +53,7 @@ install-interception.exe /install
- Press S to save the filter, or C to cancel if you made a mistake.
- This has the effect of basically "wrapping" the keystroke inside of another keystroke.
- Now repeat the above steps, but using the keys W, E, and R.
-
+- If you make a mistake, you can always just open the .ini file in a text editor and delete any bad entries.
### CREATING THE AUTOHOTKEY SCRIPT
@@ -84,7 +84,7 @@ r::SoundBeep, 1000, 500
- Open a blank text file and type "QWERTY" using your primary keyboard in it to ensure that it works.
- Now, type Q, W, E, or R on your secondary keyboard. Instead of text, you should recieve message boxes, tooltips, or a beep.
- Now that you have that working, you can restart intercept.exe, and (A)dd all the remaining keys, using the method described above.
-- HOWEVER, that will be very slow. So instead, you can download and use Taran's files, "keyremap.ini" and "fancy extra keyboards.ahk" and customize them to your own computer.
+- HOWEVER, that will be very slow. So instead, you can download and use Taran's files, "keyremap.ini" and "FULL_extra_keyboard.ahk" and customize them to your own computer.
- If you use Taran's keyremap.ini, be sure to "find and replace" all instances of this line:
@@ -108,7 +108,6 @@ F23::return
-
### ADDITIONAL RECOURCES:
> Kamaz's original post:
diff --git a/Intercept/I_do_not_use/baby's_first_extra_keyboard.ahk b/Intercept/baby's_first_extra_keyboard.ahk
similarity index 52%
rename from Intercept/I_do_not_use/baby's_first_extra_keyboard.ahk
rename to Intercept/baby's_first_extra_keyboard.ahk
index 45e2c88..c9727c0 100644
--- a/Intercept/I_do_not_use/baby's_first_extra_keyboard.ahk
+++ b/Intercept/baby's_first_extra_keyboard.ahk
@@ -5,8 +5,17 @@ SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance force
-; If this is your first time using AutoHotkey, you must take this tutorial:
-; https://autohotkey.com/docs/Tutorial.htm
+
+;________________________________________________________________________________________
+;
+; 2ND KEYBOARD USING INTERCEPTION AND INTERCEPT.exe (Logitech K120)
+;________________________________________________________________________________________
+
+; Please watch https://www.youtube.com/watch?v=y3e_ri-vOIo for a comprehensive tutorial.
+;________________________________________________________________________________________
+;
+; The full script is FULL_extra_keyboard.ahk , but please try this script first, as it is
+; an important part of the tutorial.
#if (getKeyState("F12", "P"))
F12::return
diff --git a/Intercept/intercept.zip b/Intercept/intercept.zip
new file mode 100644
index 0000000..14bab38
Binary files /dev/null and b/Intercept/intercept.zip differ
diff --git a/README.md b/README.md
index b63ec65..2972915 100644
--- a/README.md
+++ b/README.md
@@ -33,10 +33,8 @@ My most used, most useful, simplest script is this one: https://www.youtube.com/
-----
NOTE:
-By the time you need to add a 2nd keyboard, you should already be fairly familiar with how AutoHotKey works. You should also have already used up all your function keys, and macro keys (if your main keyboard has them.)
-You do not really need to add a 2nd keyboard until you've already used up all of the macro keys on your normal keyboard.
-You can also use up all the function keys, using AutoHotkey. Most programs don't really use them for anything.
-
+By the time you need to add a 2nd keyboard, you should already be fairly familiar with how AutoHotKey works. You should also have already assigned commands to all your function keys, and macro keys (if your main keyboard has them.)
+Don't just add a 2nd keyboard because you think it's cool! Make sure you actually need it.
-----
As of August 2018, I've changed the root directory from this:
diff --git a/Razer/2nd_keyboard_if_using_Razer.ahk b/Razer/2nd_keyboard_if_using_Razer.ahk
new file mode 100644
index 0000000..93a0ec0
--- /dev/null
+++ b/Razer/2nd_keyboard_if_using_Razer.ahk
@@ -0,0 +1,202 @@
+#NoEnv
+SendMode Input
+#InstallKeybdHook
+#InstallMouseHook
+#UseHook On
+
+#SingleInstance force ;only one instance may run at a time!
+#MaxHotkeysPerInterval 2000
+#WinActivateForce ;https://autohotkey.com/docs/commands/_WinActivateForce.htm ;this may prevent taskbar flashing.
+detecthiddenwindows, on
+
+;;--------------------------------------------------------------------
+;;;;;;SCRIPT THAT RECIEVES MESSAGES AND TURNS THEM INTO FUNCTIONS:;;;;
+;;--------------------------------------------------------------------
+
+;;Discussion:https://autohotkey.com/board/topic/18361-anyway-to-pass-params-to-script-while-running/
+
+;;Where I got the script from:
+; https://autohotkey.com/docs/commands/OnMessage.htm
+
+#ifwinactive
+OnMessage(0x4a, "Receive_WM_COPYDATA") ; 0x4a is WM_COPYDATA
+return
+
+Receive_WM_COPYDATA(wParam, lParam)
+{
+StringAddress := NumGet(lParam + 2*A_PtrSize) ; Retrieves the CopyDataStruct's lpData member.
+CopyOfData := StrGet(StringAddress) ; Copy the string out of the structure.
+
+;msgbox, %A_ScriptName%`nReceived the following string:`n`n%CopyOfData%
+
+Var = %CopyOfData%
+StringTrimRight, Var, Var, 4 ;Removes .ahk from the string
+;;OutputVar := SubStr(String, 1, InStr(string, ".") - 1) ;<-- This grabs whatever text is to the left of a period. This is just an alternative way of removing ".ahk" ...Whatever.
+
+;AHK does not have a SWITCH case. So this is what we do instead:
+; https://jacksautohotkeyblog.wordpress.com/2018/11/02/use-the-ternary-operator-to-create-conditional-case-statements-or-switches-autohotkey-tip/#more-40047
+DoSomething := Var = "ESC" ? function("Escape!")
+ : Var = "F1" ? function("F1")
+ : Var = "F2" ? function("F2")
+ : Var = "F3" ? function("F3")
+ : Var = "F4" ? function("F4")
+ : Var = "F5" ? function("F5")
+ : Var = "F6" ? function("F6")
+ : Var = "F7" ? function("F7")
+ : Var = "F8" ? function("F8")
+ : Var = "F9" ? function("F9")
+ : Var = "F10" ? function("F10")
+ : Var = "F11" ? function("F11")
+ : Var = "F12" ? function("F12")
+ : Var = "tilde" ? function("tilde or whatever")
+ : Var = "1" ? function("1")
+ : Var = "2" ? function("2")
+ : Var = "3" ? function("3")
+ : Var = "4" ? function("4")
+ : Var = "5" ? function("5")
+ : Var = "6" ? function("6")
+ : Var = "7" ? function("7")
+ : Var = "8" ? function("8")
+ : Var = "9" ? function("9")
+ : Var = "0" ? function("0")
+ : Var = "minus" ? function("_-")
+ : Var = "plus" ? function("+=")
+ : Var = "backspace" ? function("backspaaaaace")
+ : Var = "tab" ? function("2")
+ : Var = "q" ? function("q")
+ : Var = "w" ? function("w")
+ : Var = "e" ? function("e")
+ : Var = "r" ? function("r")
+ : Var = "t" ? function("t")
+ : Var = "y" ? function("y")
+ : Var = "u" ? function("u")
+ : Var = "i" ? function("i")
+ : Var = "o" ? function("o")
+ : Var = "p" ? function("p")
+ : Var = "leftbracket" ? function("]")
+ : Var = "rightbracket" ?function("[")
+ : Var = "backslash" ? function("backslash")
+ : Var = "capslock" ? function("caps")
+ : Var = "a" ? function("aaaay")
+ : Var = "s" ? function("s")
+ : Var = "d" ? function("d")
+ : Var = "f" ? function("f")
+ : Var = "g" ? function("g")
+ : Var = "h" ? function("h")
+ : Var = "j" ? function("j")
+
+;;Our expression gets too long if we continue.
+;; https://autohotkey.com/board/topic/70201-ahk-110200-u32-error-expression-too-long/
+;;So I had to divide this into two blocks. Lol.
+DoSomethingElse := Var = "k" ? function("k")
+ : Var = "l" ? function("l")
+ : Var = "semicolon" ? function(";")
+ : Var = "singlequote" ? function("'")
+ : Var = "enter" ? function("enter")
+ : Var = "LShift" ? function("Left Shift")
+ : Var = "z" ? function("z")
+ : Var = "x" ? function("x")
+ : Var = "c" ? function("c")
+ : Var = "v" ? function("v")
+ : Var = "b" ? function("b")
+ : Var = "n" ? function("n")
+ : Var = "m" ? function("m")
+ : Var = "comma" ? function(",")
+ : Var = "period" ? function(".")
+ : Var = "forwardslash" ?function("/")
+ : Var = "RShift" ? function("RShift")
+ : Var = "RCtrl" ? function("Rctrl")
+ : Var = "RWin" ? function("Rwin")
+ : Var = "RAlt" ? function("Ralt")
+ : Var = "space" ? function("le space")
+ : Var = "Lalt" ? function("LAlt")
+ : Var = "LWin" ? function("LWin")
+ : Var = "appskey" ? function("appskey can be annoying")
+ : Var = "RCtrl" ? function("RCtrl")
+ : Var = "printscreen" ? function("PrtScn")
+ : Var = "scrollLock" ? function("more like LOL lock")
+ : Var = "pauseBreak" ? function("the worst key")
+ : Var = "insert" ? function("insert")
+ : Var = "delete" ? function("delete")
+ : Var = "home" ? function("home")
+ : Var = "end" ? function("end")
+ : Var = "pageup" ? function("pgup")
+ : Var = "pagedown" ? function("pgdn")
+ : Var = "up" ? function("up")
+ : Var = "down" ? function("down")
+ : Var = "left" ? function("port")
+ : Var = "right" ? function("starboard")
+ : Var = "NumLock" ? function("Numlock is awful")
+ : Var = "numpaddDiv" ? function("numpadDiv")
+ : Var = "numpadMult" ? function("numpadMult")
+ : Var = "numpadSub" ? function("numpad-")
+ : Var = "numpadAdd" ? function("numpad+")
+ : Var = "numpadEnter" ? function("numpadEnter")
+ : Var = "numpadDot" ? function("numpad dot or delete or whatever")
+ : Var = "numpad0" ? function("numpad0")
+ : Var = "numpad1" ? function("numpad1")
+ : Var = "numpad2" ? function("numpad2")
+ : Var = "numpad3" ? function("numpad3")
+ : Var = "numpad4" ? function("numpad4")
+ : Var = "numpad5" ? function("numpad5")
+ : Var = "numpad6" ? function("numpad6")
+ : Var = "numpad7" ? function("numpad7")
+ : Var = "numpad8" ? function("numpad8")
+ : Var = "numpad9" ? whateverrr("this happens when you press numpad9","and this too")
+ ;;: Else nope(Var) ;This won't work properly now that it's split in half.
+
+
+;Now we are at the end.
+return true ; Returning 1 (true) is the traditional way to acknowledge this message.
+}
+
+
+
+function(par){
+msgbox, Horray %par%
+}
+
+whateverrr(stuff, things){
+msgbox, %stuff%`n%things%
+
+}
+
+nope(var)
+{
+msgbox, you have not assigned `n%var%`nto anything
+}
+
+
+^+s::
+send ^s
+reload
+return
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Razer/razer_direct_launch/1.ahk b/Razer/razer_direct_launch/1.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/1.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/2.ahk b/Razer/razer_direct_launch/2.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/2.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/3.ahk b/Razer/razer_direct_launch/3.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/3.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/4.ahk b/Razer/razer_direct_launch/4.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/4.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/5.ahk b/Razer/razer_direct_launch/5.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/5.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/6.ahk b/Razer/razer_direct_launch/6.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/6.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/7.ahk b/Razer/razer_direct_launch/7.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/7.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/8.ahk b/Razer/razer_direct_launch/8.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/8.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/9.ahk b/Razer/razer_direct_launch/9.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/9.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/A.ahk b/Razer/razer_direct_launch/A.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/A.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/B.ahk b/Razer/razer_direct_launch/B.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/B.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/C.ahk b/Razer/razer_direct_launch/C.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/C.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/D.ahk b/Razer/razer_direct_launch/D.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/D.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/DELETE.ahk b/Razer/razer_direct_launch/DELETE.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/DELETE.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/DOWN.ahk b/Razer/razer_direct_launch/DOWN.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/DOWN.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/E.ahk b/Razer/razer_direct_launch/E.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/E.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/ESC.ahk b/Razer/razer_direct_launch/ESC.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/ESC.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F.ahk b/Razer/razer_direct_launch/F.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F1.ahk b/Razer/razer_direct_launch/F1.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F1.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F10.ahk b/Razer/razer_direct_launch/F10.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F10.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F11.ahk b/Razer/razer_direct_launch/F11.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F11.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F12.ahk b/Razer/razer_direct_launch/F12.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F12.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F2.ahk b/Razer/razer_direct_launch/F2.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F2.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F3.ahk b/Razer/razer_direct_launch/F3.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F3.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F4.ahk b/Razer/razer_direct_launch/F4.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F4.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F5.ahk b/Razer/razer_direct_launch/F5.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F5.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F6.ahk b/Razer/razer_direct_launch/F6.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F6.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F7.ahk b/Razer/razer_direct_launch/F7.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F7.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F8.ahk b/Razer/razer_direct_launch/F8.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F8.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/F9.ahk b/Razer/razer_direct_launch/F9.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/F9.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/G.ahk b/Razer/razer_direct_launch/G.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/G.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/H.ahk b/Razer/razer_direct_launch/H.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/H.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/HOME.ahk b/Razer/razer_direct_launch/HOME.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/HOME.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/I.ahk b/Razer/razer_direct_launch/I.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/I.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/INSERT.ahk b/Razer/razer_direct_launch/INSERT.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/INSERT.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/J.ahk b/Razer/razer_direct_launch/J.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/J.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/K.ahk b/Razer/razer_direct_launch/K.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/K.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/L.ahk b/Razer/razer_direct_launch/L.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/L.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/LAlt.ahk b/Razer/razer_direct_launch/LAlt.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/LAlt.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/LEFT.ahk b/Razer/razer_direct_launch/LEFT.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/LEFT.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/LShift.ahk b/Razer/razer_direct_launch/LShift.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/LShift.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/LWin.ahk b/Razer/razer_direct_launch/LWin.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/LWin.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/Lctrl.ahk b/Razer/razer_direct_launch/Lctrl.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/Lctrl.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/M.ahk b/Razer/razer_direct_launch/M.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/M.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/N.ahk b/Razer/razer_direct_launch/N.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/N.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/O.ahk b/Razer/razer_direct_launch/O.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/O.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/P.ahk b/Razer/razer_direct_launch/P.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/P.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/Q.ahk b/Razer/razer_direct_launch/Q.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/Q.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/R.ahk b/Razer/razer_direct_launch/R.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/R.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/RIGHT.ahk b/Razer/razer_direct_launch/RIGHT.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/RIGHT.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/S.ahk b/Razer/razer_direct_launch/S.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/S.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/T.ahk b/Razer/razer_direct_launch/T.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/T.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/U.ahk b/Razer/razer_direct_launch/U.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/U.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/V.ahk b/Razer/razer_direct_launch/V.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/V.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/W.ahk b/Razer/razer_direct_launch/W.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/W.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/X.ahk b/Razer/razer_direct_launch/X.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/X.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/Y.ahk b/Razer/razer_direct_launch/Y.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/Y.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/Z.ahk b/Razer/razer_direct_launch/Z.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/Z.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/_REDIRECTOR_RAZER.ahk b/Razer/razer_direct_launch/_REDIRECTOR_RAZER.ahk
new file mode 100644
index 0000000..6dc0c10
--- /dev/null
+++ b/Razer/razer_direct_launch/_REDIRECTOR_RAZER.ahk
@@ -0,0 +1,63 @@
+#NoEnv
+;; The following two lines have already been run, in the original script (like Q.ahk) which #includes this one.
+;SetWorkingDir %A_ScriptDir%
+;#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
+
+;; _REDIRECTOR_RAZER.ahk must always be in the same folder as all the smaller scripts that it is servicing.
+
+StringToSend = %A_Scriptname%
+;; The above line is literally just writing the original script's filename to a variable. So, if it was Q.ahk that was launched, %StringToSend will be "Q.ahk"
+
+result := Send_WM_COPYDATA(StringToSend)
+;; The above line is what actually calls the Send_WM_COPYDATA function, which is defined below. Yeah. You can define functions even after an "Exitapp" command.
+
+;; At this point, we are hoping to recieve "true" as our result. If it fails, we will recieve "fail".
+
+if (result = 0)
+ wasIgnored()
+
+if (result = "fail")
+ failtastic(stringtosend,result) ;I want to have as little code in these small scripts as possible. failtastic() is therefore defined inside of the _REDIRECTOR_RAZER.ahk script.
+
+Exitapp
+;; We are no longer in the autoexecute section of the script.
+
+
+Send_WM_COPYDATA(ByRef StringToSend, ByRef TargetScriptTitle := "C:\AHK\2nd-keyboard\Razer\2nd_keyboard_if_using_Razer.ahk ahk_class AutoHotkey") ; ByRef saves a little memory in this case.
+; This function sends the specified string to the specified window and returns the reply.
+; The reply is 1 if the target window processed the message, or 0 if it ignored it.
+{
+ VarSetCapacity(CopyDataStruct, 3*A_PtrSize, 0) ; Set up the structure's memory area.
+ ; First set the structure's cbData member to the size of the string, including its zero terminator:
+ SizeInBytes := (StrLen(StringToSend) + 1) * (A_IsUnicode ? 2 : 1)
+ NumPut(SizeInBytes, CopyDataStruct, A_PtrSize) ; OS requires that this be done.
+ NumPut(&StringToSend, CopyDataStruct, 2*A_PtrSize) ; Set lpData to point to the string itself.
+ Prev_DetectHiddenWindows := A_DetectHiddenWindows
+ Prev_TitleMatchMode := A_TitleMatchMode
+ DetectHiddenWindows On
+ SetTitleMatchMode 2
+ ;tooltip, %errorlevel%
+ TimeOutTime = 6000 ; Optional. Milliseconds to wait for response from 2nd_keyboard_if_using_Razer.ahk. Default is 5000
+ ; Must use SendMessage not PostMessage.
+ SendMessage, 0x4a, 0, &CopyDataStruct,, %TargetScriptTitle%,,,, %TimeOutTime% ; 0x4a is WM_COPYDATA.
+ ;tooltip, %errorlevel%
+ ;msgbox, errorlevel is %errorlevel%
+ DetectHiddenWindows %Prev_DetectHiddenWindows% ; Restore original setting for the caller.
+ SetTitleMatchMode %Prev_TitleMatchMode% ; Same.
+ return ErrorLevel ; Return SendMessage's reply back to our caller.
+}
+
+;; This is what happens when calling a function fails to work:
+failtastic(stringtosend,result){
+SoundBeep, 350, 200
+msgbox, Tried to send `n%stringToSend%`nbut the result was:`n`n%result%`n`nIs the receiving script not running?`n`nAlternatively`, perhaps it was already running another script`, so it ignored THIS one`, which is EXACTLY what is supposed to happen. `n`nAlternatively`, perhaps it timed out`, because the script took longer than 6 seconds to execute`,possibly because you were looking at a messagebox.`n`nAlternatively`, something else may have gone wrong that I have not encountered. You'll have to figure it out. Sorry!`n`nOf course`, if you don't like this message box`, you can always just delete it. It is located inside of REDIRECTOR_RAZER.ahk
+}
+
+;; This is what happens if 2nd_keyboard_if_using_Razer.ahk exists, but ignores the request.
+wasIgnored(){
+tooltip, I think you already have a function running`,`nso I'm not gonna run another one simultaneously!
+SoundBeep, 750, 500
+tooltip,
+ExitApp
+
+}
diff --git a/Razer/razer_direct_launch/backslash.ahk b/Razer/razer_direct_launch/backslash.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/backslash.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/capslock.ahk b/Razer/razer_direct_launch/capslock.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/capslock.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/forwardslash.ahk b/Razer/razer_direct_launch/forwardslash.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/forwardslash.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/minus.ahk b/Razer/razer_direct_launch/minus.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/minus.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numlock.ahk b/Razer/razer_direct_launch/numlock.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numlock.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad0.ahk b/Razer/razer_direct_launch/numpad0.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad0.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad1.ahk b/Razer/razer_direct_launch/numpad1.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad1.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad2.ahk b/Razer/razer_direct_launch/numpad2.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad2.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad3.ahk b/Razer/razer_direct_launch/numpad3.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad3.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad4.ahk b/Razer/razer_direct_launch/numpad4.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad4.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad5.ahk b/Razer/razer_direct_launch/numpad5.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad5.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad6.ahk b/Razer/razer_direct_launch/numpad6.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad6.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad7.ahk b/Razer/razer_direct_launch/numpad7.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad7.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad8.ahk b/Razer/razer_direct_launch/numpad8.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad8.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpad9.ahk b/Razer/razer_direct_launch/numpad9.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpad9.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadAdd.ahk b/Razer/razer_direct_launch/numpadAdd.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadAdd.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadDiv.ahk b/Razer/razer_direct_launch/numpadDiv.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadDiv.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadDot.ahk b/Razer/razer_direct_launch/numpadDot.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadDot.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadEnter.ahk b/Razer/razer_direct_launch/numpadEnter.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadEnter.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadMinus.ahk b/Razer/razer_direct_launch/numpadMinus.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadMinus.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadMult.ahk b/Razer/razer_direct_launch/numpadMult.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadMult.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/numpadSub.ahk b/Razer/razer_direct_launch/numpadSub.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/numpadSub.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/pagedown.ahk b/Razer/razer_direct_launch/pagedown.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/pagedown.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/pageup.ahk b/Razer/razer_direct_launch/pageup.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/pageup.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/pauseBreak.ahk b/Razer/razer_direct_launch/pauseBreak.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/pauseBreak.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/plus.ahk b/Razer/razer_direct_launch/plus.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/plus.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/printscreen.ahk b/Razer/razer_direct_launch/printscreen.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/printscreen.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/rightbracket.ahk b/Razer/razer_direct_launch/rightbracket.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/rightbracket.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/scrollLock.ahk b/Razer/razer_direct_launch/scrollLock.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/scrollLock.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/space.ahk b/Razer/razer_direct_launch/space.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/space.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/tab.ahk b/Razer/razer_direct_launch/tab.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/tab.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/tilde.ahk b/Razer/razer_direct_launch/tilde.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/tilde.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file
diff --git a/Razer/razer_direct_launch/up.ahk b/Razer/razer_direct_launch/up.ahk
new file mode 100644
index 0000000..d33e625
--- /dev/null
+++ b/Razer/razer_direct_launch/up.ahk
@@ -0,0 +1,2 @@
+SetWorkingDir %A_ScriptDir%
+#Include %A_ScriptDir%/_REDIRECTOR_RAZER.ahk
\ No newline at end of file