Warning, file /frameworks/syntax-highlighting/autotests/html/highlight.ahk.dark.html was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 <!DOCTYPE html> 0002 <html><head> 0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 0004 <title>highlight.ahk</title> 0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (AutoHotKey) - Theme (Breeze Dark)"/> 0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre> 0007 <span style="color:#7f8c8d;">^j</span><span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; hotkey label</span> 0008 <span style="color:#3f8058;">::</span>ftw<span style="color:#3f8058;">::</span>Free the whales <span style="color:#7a7c7d;">; hotstring label abbreviation</span> 0009 <span style="color:#3f8058;">::</span>btw<span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; hotstring label action</span> 0010 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You typed btw. 0011 <span style="color:#7f8c8d;">Run</span><span style="color:#3f8058;">,</span> notepad.exe <span style="color:#7a7c7d;">; Run Notepad when you press CTRL+N.</span> 0012 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> Wow<span style="color:#7f8c8d;">!</span> 0013 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> There are 0014 <span style="color:#7f8c8d;">Run</span><span style="color:#3f8058;">,</span> notepad.exe 0015 <span style="color:#7f8c8d;">WinActivate</span><span style="color:#3f8058;">,</span> Untitled - Notepad 0016 <span style="color:#7f8c8d;">WinWaitActive</span><span style="color:#3f8058;">,</span> Untitled - Notepad 0017 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> 7 lines<span style="color:#3f8058;">{</span>!<span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">Enter</span><span style="color:#3f8058;">}</span> 0018 <span style="color:#7f8c8d;">SendInput</span><span style="color:#3f8058;">,</span> inside the CTRL<span style="color:#3f8058;">{</span>+<span style="color:#3f8058;">}</span>J hotkey. 0019 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0020 0021 <span style="color:#7f8c8d;">Numpad0 & Numpad1</span><span style="color:#3f8058;">::</span> 0022 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You pressed Numpad1 while holding down Numpad0. 0023 <span style="color:#7f8c8d;">Run</span><span style="color:#3f8058;">,</span> notepad.exe 0024 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0025 0026 <span style="color:#7a7c7d;">; Untitled - Notepad</span> 0027 <span style="color:#27aeae;font-weight:bold;">#IfWinActive</span> Untitled - Notepad 0028 <span style="color:#7f8c8d;">!q</span><span style="color:#3f8058;">::</span> 0029 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You pressed ALT<span style="color:#7f8c8d;">+Q</span> in Notepad. 0030 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0031 0032 <span style="color:#7a7c7d;">; Any window that isn't Untitled - Notepad</span> 0033 <span style="color:#27aeae;font-weight:bold;">#IfWinActive</span> 0034 <span style="color:#7f8c8d;">!q</span><span style="color:#3f8058;">::</span> 0035 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You pressed ALT<span style="color:#7f8c8d;">+Q</span> in any window. 0036 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0037 0038 <span style="color:#7a7c7d;">; Retrieve the ID/HWND of the active window</span> 0039 <span style="font-weight:bold;">id</span> <span style="color:#3f8058;">:=</span> <span style="color:#8e44ad;">WinExist</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"A"</span><span style="color:#3f8058;">)</span> 0040 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="font-weight:bold;">id</span> 0041 0042 <span style="color:#7a7c7d;">; Press Win+↑ to maximize the active window</span> 0043 <span style="color:#7f8c8d;">#Up</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">WinMaximize</span><span style="color:#3f8058;">,</span> A 0044 0045 <span style="color:#7f8c8d;">#i</span><span style="color:#3f8058;">::</span> 0046 <span style="color:#7f8c8d;">Run</span><span style="color:#3f8058;">,</span> https://www.google.com/ 0047 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0048 0049 <span style="color:#7f8c8d;">^p</span><span style="color:#3f8058;">::</span> 0050 <span style="color:#7f8c8d;">Run</span><span style="color:#3f8058;">,</span> notepad.exe 0051 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0052 0053 <span style="color:#7f8c8d;">~j</span><span style="color:#3f8058;">::</span> 0054 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> ack 0055 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0056 0057 <span style="color:#3f8058;">:*:</span>acheiv<span style="color:#3f8058;">::</span>achiev 0058 <span style="color:#3f8058;">::</span>achievment<span style="color:#3f8058;">::</span>achievement 0059 <span style="color:#3f8058;">::</span>acquaintence<span style="color:#3f8058;">::</span>acquaintance 0060 <span style="color:#3f8058;">:*:</span>adquir<span style="color:#3f8058;">::</span>acquir 0061 <span style="color:#3f8058;">::</span>aquisition<span style="color:#3f8058;">::</span>acquisition 0062 <span style="color:#3f8058;">:*:</span>agravat<span style="color:#3f8058;">::</span>aggravat 0063 <span style="color:#3f8058;">:*:</span>allign<span style="color:#3f8058;">::</span>align 0064 <span style="color:#3f8058;">::</span>ameria<span style="color:#3f8058;">::</span>America 0065 <span style="color:#3f8058;">:*:</span>ftw<span style="color:#3f8058;">::</span>Free the whales <span style="color:#7a7c7d;">; Hotstring modifiers</span> 0066 this_is_a_label: <span style="color:#7a7c7d;">; label</span> 0067 0068 <span style="color:#27aeae;font-weight:bold;">#IfWinActive</span> Untitled - Notepad 0069 <span style="color:#7f8c8d;">#Space</span><span style="color:#3f8058;">::</span> 0070 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You pressed WIN<span style="color:#7f8c8d;">+SPACE</span> in Notepad. 0071 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0072 0073 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl down</span><span style="color:#3f8058;">}</span>c<span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl up</span><span style="color:#3f8058;">}</span> 0074 <span style="color:#7f8c8d;">SendInput</span><span style="color:#3f8058;">,</span> [b]<span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl down</span><span style="color:#3f8058;">}</span>v<span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl up</span><span style="color:#3f8058;">}</span>[/b] 0075 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#7a7c7d;">; This ends the hotkey. The code below this point will not get triggered.</span> 0076 0077 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> This text has been typed<span style="color:#3f8058;">{</span>!<span style="color:#3f8058;">}</span> 0078 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">a</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; WRONG</span> 0079 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">a</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">b</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">c</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; WRONG</span> 0080 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">abc</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; WRONG</span> 0081 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> abc <span style="color:#7a7c7d;">; CORRECT</span> 0082 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#7f8c8d;">^s</span> <span style="color:#7a7c7d;">; Both of these send CTRL+S</span> 0083 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl down</span><span style="color:#3f8058;">}</span>s<span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl up</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; Both of these send CTRL+S</span> 0084 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl down</span><span style="color:#3f8058;">}</span>c<span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Ctrl up</span><span style="color:#3f8058;">}</span> 0085 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">b down</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">b up</span><span style="color:#3f8058;">}</span> 0086 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Tab down</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">Tab up</span><span style="color:#3f8058;">}</span> 0087 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Up down</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; Press down the up-arrow key.</span> 0088 <span style="color:#fdbc4b;font-weight:bold;">Sleep</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">1000</span> <span style="color:#7a7c7d;">; Keep it down for one second.</span> 0089 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Up up</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; Release the up-arrow key.</span> 0090 0091 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> 0092 <span style="color:#3f8058;">(</span> 0093 Line 1 0094 Line 2 0095 Apples are a fruit. 0096 <span style="color:#3f8058;">)</span> 0097 0098 <span style="color:#7f8c8d;">Send</span> <span style="color:#27aeae;">%A_Hour%</span> 0099 <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">37</span> <span style="color:#3f8058;">*</span> <span style="color:#f67400;">12</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">1</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">)</span> 0100 <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">A_Hour</span> <span style="color:#3f8058;">-</span> <span style="color:#f67400;">12</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">)</span> 0101 <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">A_AhkPath</span><span style="color:#3f8058;">,</span> <span style="color:#8e44ad;">InStr</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">A_AhkPath</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"AutoHotkey"</span><span style="color:#3f8058;">))</span> 0102 <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"I'm scripting, awesome!"</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">16</span><span style="color:#3f8058;">)</span> 0103 0104 <span style="color:#7f8c8d;">SetTitleMatchMode</span> RegEx 0105 <span style="color:#7f8c8d;">WinActivate</span> ahk_exe i<span style="color:#3f8058;">)</span><span style="color:#3daee9;">\\</span><span style="color:#da4453;">notepad</span><span style="color:#3daee9;">\.</span><span style="color:#da4453;">exe</span><span style="color:#3f8058;">$</span> <span style="color:#7a7c7d;">; Match the name part of the full path.</span> 0106 <span style="color:#7f8c8d;">WinActivate</span> ahk_exe im<span style="color:#3f8058;">)(*</span><span style="color:#da4453;">BSR_ANYCRLF</span><span style="color:#3f8058;">)</span><span style="color:#da4453;">abc</span><span style="color:#3daee9;">\R</span><span style="color:#da4453;">xyz</span> 0107 <span style="color:#7f8c8d;">WinActivate</span> ahk_exe im<span style="color:#3f8058;">)(*</span><span style="color:#da4453;">BSR_ANY</span><span style="color:#3f8058;">[^</span><span style="color:#da4453;">]</span><span style="color:#3f8058;">]</span><span style="color:#da4453;">CRLF</span><span style="color:#3f8058;">)</span><span style="color:#da4453;">abc</span><span style="color:#3daee9;">\R</span><span style="color:#da4453;">xyz</span> 0108 0109 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">MyVar</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">5</span><span style="color:#3f8058;">)</span> 0110 <span style="color:#3f8058;">{</span> 0111 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> MyVar equals <span style="color:#27aeae;">%MyVar%</span><span style="color:#7f8c8d;">!!</span> 0112 <span style="color:#fdbc4b;font-weight:bold;">ExitApp</span> 0113 <span style="color:#3f8058;">}</span> 0114 0115 MyVar <span style="color:#3f8058;">=</span> Text 0116 MyVar <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">%MyVar2%</span> 0117 MyVar <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">%MyVar2%</span> some text <span style="color:#27aeae;">%MyVar3%</span>. 0118 MyVar <span style="color:#3f8058;">:=</span> <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"I'm scripting, awesome!"</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">16</span><span style="color:#3f8058;">)</span> 0119 MyVar <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Text"</span> 0120 MyVar <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">MyVar2</span> 0121 MyVar <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">6</span> <span style="color:#3f8058;">+</span> <span style="color:#f67400;">8</span> <span style="color:#3f8058;">/</span> <span style="color:#f67400;">3</span> <span style="color:#3f8058;">*</span> <span style="color:#f67400;">2</span> <span style="color:#3f8058;">-</span> <span style="color:#8e44ad;">Sqrt</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">9</span><span style="color:#3f8058;">)</span> 0122 MyVar <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"The value of 5 + "</span> <span style="color:#27aeae;">MyVar2</span> <span style="color:#f44f4f;">" is: "</span> <span style="color:#f67400;">5</span> <span style="color:#3f8058;">+</span> <span style="color:#27aeae;">MyVar2</span> 0123 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">Var1</span> <span style="color:#3f8058;">!=</span> <span style="color:#27aeae;">Var2</span><span style="color:#3f8058;">)</span> 0124 Var1 <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">Var2</span> <span style="color:#3f8058;">+</span> <span style="color:#f67400;">100</span> 0125 0126 <span style="color:#7a7c7d;">; Some examples showing when to use percents and when not:</span> 0127 Var <span style="color:#3f8058;">=</span> Text <span style="color:#7a7c7d;">; Assign some text to a variable (legacy).</span> 0128 <span style="font-weight:bold;">Number</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">6</span> <span style="color:#7a7c7d;">; Assign a number to a variable (expression).</span> 0129 Var2 <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">%Var%</span> <span style="color:#7a7c7d;">; Assign a variable to another (legacy).</span> 0130 Var3 <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">Var</span> <span style="color:#7a7c7d;">; Assign a variable to another (expression).</span> 0131 Var4 <span style="color:#3f8058;">.=</span> Var <span style="color:#7a7c7d;">; Append a variable to the end of another (expression).</span> 0132 Var5 <span style="color:#3f8058;">+=</span> <span style="color:#27aeae;">Var</span> <span style="color:#7a7c7d;">; Add the value of a variable to another (expression).</span> 0133 Var5 <span style="color:#3f8058;">-=</span> <span style="color:#27aeae;">Var</span> <span style="color:#7a7c7d;">; Subtract the value of a variable from another (expression).</span> 0134 Var6 <span style="color:#3f8058;">:=</span> <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">Var</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">2</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Variable inside a function. This is always an expression.</span> 0135 Var7 <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">%Var%</span> Text <span style="color:#7a7c7d;">; Assigns a variable to another with some extra text (legacy).</span> 0136 Var8 <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">Var</span> <span style="color:#f44f4f;">" Text"</span> <span style="color:#7a7c7d;">; Assigns a variable to another with some extra text (expression).</span> 0137 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%Var%</span> <span style="color:#7a7c7d;">; Variable inside a command.</span> 0138 <span style="color:#7f8c8d;">StringSplit</span><span style="color:#3f8058;">,</span> Var<span style="color:#3f8058;">,</span> Var<span style="color:#3f8058;">,</span> x <span style="color:#7a7c7d;">; Variable inside a command that uses InputVar and OutputVar.</span> 0139 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">Number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">6</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Whenever an IF has parentheses, it'll be an expression. So no percent signs.</span> 0140 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">Var</span> <span style="color:#3f8058;">!=</span> <span style="font-weight:bold;">Number</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Whenever an IF has parentheses, it'll be an expression. So no percent signs.</span> 0141 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="font-weight:bold;">Number</span> <span style="color:#3f8058;">=</span> <span style="color:#f67400;">6</span> <span style="color:#7a7c7d;">; Without parentheses, the IF is legacy. However, only variables on the 'right side' need percent signs.</span> 0142 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">Var1</span> <span style="color:#3f8058;"><</span> <span style="color:#27aeae;">%Var2%</span> <span style="color:#7a7c7d;">; Without parentheses, the IF is legacy. However, only variables on the 'right side' need percent signs.</span> 0143 0144 MyObject <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">[</span><span style="color:#f44f4f;">"one"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"two"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"three"</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">17</span><span style="color:#3f8058;">]</span> 0145 Banana <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{</span><span style="color:#f44f4f;">"Color"</span><span style="color:#3f8058;">:</span> <span style="color:#f44f4f;">"Yellow"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"Taste"</span><span style="color:#3f8058;">:</span> <span style="color:#f44f4f;">"Delicious"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"Price"</span><span style="color:#3f8058;">:</span> <span style="color:#f67400;">3</span><span style="color:#3f8058;">}</span> 0146 MyObject <span style="color:#3f8058;">:=</span> <span style="color:#8e44ad;">Array</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"one"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"two"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"three"</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">17</span><span style="color:#3f8058;">)</span> 0147 Banana <span style="color:#3f8058;">:=</span> <span style="color:#8e44ad;">Object</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"Color"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"Yellow"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"Taste"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"Delicious"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"Price"</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">3</span><span style="color:#3f8058;">)</span> 0148 Banana<span style="color:#3f8058;">[</span><span style="color:#f44f4f;">"Pickled"</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">True</span> <span style="color:#7a7c7d;">; This banana has been pickled. Eww.</span> 0149 Banana<span style="color:#3f8058;">.</span>Consistency <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Mushy"</span> 0150 Value <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">Banana</span><span style="color:#3f8058;">[</span><span style="color:#f44f4f;">"Color"</span><span style="color:#3f8058;">]</span> 0151 Value <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">Banana</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">Color</span> 0152 MyObject<span style="color:#3f8058;">[</span><span style="color:#f44f4f;">"NewerKey"</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">3.1415</span> 0153 MyObject<span style="color:#3f8058;">.</span>NewKey <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Shiny"</span> 0154 MyObject<span style="color:#3f8058;">.</span>Push<span style="color:#3f8058;">(</span><span style="color:#27aeae;">Value1</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Value2</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Value3</span><span style="color:#3f8058;">...)</span> 0155 Banana<span style="color:#3f8058;">.</span>Consistency <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">""</span> 0156 RemovedValue <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">MyObject</span><span style="color:#3f8058;">.</span><span style="color:#7f8c8d;">Delete</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">AnyKey</span><span style="color:#3f8058;">)</span> 0157 NumberOfRemovedKeys <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">MyObject</span><span style="color:#3f8058;">.</span><span style="color:#7f8c8d;">Delete</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">FirstKey</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">LastKey</span><span style="color:#3f8058;">)</span> 0158 arr <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">[{}]</span> <span style="color:#7a7c7d;">; Creates an array containing an object.</span> 0159 arr<span style="color:#3f8058;">[</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{}</span> <span style="color:#7a7c7d;">; Creates a second object, implicitly freeing the first object.</span> 0160 arr<span style="color:#3f8058;">.</span>RemoveAt<span style="color:#3f8058;">(</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Removes and frees the second object.</span> 0161 x <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{},</span> y <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{}</span> <span style="color:#7a7c7d;">; Create two objects.</span> 0162 x<span style="color:#3f8058;">.</span>child <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">y</span><span style="color:#3f8058;">,</span> y<span style="color:#3f8058;">.</span>parent <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">x</span> <span style="color:#7a7c7d;">; Create a circular reference.</span> 0163 y<span style="color:#3f8058;">.</span>parent <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">""</span> 0164 x <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">""</span><span style="color:#3f8058;">,</span> y <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">""</span> 0165 table<span style="color:#3f8058;">.</span>base<span style="color:#3f8058;">.</span>__Get<span style="color:#3f8058;">(</span><span style="color:#27aeae;">table</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">)[</span><span style="color:#27aeae;">y</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">content</span> <span style="color:#7a7c7d;">; A</span> 0166 table<span style="color:#3f8058;">.</span>base<span style="color:#3f8058;">.</span>__Set<span style="color:#3f8058;">(</span><span style="color:#27aeae;">table</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">y</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">content</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; B</span> 0167 RemovedValue <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">MyObject</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">RemoveAt</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">Index</span><span style="color:#3f8058;">)</span> 0168 NumberOfRemovedKeys <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">MyObject</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">RemoveAt</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">Index</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Length</span><span style="color:#3f8058;">)</span> 0169 val <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">obj</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">Property</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">42</span> 0170 m1 <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">new</span> <span style="color:#27aeae;">GMem</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">0</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">20</span><span style="color:#3f8058;">)</span> 0171 m2 <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{</span><span style="font-weight:bold;">base</span><span style="color:#3f8058;">:</span> <span style="color:#27aeae;">GMem</span><span style="color:#3f8058;">}.</span><span style="font-weight:bold;">__New</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">0</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">30</span><span style="color:#3f8058;">)</span> 0172 x <span style="color:#3f8058;">?</span> <span style="color:#27aeae;">CallIfTrue</span><span style="color:#3f8058;">()</span> <span style="color:#3f8058;">:</span> <span style="color:#27aeae;">CallIfFalse</span><span style="color:#3f8058;">()</span> 0173 ProductIsAvailable <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Red"</span><span style="color:#3f8058;">)</span> 0174 <span style="color:#3f8058;">?</span> <span style="color:#27aeae;">false</span> <span style="color:#7a7c7d;">; We don't have any red products, so don't bother calling the function.</span> 0175 <span style="color:#3f8058;">:</span> <span style="color:#27aeae;">ProductIsAvailableInColor</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">Product</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;">Color</span><span style="color:#3f8058;">)</span> 0176 MyObject<span style="color:#3f8058;">.</span>Pop<span style="color:#3f8058;">()</span> 0177 <span style="color:#27aeae;">%Var%</span><span style="color:#3f8058;">()</span> 0178 0179 <span style="color:#fdbc4b;font-weight:bold;">Sleep</span> <span style="color:#27aeae;">MillisecondsToWait</span> 0180 <span style="color:#fdbc4b;font-weight:bold;">Sleep</span> <span style="color:#27aeae;">%MillisecondsToWait%</span> 0181 <span style="color:#fdbc4b;font-weight:bold;">Sleep</span> <span style="color:#27aeae;">%</span> <span style="color:#27aeae;">MillisecondsToWait</span> 0182 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f67400;">1</span><span style="color:#3f8058;">+</span><span style="color:#f67400;">1</span> <span style="color:#7a7c7d;">; Shows "2"</span> 0183 <span style="color:#7f8c8d;">MsgBox</span> 1<span style="color:#7f8c8d;">+</span>1 <span style="color:#7a7c7d;">; Shows "1+1"</span> 0184 0185 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f44f4f;">"This is text."</span> 0186 <span style="color:#7f8c8d;">MsgBox</span> This is text. 0187 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span> <span style="color:#27aeae;">A_AhkVersion</span> 0188 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#27aeae;">%A_AhkVersion%</span> 0189 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#27aeae;">%A_AhkVersion%</span> 0190 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f44f4f;">"Hello %A_UserName%."</span> <span style="color:#7a7c7d;">; Shows "%A_UserName%"</span> 0191 <span style="color:#7f8c8d;">MsgBox</span> Hello <span style="color:#27aeae;">%A_UserName%</span>. <span style="color:#7a7c7d;">; Shows your username.</span> 0192 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f44f4f;">"Hello "</span> <span style="color:#3f8058;">.</span> <span style="color:#27aeae;">A_UserName</span> <span style="color:#3f8058;">.</span> <span style="color:#f44f4f;">"."</span> <span style="color:#7a7c7d;">; Shows your username.</span> 0193 MyVar <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"This is text."</span> 0194 MyVar <span style="color:#3f8058;">=</span> This is text. 0195 0196 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">Var1</span> <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">Var2</span><span style="color:#3f8058;">)</span> 0197 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">Var1</span> <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">%Var2%</span> 0198 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">Var1</span> <span style="color:#3f8058;">>=</span> <span style="font-weight:bold;">Low</span> <span style="font-weight:bold;">and</span> <span style="color:#27aeae;">Var1</span> <span style="color:#3f8058;"><=</span> <span style="font-weight:bold;">High</span><span style="color:#3f8058;">)</span> 0199 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">Var1</span> <span style="font-weight:bold;">between</span> <span style="color:#27aeae;">%Low%</span> <span style="font-weight:bold;">and</span> <span style="color:#27aeae;">%High%</span> 0200 0201 <span style="color:#8e44ad;">Format</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"{:L}{:U}{:T}"</span><span style="color:#3f8058;">,</span> <span style="color:#7f8c8d;">input</span><span style="color:#3f8058;">,</span> <span style="color:#7f8c8d;">input</span><span style="color:#3f8058;">,</span> <span style="color:#7f8c8d;">input</span><span style="color:#3f8058;">)</span> 0202 0203 <span style="color:#7f8c8d;">*#up</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MouseMove</span><span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> -10<span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> R <span style="color:#7a7c7d;">; Win+UpArrow hotkey => Move cursor upward</span> 0204 <span style="color:#7f8c8d;">*#Down</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MouseMove</span><span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> 10<span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> R <span style="color:#7a7c7d;">; Win+DownArrow => Move cursor downward</span> 0205 <span style="color:#7f8c8d;">*#Left</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MouseMove</span><span style="color:#3f8058;">,</span> -10<span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> R <span style="color:#7a7c7d;">; Win+LeftArrow => Move cursor to the left</span> 0206 <span style="color:#7f8c8d;">*#Right</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MouseMove</span><span style="color:#3f8058;">,</span> 10<span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> 0<span style="color:#3f8058;">,</span> R <span style="color:#7a7c7d;">; Win+RightArrow => Move cursor to the right</span> 0207 0208 <span style="color:#7f8c8d;">*<#RCtrl</span><span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; LeftWin + RightControl => Left-click (hold down Control/Shift to Control-Click or Shift-Click).</span> 0209 <span style="color:#7f8c8d;">SendEvent</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Blind</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">LButton down</span><span style="color:#3f8058;">}</span> 0210 <span style="color:#7f8c8d;">KeyWait</span> RCtrl <span style="color:#7a7c7d;">; Prevents keyboard auto-repeat from repeating the mouse click.</span> 0211 <span style="color:#7f8c8d;">SendEvent</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Blind</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">LButton up</span><span style="color:#3f8058;">}</span> 0212 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0213 0214 <span style="color:#7f8c8d;">*<#AppsKey</span><span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; LeftWin + AppsKey => Right-click</span> 0215 <span style="color:#7f8c8d;">SendEvent</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Blind</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">RButton down</span><span style="color:#3f8058;">}</span> 0216 <span style="color:#7f8c8d;">KeyWait</span> AppsKey <span style="color:#7a7c7d;">; Prevents keyboard auto-repeat from repeating the mouse click.</span> 0217 <span style="color:#7f8c8d;">SendEvent</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Blind</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">RButton up</span><span style="color:#3f8058;">}</span> 0218 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0219 0220 <span style="color:#27aeae;font-weight:bold;">#Persistent</span> <span style="color:#7a7c7d;">; Keep this script running until the user explicitly exits it.</span> 0221 <span style="color:#fdbc4b;font-weight:bold;">SetTimer</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">WatchPOV</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">5</span> 0222 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0223 0224 WatchPOV: 0225 POV <span style="color:#3f8058;">:=</span> <span style="color:#7f8c8d;">GetKeyState</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"JoyPOV"</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Get position of the POV control.</span> 0226 KeyToHoldDownPrev <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">KeyToHoldDown</span> <span style="color:#7a7c7d;">; Prev now holds the key that was down before (if any).</span> 0227 0228 <span style="color:#7a7c7d;">; Some joysticks might have a smooth/continous POV rather than one in fixed increments.</span> 0229 <span style="color:#7a7c7d;">; To support them all, use a range:</span> 0230 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">POV</span> <span style="color:#3f8058;"><</span> <span style="color:#f67400;">0</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; No angle to report</span> 0231 KeyToHoldDown <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">""</span> 0232 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">POV</span> <span style="color:#3f8058;">></span> <span style="color:#f67400;">31500</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; 315 to 360 degrees: Forward</span> 0233 KeyToHoldDown <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Up"</span> 0234 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">POV</span> <span style="font-weight:bold;">between</span> <span style="color:#f67400;">0</span> <span style="font-weight:bold;">and</span> <span style="color:#f67400;">4500</span> <span style="color:#7a7c7d;">; 0 to 45 degrees: Forward</span> 0235 KeyToHoldDown <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Up"</span> 0236 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">POV</span> <span style="font-weight:bold;">between</span> <span style="color:#f67400;">4501</span> <span style="font-weight:bold;">and</span> <span style="color:#f67400;">13500</span> <span style="color:#7a7c7d;">; 45 to 135 degrees: Right</span> 0237 KeyToHoldDown <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Right"</span> 0238 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">POV</span> <span style="font-weight:bold;">between</span> <span style="color:#f67400;">13501</span> <span style="font-weight:bold;">and</span> <span style="color:#f67400;">22500</span> <span style="color:#7a7c7d;">; 135 to 225 degrees: Down</span> 0239 KeyToHoldDown <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Down"</span> 0240 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#7a7c7d;">; 225 to 315 degrees: Left</span> 0241 KeyToHoldDown <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Left"</span> 0242 0243 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">KeyToHoldDown</span> <span style="color:#3f8058;">=</span> <span style="color:#27aeae;">KeyToHoldDownPrev</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; The correct key is already down (or no key is needed).</span> 0244 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#7a7c7d;">; Do nothing.</span> 0245 0246 <span style="color:#7a7c7d;">; Otherwise, release the previous key and press down the new key:</span> 0247 <span style="color:#7f8c8d;">SetKeyDelay</span> -1 <span style="color:#7a7c7d;">; Avoid delays between keystrokes.</span> 0248 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">KeyToHoldDownPrev</span> <span style="color:#7a7c7d;">; There is a previous key to release.</span> 0249 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">%KeyToHoldDownPrev% up</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; Release it.</span> 0250 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">KeyToHoldDown</span> <span style="color:#7a7c7d;">; There is a key to press down.</span> 0251 <span style="color:#7f8c8d;">Send</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">%KeyToHoldDown% down</span><span style="color:#3f8058;">}</span> <span style="color:#7a7c7d;">; Press it down.</span> 0252 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0253 0254 <span style="color:#7f8c8d;"><^>!m</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MsgBox</span> You pressed AltGr<span style="color:#7f8c8d;">+m</span>. 0255 <span style="color:#7f8c8d;"><^<!m</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MsgBox</span> You pressed LeftControl<span style="color:#7f8c8d;">+LeftAlt+m</span>. 0256 0257 <span style="color:#7f8c8d;">AppsKey</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">ToolTip</span> Press <span style="color:#7f8c8d;"><</span> or <span style="color:#7f8c8d;">></span> to cycle through windows. 0258 <span style="color:#7f8c8d;">AppsKey Up</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">ToolTip</span> 0259 <span style="color:#7f8c8d;">~AppsKey & <</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">Send</span> <span style="color:#7f8c8d;">!+</span><span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Esc</span><span style="color:#3f8058;">}</span> 0260 <span style="color:#7f8c8d;">~AppsKey & ></span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">Send</span> <span style="color:#7f8c8d;">!</span><span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Esc</span><span style="color:#3f8058;">}</span> 0261 0262 <span style="color:#7a7c7d;">; Press AppsKey and Alt in any order, then slash (/).</span> 0263 <span style="color:#27aeae;font-weight:bold;">#if</span> <span style="color:#7f8c8d;">GetKeyState</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"AppsKey"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"P"</span><span style="color:#3f8058;">)</span> 0264 <span style="color:#7f8c8d;">Alt & /</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MsgBox</span> Hotkey activated. 0265 0266 <span style="color:#7a7c7d;">; If the keys are swapped, Alt must be pressed first (use one at a time):</span> 0267 <span style="color:#27aeae;font-weight:bold;">#if</span> <span style="color:#7f8c8d;">GetKeyState</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"Alt"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"P"</span><span style="color:#3f8058;">)</span> 0268 <span style="color:#7f8c8d;">AppsKey & /</span><span style="color:#3f8058;">::</span><span style="color:#7f8c8d;">MsgBox</span> Hotkey activated. 0269 0270 <span style="color:#7a7c7d;">; [ & ] & \::</span> 0271 <span style="color:#27aeae;font-weight:bold;">#if</span> <span style="color:#7f8c8d;">GetKeyState</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"["</span><span style="color:#3f8058;">)</span> && <span style="color:#7f8c8d;">GetKeyState</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"]"</span><span style="color:#3f8058;">)</span> 0272 \::<span style="color:#7f8c8d;">MsgBox</span> 0273 0274 <span style="color:#7a7c7d;">; Ctrl+Shift+O to open containing folder in Explorer.</span> 0275 <span style="color:#7a7c7d;">; Ctrl+Shift+E to open folder with current file selected.</span> 0276 <span style="color:#7a7c7d;">; Supports SciTE and Notepad++.</span> 0277 <span style="color:#7f8c8d;">^+o</span><span style="color:#3f8058;">::</span> 0278 <span style="color:#7f8c8d;">^+e</span><span style="color:#3f8058;">::</span> 0279 editor_open_folder<span style="color:#3f8058;">()</span> <span style="color:#3f8058;">{</span> 0280 <span style="color:#7f8c8d;">WinGetTitle</span><span style="color:#3f8058;">,</span> path<span style="color:#3f8058;">,</span> A 0281 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#8e44ad;">RegExMatch</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">path</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"\*?\K(.*)\\[^\\]+(?= [-*] )"</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">path</span><span style="color:#3f8058;">)</span> 0282 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#8e44ad;">FileExist</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">path</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">&&</span> <span style="color:#27aeae;">A_ThisHotkey</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"^+e"</span><span style="color:#3f8058;">)</span> 0283 <span style="color:#7f8c8d;">Run</span> explorer.exe /select<span style="color:#3daee9;">`,</span>"<span style="color:#27aeae;">%path%</span>" 0284 <span style="color:#fdbc4b;font-weight:bold;">else</span> 0285 <span style="color:#7f8c8d;">Run</span> explorer.exe "<span style="color:#27aeae;">%path1%</span>" 0286 <span style="color:#3f8058;">}</span> 0287 0288 <span style="color:#7f8c8d;">#h</span><span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; Win+H hotkey</span> 0289 <span style="color:#7a7c7d;">; Get the text currently selected. The clipboard is used instead of</span> 0290 <span style="color:#7a7c7d;">; "ControlGet Selected" because it works in a greater variety of editors</span> 0291 <span style="color:#7a7c7d;">; (namely word processors). Save the current clipboard contents to be</span> 0292 <span style="color:#7a7c7d;">; restored later. Although this handles only plain text, it seems better</span> 0293 <span style="color:#7a7c7d;">; than nothing:</span> 0294 <span style="color:#7f8c8d;">AutoTrim</span> Off <span style="color:#7a7c7d;">; Retain any leading and trailing whitespace on the clipboard.</span> 0295 ClipboardOld <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">ClipboardAll</span> 0296 <span style="color:#27aeae;">Clipboard</span> <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">""</span> <span style="color:#7a7c7d;">; Must start off blank for detection to work.</span> 0297 <span style="color:#7f8c8d;">Send</span> <span style="color:#7f8c8d;">^c</span> 0298 <span style="color:#7f8c8d;">ClipWait</span> 1 0299 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">ErrorLevel</span> <span style="color:#7a7c7d;">; ClipWait timed out.</span> 0300 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0301 <span style="color:#7a7c7d;">; Replace CRLF and/or LF with `n for use in a "send-raw" hotstring:</span> 0302 <span style="color:#7a7c7d;">; The same is done for any other characters that might otherwise</span> 0303 <span style="color:#7a7c7d;">; be a problem in raw mode:</span> 0304 <span style="color:#7f8c8d;">StringReplace</span><span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> Clipboard<span style="color:#3f8058;">,</span> <span style="color:#3daee9;">``</span><span style="color:#3f8058;">,</span> <span style="color:#3daee9;">````</span><span style="color:#3f8058;">,</span> All <span style="color:#7a7c7d;">; Do this replacement first to avoid interfering with the others below.</span> 0305 <span style="color:#7f8c8d;">StringReplace</span><span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> <span style="color:#3daee9;">`r`n</span><span style="color:#3f8058;">,</span> <span style="color:#3daee9;">``</span>r<span style="color:#3f8058;">,</span> All <span style="color:#7a7c7d;">; Using `r works better than `n in MS Word, etc.</span> 0306 <span style="color:#7f8c8d;">StringReplace</span><span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> <span style="color:#3daee9;">`n</span><span style="color:#3f8058;">,</span> <span style="color:#3daee9;">``</span>r<span style="color:#3f8058;">,</span> All 0307 <span style="color:#7f8c8d;">StringReplace</span><span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%A_Tab%</span><span style="color:#3f8058;">,</span> <span style="color:#3daee9;">``</span>t<span style="color:#3f8058;">,</span> All 0308 <span style="color:#7f8c8d;">StringReplace</span><span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> Hotstring<span style="color:#3f8058;">,</span> <span style="color:#3daee9;">`;</span><span style="color:#3f8058;">,</span> <span style="color:#3daee9;">```;</span><span style="color:#3f8058;">,</span> All 0309 <span style="color:#27aeae;">Clipboard</span> <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">ClipboardOld</span> <span style="color:#7a7c7d;">; Restore previous contents of clipboard.</span> 0310 <span style="color:#7a7c7d;">; This will move the InputBox's caret to a more friendly position:</span> 0311 <span style="color:#fdbc4b;font-weight:bold;">SetTimer</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">MoveCaret</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">10</span> 0312 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">ErrorLevel</span> <span style="color:#7a7c7d;">; The user pressed Cancel.</span> 0313 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0314 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#8e44ad;">InStr</span><span style="color:#3f8058;">(</span><span style="color:#8e44ad;">Hotstring</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">":R</span><span style="color:#3daee9;">`::</span><span style="color:#f44f4f;">:"</span><span style="color:#3f8058;">)</span> 0315 <span style="color:#3f8058;">{</span> 0316 <span style="color:#7f8c8d;">MsgBox</span> You didn't provide an abbreviation. The hotstring has not been added. 0317 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0318 <span style="color:#3f8058;">}</span> 0319 <span style="color:#7a7c7d;">; Otherwise, add the hotstring and reload the script:</span> 0320 <span style="color:#7f8c8d;">FileAppend</span><span style="color:#3f8058;">,</span> <span style="color:#3daee9;">`n</span><span style="color:#27aeae;">%Hotstring%</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%A_ScriptFullPath%</span> <span style="color:#7a7c7d;">; Put a `n at the beginning in case file lacks a blank line at its end.</span> 0321 <span style="color:#7f8c8d;">Reload</span> 0322 <span style="color:#fdbc4b;font-weight:bold;">Sleep</span> <span style="color:#f67400;">200</span> 0323 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> 4<span style="color:#3f8058;">,,</span> The hotstring just added appears to be improperly formatted. 0324 <span style="color:#fdbc4b;font-weight:bold;">IfMsgBox</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;">Yes</span><span style="color:#3f8058;">,</span> <span style="color:#7f8c8d;">Edit</span> 0325 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0326 0327 MoveCaret: 0328 <span style="color:#fdbc4b;font-weight:bold;">IfWinNotActive</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;">New</span> <span style="color:#8e44ad;">Hotstring</span> 0329 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0330 <span style="color:#7a7c7d;">; Otherwise, move the InputBox's insertion point to where the user will type the abbreviation.</span> 0331 <span style="color:#7f8c8d;">Send</span> <span style="color:#3f8058;">{</span><span style="color:#7f8c8d;">Home</span><span style="color:#3f8058;">}{</span><span style="color:#7f8c8d;">Right 3</span><span style="color:#3f8058;">}</span> 0332 <span style="color:#fdbc4b;font-weight:bold;">SetTimer</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">MoveCaret</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;">Off</span> 0333 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0334 0335 <span style="color:#7a7c7d;">; This example also demonstrates one way to implement case conformity in a script.</span> 0336 <span style="color:#3f8058;">:</span>C<span style="color:#3f8058;">:</span>BTW<span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; Typed in all-caps.</span> 0337 <span style="color:#3f8058;">:</span>C<span style="color:#3f8058;">:</span>Btw<span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; Typed with only the first letter upper-case.</span> 0338 <span style="color:#3f8058;">:</span> <span style="color:#3f8058;">:</span>btw<span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; Typed in any other combination.</span> 0339 case_conform_btw<span style="color:#3f8058;">()</span> <span style="color:#3f8058;">{</span> 0340 hs <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">A_ThisHotkey</span> <span style="color:#7a7c7d;">; For convenience and in case we're interrupted.</span> 0341 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">hs</span> <span style="color:#3f8058;">==</span> <span style="color:#f44f4f;">":C:BTW"</span><span style="color:#3f8058;">)</span> 0342 <span style="color:#7f8c8d;">Send</span> BY THE WAY 0343 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">hs</span> <span style="color:#3f8058;">==</span> <span style="color:#f44f4f;">":C:Btw"</span><span style="color:#3f8058;">)</span> 0344 <span style="color:#7f8c8d;">Send</span> By the way 0345 <span style="color:#fdbc4b;font-weight:bold;">else</span> 0346 <span style="color:#7f8c8d;">Send</span> by the way 0347 <span style="color:#3f8058;">}</span> 0348 0349 <span style="color:#27aeae;font-weight:bold;">#IfWinActive</span> <span style="font-weight:bold;">ahk_class</span> Notepad 0350 <span style="color:#3f8058;">::</span>btw<span style="color:#3f8058;">::</span>This replacement text will appear only in Notepad. 0351 <span style="color:#27aeae;font-weight:bold;">#IfWinActive</span> 0352 <span style="color:#3f8058;">::</span>btw<span style="color:#3f8058;">::</span>This replacement text appears in windows other than Notepad. 0353 0354 <span style="color:#27aeae;font-weight:bold;">#Hotstring</span> EndChars -()[]{}:<span style="color:#7a7c7d;">;'"/\,.?!`n `t</span> 0355 0356 <span style="color:#8e44ad;">Hotstring</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"EndChars"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"-()[]{}:;"</span><span style="color:#3f8058;">)</span> 0357 0358 <span style="color:#3f8058;">::</span>btw<span style="color:#3f8058;">::</span> 0359 <span style="color:#7f8c8d;">MsgBox</span> You typed "<span style="color:#3daee9;">``</span>btw<span style="color:#3daee9;">``</span>". 0360 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0361 0362 <span style="color:#3f8058;">:*:</span>]d<span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; This hotstring replaces "]d" with the current date and time via the commands below.</span> 0363 0364 MyFunction<span style="color:#3f8058;">(</span><span style="color:#27aeae;">FirstParameter</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Second</span><span style="color:#3f8058;">,</span> <span style="color:#fdbc4b;font-weight:bold;">ByRef</span> <span style="color:#27aeae;">Third</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Fourth</span><span style="color:#3f8058;">:=</span><span style="color:#f44f4f;">""</span><span style="color:#3f8058;">)</span> 0365 <span style="color:#3f8058;">{</span> 0366 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#f44f4f;">"a value"</span> 0367 <span style="color:#3f8058;">}</span> 0368 0369 <span style="color:#fdbc4b;font-weight:bold;">Loop</span> <span style="color:#f67400;">3</span> 0370 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#27aeae;">MyArray%A_Index%</span> 0371 0372 <span style="color:#7f8c8d;">SysGet</span><span style="color:#3f8058;">,</span> WA<span style="color:#3f8058;">,</span> MonitorWorkArea 0373 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> Left: <span style="color:#27aeae;">%WALeft%</span> -- Top: <span style="color:#27aeae;">%WATop%</span> -- Right: <span style="color:#27aeae;">%WARight%</span> -- Bottom: <span style="color:#27aeae;">%WABottom%</span>. 0374 0375 n <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">123</span> <span style="color:#f67400;">00123</span> <span style="color:#3f8058;">-</span><span style="color:#f67400;">1.</span> <span style="color:#f67400;">0x7B</span> <span style="color:#f67400;">0x007B</span> <span style="color:#3f8058;">-</span><span style="color:#f67400;">0x1</span> <span style="color:#f67400;">3.14159</span> 0376 0377 <span style="color:#7f8c8d;">FileAppend</span><span style="color:#3f8058;">,</span> <span style="color:#7a7c7d;">; Comment.</span> 0378 <span style="color:#7a7c7d;">; Comment.</span> 0379 ( <span style="color:#8e44ad;">LTrim</span> <span style="font-weight:bold;">Join</span> <span style="color:#7a7c7d;">; Comment.</span> 0380 <span style="color:#7a7c7d;">; This is not a comment; it is literal. Include the word Comments in the line above to make it a comment.</span> 0381 ), C:\File.txt <span style="color:#7a7c7d;">; Comment.</span> 0382 0383 param <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">%A_Index%</span> <span style="color:#7a7c7d;">; Fetch the contents of the variable whose name is contained in A_Index.</span> 0384 0385 <span style="font-weight:bold;">Add</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">X</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Y</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Z</span><span style="color:#3f8058;">:=</span><span style="color:#f67400;">0</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">{</span> 0386 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#27aeae;">X</span> <span style="color:#3f8058;">+</span> <span style="color:#27aeae;">Y</span> <span style="color:#3f8058;">+</span> <span style="color:#27aeae;">Z</span> 0387 <span style="color:#3f8058;">}</span> 0388 0389 <span style="font-weight:bold;">Join</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">sep</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">params</span><span style="color:#3f8058;">*)</span> <span style="color:#3f8058;">{</span> 0390 <span style="color:#fdbc4b;font-weight:bold;">for</span> <span style="color:#27aeae;">index</span><span style="color:#3f8058;">,</span><span style="color:#27aeae;">param</span> <span style="font-weight:bold;">in</span> <span style="color:#27aeae;">params</span> 0391 str <span style="color:#3f8058;">.=</span> param . sep 0392 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#8e44ad;">SubStr</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">str</span><span style="color:#3f8058;">,</span> <span style="color:#f67400;">1</span><span style="color:#3f8058;">,</span> <span style="color:#3f8058;">-</span><span style="color:#8e44ad;">StrLen</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">sep</span><span style="color:#3f8058;">))</span> 0393 <span style="color:#3f8058;">}</span> 0394 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="font-weight:bold;">Join</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"</span><span style="color:#3daee9;">`n</span><span style="color:#f44f4f;">"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"one"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"two"</span><span style="color:#3f8058;">,</span> <span style="color:#f44f4f;">"three"</span><span style="color:#3f8058;">)</span> 0395 0396 LogToFile<span style="color:#3f8058;">(</span><span style="color:#27aeae;">TextToLog</span><span style="color:#3f8058;">)</span> 0397 <span style="color:#3f8058;">{</span> 0398 <span style="color:#fdbc4b;font-weight:bold;">global</span> <span style="color:#27aeae;">LogFileName</span> <span style="color:#7a7c7d;">; This global variable was previously given a value somewhere outside this function.</span> 0399 <span style="color:#7f8c8d;">FileAppend</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%TextToLog%</span><span style="color:#3daee9;">`n</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%LogFileName%</span> 0400 <span style="color:#3f8058;">}</span> 0401 0402 SetDefaults<span style="color:#3f8058;">()</span> 0403 <span style="color:#3f8058;">{</span> 0404 <span style="color:#fdbc4b;font-weight:bold;">global</span> 0405 MyGlobal <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">33</span> 0406 <span style="color:#fdbc4b;font-weight:bold;">local</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">y</span><span style="color:#3f8058;">:=</span><span style="color:#f67400;">0</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">z</span> 0407 <span style="color:#3f8058;">}</span> 0408 0409 LogToFile<span style="color:#3f8058;">(</span><span style="color:#27aeae;">TextToLog</span><span style="color:#3f8058;">)</span> 0410 <span style="color:#3f8058;">{</span> 0411 <span style="color:#fdbc4b;font-weight:bold;">static</span> <span style="color:#27aeae;">LoggedLines</span> <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">0</span> 0412 LoggedLines <span style="color:#3f8058;">+=</span> <span style="color:#f67400;">1</span> 0413 <span style="color:#fdbc4b;font-weight:bold;">global</span> <span style="color:#27aeae;">LogFileName</span> 0414 <span style="color:#7f8c8d;">FileAppend</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%LoggedLines%</span>: <span style="color:#27aeae;">%TextToLog%</span><span style="color:#3daee9;">`n</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%LogFileName%</span> 0415 <span style="color:#3f8058;">}</span> 0416 0417 GetFromStaticArray<span style="color:#3f8058;">(</span><span style="color:#27aeae;">WhichItemNumber</span><span style="color:#3f8058;">)</span> 0418 <span style="color:#3f8058;">{</span> 0419 <span style="color:#fdbc4b;font-weight:bold;">static</span> 0420 <span style="color:#fdbc4b;font-weight:bold;">static</span> <span style="color:#27aeae;">FirstCallToUs</span> <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">true</span> 0421 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">FirstCallToUs</span> 0422 <span style="color:#3f8058;">{</span> 0423 FirstCallToUs <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">false</span> 0424 <span style="color:#fdbc4b;font-weight:bold;">Loop</span> <span style="color:#f67400;">10</span> 0425 StaticArray<span style="color:#27aeae;">%A_Index%</span> <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"Value #"</span> <span style="color:#3f8058;">.</span> <span style="color:#27aeae;">A_Index</span> 0426 <span style="color:#3f8058;">}</span> 0427 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#27aeae;">StaticArray%WhichItemNumber%</span> 0428 <span style="color:#3f8058;">}</span> 0429 0430 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">ColorName</span> <span style="color:#3f8058;">!=</span> <span style="color:#f44f4f;">""</span> <span style="font-weight:bold;">AND</span> <span style="font-weight:bold;">not</span> <span style="color:#27aeae;">FindColor</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">ColorName</span><span style="color:#3f8058;">))</span> 0431 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#27aeae;">%ColorName%</span> could not be found. 0432 0433 <span style="font-weight:bold;">class</span> baseObject <span style="color:#3f8058;">{</span> 0434 <span style="color:#fdbc4b;font-weight:bold;">static</span> <span style="color:#27aeae;">foo</span> <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"bar"</span> 0435 } 0436 baseObject <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{</span><span style="color:#27aeae;">foo</span><span style="color:#3f8058;">:</span> <span style="color:#f44f4f;">"bar"</span><span style="color:#3f8058;">}</span> 0437 0438 thing <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{}</span> 0439 thing<span style="color:#3f8058;">.</span>foo <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"bar"</span> 0440 thing<span style="color:#3f8058;">.</span>test <span style="color:#3f8058;">:=</span> <span style="color:#8e44ad;">Func</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"thing_test"</span><span style="color:#3f8058;">)</span> 0441 thing<span style="color:#3f8058;">.</span>test<span style="color:#3f8058;">()</span> 0442 0443 thing_test<span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">{</span> 0444 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">foo</span> 0445 <span style="color:#3f8058;">}</span> 0446 0447 <span style="font-weight:bold;">class</span> Color 0448 <span style="color:#3f8058;">{</span> 0449 <span style="font-weight:bold;">__New</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">aRGB</span><span style="color:#3f8058;">)</span> 0450 <span style="color:#3f8058;">{</span> 0451 <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span>RGB <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">aRGB</span> 0452 <span style="color:#3f8058;">}</span> 0453 0454 <span style="font-weight:bold;">__Delete</span><span style="color:#3f8058;">()</span> 0455 <span style="color:#3f8058;">{</span> 0456 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f44f4f;">"Delete Color."</span> 0457 <span style="color:#3f8058;">}</span> 0458 0459 <span style="color:#fdbc4b;font-weight:bold;">static</span> <span style="color:#7f8c8d;">Shift</span> <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{</span><span style="color:#27aeae;">R</span><span style="color:#3f8058;">:</span><span style="color:#f67400;">16</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">G</span><span style="color:#3f8058;">:</span><span style="color:#f67400;">8</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">B</span><span style="color:#3f8058;">:</span><span style="color:#f67400;">0</span><span style="color:#3f8058;">}</span> 0460 0461 <span style="font-weight:bold;">__Get</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">aName</span><span style="color:#3f8058;">)</span> 0462 <span style="color:#3f8058;">{</span> 0463 <span style="color:#7a7c7d;">; </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold;">NOTE</span><span style="color:#7a7c7d;">: Using this.Shift here would cause an infinite loop!</span> 0464 shift <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">Color</span><span style="color:#3f8058;">.</span><span style="color:#7f8c8d;">Shift</span><span style="color:#3f8058;">[</span><span style="color:#27aeae;">aName</span><span style="color:#3f8058;">]</span> <span style="color:#7a7c7d;">; Get the number of bits to shift.</span> 0465 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#7f8c8d;">shift</span> <span style="color:#3f8058;">!=</span> <span style="color:#f44f4f;">""</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Is it a known property?</span> 0466 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> <span style="color:#3f8058;">>></span> <span style="color:#7f8c8d;">shift</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">&</span> <span style="color:#f67400;">0xff</span> 0467 <span style="color:#7a7c7d;">; </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold;">NOTE</span><span style="color:#7a7c7d;">: Using 'return' here would break this.RGB.</span> 0468 <span style="color:#3f8058;">}</span> 0469 0470 <span style="font-weight:bold;">__Set</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">aName</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">aValue</span><span style="color:#3f8058;">)</span> 0471 <span style="color:#3f8058;">{</span> 0472 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">((</span><span style="color:#7f8c8d;">shift</span> <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">Color</span><span style="color:#3f8058;">.</span><span style="color:#7f8c8d;">Shift</span><span style="color:#3f8058;">[</span><span style="color:#27aeae;">aName</span><span style="color:#3f8058;">])</span> <span style="color:#3f8058;">!=</span> <span style="color:#f44f4f;">""</span><span style="color:#3f8058;">)</span> 0473 <span style="color:#3f8058;">{</span> 0474 aValue <span style="color:#3f8058;">&=</span> <span style="color:#f67400;">255</span> <span style="color:#7a7c7d;">; Truncate it to the proper range.</span> 0475 0476 <span style="color:#7a7c7d;">; Calculate and store the new RGB value.</span> 0477 <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span>RGB <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">aValue</span> <span style="color:#3f8058;"><<</span> <span style="color:#7f8c8d;">shift</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">|</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> <span style="color:#3f8058;">&</span> <span style="color:#3f8058;">~(</span><span style="color:#f67400;">0xff</span> <span style="color:#3f8058;"><<</span> <span style="color:#7f8c8d;">shift</span><span style="color:#3f8058;">))</span> 0478 0479 <span style="color:#7a7c7d;">; 'Return' must be used to indicate a new key-value pair should not be created.</span> 0480 <span style="color:#7a7c7d;">; This also defines what will be stored in the 'x' in 'x := clr[name] := val':</span> 0481 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#27aeae;">aValue</span> 0482 <span style="color:#3f8058;">}</span> 0483 <span style="color:#7a7c7d;">; </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold;">NOTE</span><span style="color:#7a7c7d;">: Using 'return' here would break this.stored_RGB and this.RGB.</span> 0484 <span style="color:#3f8058;">}</span> 0485 0486 <span style="color:#7a7c7d;">; Meta-functions can be mixed with properties:</span> 0487 <span style="font-weight:bold;">RGB</span> <span style="color:#3f8058;">{</span> 0488 <span style="font-weight:bold;">get</span> <span style="color:#3f8058;">{</span> 0489 <span style="color:#7a7c7d;">; Return it in hex format:</span> 0490 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#8e44ad;">format</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"0x{:06x}"</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">stored_RGB</span><span style="color:#3f8058;">)</span> 0491 <span style="color:#3f8058;">}</span> 0492 <span style="font-weight:bold;">set</span> <span style="color:#3f8058;">{</span> 0493 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">stored_RGB</span> <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">value</span> 0494 <span style="color:#3f8058;">}</span> 0495 <span style="color:#3f8058;">}</span> 0496 0497 <span style="font-weight:bold;">class</span> __Get extends Properties 0498 <span style="color:#3f8058;">{</span> 0499 R<span style="color:#3f8058;">()</span> <span style="color:#3f8058;">{</span> 0500 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> <span style="color:#3f8058;">>></span> <span style="color:#f67400;">16</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">&</span> <span style="color:#f67400;">255</span> 0501 <span style="color:#3f8058;">}</span> 0502 G<span style="color:#3f8058;">()</span> <span style="color:#3f8058;">{</span> 0503 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> <span style="color:#3f8058;">>></span> <span style="color:#f67400;">8</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">&</span> <span style="color:#f67400;">255</span> 0504 <span style="color:#3f8058;">}</span> 0505 B<span style="color:#3f8058;">()</span> <span style="color:#3f8058;">{</span> 0506 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="font-weight:bold;">this</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> <span style="color:#3f8058;">&</span> <span style="color:#f67400;">255</span> 0507 <span style="color:#3f8058;">}</span> 0508 <span style="color:#3f8058;">}</span> 0509 0510 <span style="font-weight:bold;">Property</span><span style="color:#3f8058;">[]</span> <span style="color:#7a7c7d;">; Brackets are optional</span> 0511 <span style="color:#3f8058;">{</span> 0512 <span style="font-weight:bold;">get</span> <span style="color:#3f8058;">{</span> 0513 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">...</span> 0514 <span style="color:#3f8058;">}</span> 0515 <span style="font-weight:bold;">set</span> <span style="color:#3f8058;">{</span> 0516 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">...</span> <span style="color:#3f8058;">:=</span> <span style="color:#27aeae;">value</span> 0517 <span style="color:#3f8058;">}</span> 0518 <span style="color:#3f8058;">}</span> 0519 <span style="color:#3f8058;">}</span> 0520 0521 <span style="font-weight:bold;">class</span> Properties extends FunctionObject 0522 <span style="color:#3f8058;">{</span> 0523 Call<span style="color:#3f8058;">(</span><span style="color:#27aeae;">aTarget</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">aName</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">aParams</span><span style="color:#3f8058;">*)</span> 0524 <span style="color:#3f8058;">{</span> 0525 <span style="color:#7a7c7d;">; If this Properties object contains a definition for this half-property, call it.</span> 0526 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#8e44ad;">ObjHasKey</span><span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">aName</span><span style="color:#3f8058;">)</span> 0527 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="font-weight:bold;">this</span><span style="color:#3f8058;">[</span><span style="color:#27aeae;">aName</span><span style="color:#3f8058;">].</span><span style="color:#27aeae;">Call</span><span style="color:#3f8058;">(</span><span style="color:#27aeae;">aTarget</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">aParams</span><span style="color:#3f8058;">*)</span> 0528 <span style="color:#3f8058;">}</span> 0529 <span style="color:#3f8058;">}</span> 0530 0531 MyGet<span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Key</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Key2</span><span style="color:#3f8058;">)</span> 0532 MySet<span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Key</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Key2</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Value</span><span style="color:#3f8058;">)</span> 0533 MyCall<span style="color:#3f8058;">(</span><span style="font-weight:bold;">this</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Name</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">Params</span><span style="color:#3f8058;">)</span> 0534 0535 ClassName <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{</span> <span style="font-weight:bold;">__Get</span><span style="color:#3f8058;">:</span> <span style="color:#8e44ad;">Func</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"MyGet"</span><span style="color:#3f8058;">),</span> <span style="font-weight:bold;">__Set</span><span style="color:#3f8058;">:</span> <span style="color:#8e44ad;">Func</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"MySet"</span><span style="color:#3f8058;">),</span> <span style="font-weight:bold;">__Call</span><span style="color:#3f8058;">:</span> <span style="color:#8e44ad;">Func</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"MyCall"</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">}</span> 0536 0537 red <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">new</span> <span style="font-weight:bold;">Color</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">0xff0000</span><span style="color:#3f8058;">),</span> red<span style="color:#3f8058;">.</span>R <span style="color:#3f8058;">-=</span> <span style="color:#f67400;">5</span> 0538 cyan <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">new</span> <span style="font-weight:bold;">Color</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">0</span><span style="color:#3f8058;">),</span> cyan<span style="color:#3f8058;">.</span>G <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">255</span><span style="color:#3f8058;">,</span> cyan<span style="color:#3f8058;">.</span>B <span style="color:#3f8058;">:=</span> <span style="color:#f67400;">255</span> 0539 0540 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f44f4f;">"red: "</span> <span style="color:#27aeae;">red</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">R</span> <span style="color:#f44f4f;">","</span> <span style="color:#27aeae;">red</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">G</span> <span style="color:#f44f4f;">","</span> <span style="color:#27aeae;">red</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">B</span> <span style="color:#f44f4f;">" = "</span> <span style="color:#27aeae;">red</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> 0541 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#f44f4f;">"cyan: "</span> <span style="color:#27aeae;">cyan</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">R</span> <span style="color:#f44f4f;">","</span> <span style="color:#27aeae;">cyan</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">G</span> <span style="color:#f44f4f;">","</span> <span style="color:#27aeae;">cyan</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">B</span> <span style="color:#f44f4f;">" = "</span> <span style="color:#27aeae;">cyan</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">RGB</span> 0542 0543 <span style="color:#7a7c7d;">; This example requires the FunctionObject class in order to work.</span> 0544 blue <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">new</span> <span style="font-weight:bold;">Color</span><span style="color:#3f8058;">(</span><span style="color:#f67400;">0x0000ff</span><span style="color:#3f8058;">)</span> 0545 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#27aeae;">blue</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">R</span> <span style="color:#f44f4f;">","</span> <span style="color:#27aeae;">blue</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">G</span> <span style="color:#f44f4f;">","</span> <span style="color:#27aeae;">blue</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">B</span> 0546 0547 x <span style="color:#3f8058;">:=</span> <span style="color:#3f8058;">{</span><span style="font-weight:bold;">base</span><span style="color:#3f8058;">:</span> <span style="color:#3f8058;">{</span><span style="color:#27aeae;">addr</span><span style="color:#3f8058;">:</span> <span style="color:#8e44ad;">Func</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"x_Addr"</span><span style="color:#3f8058;">),</span> <span style="font-weight:bold;">__Set</span><span style="color:#3f8058;">:</span> <span style="color:#8e44ad;">Func</span><span style="color:#3f8058;">(</span><span style="color:#f44f4f;">"x_Setter"</span><span style="color:#3f8058;">)}}</span> 0548 0549 <span style="color:#7a7c7d;">; Assign value, implicitly calling x_Setter to create sub-objects.</span> 0550 x<span style="color:#3f8058;">[</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">3</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">"..."</span> 0551 0552 <span style="color:#7a7c7d;">; Retrieve value and call example method.</span> 0553 <span style="color:#7f8c8d;">MsgBox</span> <span style="color:#3f8058;">% </span><span style="color:#27aeae;">x</span><span style="color:#3f8058;">[</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">2</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">3</span><span style="color:#3f8058;">]</span> <span style="color:#f44f4f;">"</span><span style="color:#3daee9;">`n</span><span style="color:#f44f4f;">"</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">.</span><span style="color:#27aeae;">addr</span><span style="color:#3f8058;">()</span> <span style="color:#f44f4f;">"</span><span style="color:#3daee9;">`n</span><span style="color:#f44f4f;">"</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">[</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">].</span><span style="color:#27aeae;">addr</span><span style="color:#3f8058;">()</span> <span style="color:#f44f4f;">"</span><span style="color:#3daee9;">`n</span><span style="color:#f44f4f;">"</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">[</span><span style="color:#f67400;">1</span><span style="color:#3f8058;">,</span><span style="color:#f67400;">2</span><span style="color:#3f8058;">].</span><span style="color:#27aeae;">addr</span><span style="color:#3f8058;">()</span> 0554 0555 x_Setter<span style="color:#3f8058;">(</span><span style="color:#27aeae;">x</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">p1</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">p2</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">p3</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">{</span> 0556 x<span style="color:#3f8058;">[</span><span style="color:#27aeae;">p1</span><span style="color:#3f8058;">]</span> <span style="color:#3f8058;">:=</span> <span style="font-weight:bold;">new</span> <span style="color:#27aeae;">x</span><span style="color:#3f8058;">.</span><span style="font-weight:bold;">base</span> 0557 <span style="color:#3f8058;">}</span> 0558 0559 x_Addr<span style="color:#3f8058;">(</span><span style="color:#27aeae;">x</span><span style="color:#3f8058;">)</span> <span style="color:#3f8058;">{</span> 0560 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#3f8058;">&</span><span style="color:#27aeae;">x</span> 0561 <span style="color:#3f8058;">}</span> 0562 0563 <span style="color:#7f8c8d;">InputBox</span><span style="color:#3f8058;">,</span> OutputVar<span style="color:#3f8058;">,</span> Question 1<span style="color:#3f8058;">,</span> What is your first name? 0564 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">OutputVar</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Bill"</span><span style="color:#3f8058;">)</span> 0565 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> That's an awesome name<span style="color:#3daee9;">`,</span> <span style="color:#27aeae;">%OutputVar%</span>. 0566 0567 <span style="color:#7f8c8d;">InputBox</span><span style="color:#3f8058;">,</span> OutputVar2<span style="color:#3f8058;">,</span> Question 2<span style="color:#3f8058;">,</span> Do you like AutoHotkey? 0568 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">OutputVar2</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"yes"</span><span style="color:#3f8058;">)</span> 0569 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> Thank you for answering <span style="color:#27aeae;">%OutputVar2%</span><span style="color:#3daee9;">`,</span> <span style="color:#27aeae;">%OutputVar%</span><span style="color:#7f8c8d;">!</span> We will become great friends. 0570 <span style="color:#fdbc4b;font-weight:bold;">else</span> 0571 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%OutputVar%</span><span style="color:#3daee9;">`,</span> That makes me sad. 0572 0573 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> 4<span style="color:#3f8058;">,,</span> Would you like to continue? 0574 <span style="color:#fdbc4b;font-weight:bold;">IfMsgBox</span><span style="color:#3f8058;">,</span> <span style="font-weight:bold;">No</span> 0575 <span style="color:#fdbc4b;font-weight:bold;">return</span> <span style="color:#7a7c7d;">; If No, stop the code from going further.</span> 0576 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You pressed YES. <span style="color:#7a7c7d;">; Otherwise, the user picked yes.</span> 0577 0578 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">car</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"old"</span><span style="color:#3f8058;">)</span> 0579 <span style="color:#3f8058;">{</span> 0580 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> The car is really old. 0581 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">wheels</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"flat"</span><span style="color:#3f8058;">)</span> 0582 <span style="color:#3f8058;">{</span> 0583 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> This car is not safe to drive. 0584 <span style="color:#fdbc4b;font-weight:bold;">return</span> 0585 <span style="color:#3f8058;">}</span> 0586 <span style="color:#fdbc4b;font-weight:bold;">else</span> 0587 <span style="color:#3f8058;">{</span> 0588 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> Be careful<span style="color:#7f8c8d;">!</span> This old car will be dangerous to drive. 0589 <span style="color:#3f8058;">}</span> 0590 <span style="color:#3f8058;">}</span> 0591 <span style="color:#fdbc4b;font-weight:bold;">else</span> 0592 <span style="color:#3f8058;">{</span> 0593 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> My<span style="color:#3daee9;">`,</span> what a shiny new vehicle you have there. 0594 <span style="color:#3f8058;">}</span> 0595 0596 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Red"</span> <span style="font-weight:bold;">or</span> <span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Green"</span> <span style="font-weight:bold;">or</span> <span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Blue"</span> <span style="color:#7a7c7d;">; Comment.</span> 0597 <span style="font-weight:bold;">or</span> <span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Black"</span> <span style="font-weight:bold;">or</span> <span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"Gray"</span> <span style="font-weight:bold;">or</span> <span style="font-weight:bold;">Color</span> <span style="color:#3f8058;">=</span> <span style="color:#f44f4f;">"White"</span><span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Comment.</span> 0598 <span style="font-weight:bold;">and</span> ProductIsAvailableInColor(Product<span style="color:#3f8058;">,</span> Color<span style="color:#3f8058;">)</span> <span style="color:#7a7c7d;">; Comment.</span> 0599 0600 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#3f8058;">(</span><span style="color:#27aeae;">codepage</span> <span style="color:#3f8058;">!=</span> <span style="color:#f44f4f;">""</span><span style="color:#3f8058;">)</span> 0601 codepage <span style="color:#3f8058;">:=</span> <span style="color:#f44f4f;">" /CP"</span> <span style="color:#3f8058;">.</span> <span style="color:#27aeae;">codepage</span> 0602 cmd<span style="color:#3f8058;">=</span>"<span style="color:#27aeae;">%A_AhkPath%</span>"<span style="color:#27aeae;">%codepage%</span> "<span style="color:#3daee9;">`%</span>1" <span style="color:#3daee9;">`%</span><span style="color:#7f8c8d;">*</span> 0603 key<span style="color:#3f8058;">=</span>AutoHotkeyScript\Shell\Open\Command 0604 <span style="color:#fdbc4b;font-weight:bold;">if</span> <span style="color:#27aeae;">A_IsAdmin</span> <span style="color:#7a7c7d;">; Set for all users.</span> 0605 <span style="color:#7f8c8d;">RegWrite</span><span style="color:#3f8058;">,</span> REG_SZ<span style="color:#3f8058;">,</span> HKCR<span style="color:#3f8058;">,</span> <span style="color:#27aeae;">%key%</span><span style="color:#3f8058;">,,</span> <span style="color:#27aeae;">%cmd%</span> 0606 <span style="color:#fdbc4b;font-weight:bold;">else</span> <span style="color:#7a7c7d;">; Set for current user only.</span> 0607 <span style="color:#7f8c8d;">RegWrite</span><span style="color:#3f8058;">,</span> REG_SZ<span style="color:#3f8058;">,</span> HKCU<span style="color:#3f8058;">,</span> Software\Classes\<span style="color:#27aeae;">%key%</span><span style="color:#3f8058;">,,</span> <span style="color:#27aeae;">%cmd%</span> 0608 0609 <span style="color:#7f8c8d;">^j</span><span style="color:#3f8058;">::</span> <span style="color:#7a7c7d;">; hotkey label</span> 0610 <span style="color:#7f8c8d;">MsgBox</span><span style="color:#3f8058;">,</span> You typed btw. 0611 </pre></body></html>