├── Readme.md ├── manuals └── AHK 快餐店.chm ├── scripts ├── 1.热键.ahk ├── 10.1.禁止Win键.ahk ├── 10.2.Alt 按键测试.ahk ├── 10.3.交换两个按键.ahk ├── 10.4.Helfee 版禁用Win键.ahk ├── 11.DesktopSwitch.ahk ├── 12.秒杀窗口,左键加右键.ahk ├── 13.秒表.ahk ├── 14.复制粘贴,右键加左键.ahk ├── 15.AltTab.ahk ├── 16.1.让F2更智能.ahk ├── 16.2.天堂之门.让F2更智能.ahk ├── 17.1.快速弹出U盘unplug.ahk ├── 18.1.关掉天网防火墙开机提示.ahk ├── 18.2.iLEMONed.显示隐藏文件扩展名.ahk ├── 18.3.iLEMONed.显示隐藏系统文件:.ahk ├── 19.用快捷键得到当前选中文件的路径.ahk ├── 2.热字符串.ahk ├── 20.AHK + 迅雷快车,轻松下载 QQ 音乐.ahk ├── 21.AHK+GVIM 打造 “专心致志文本编辑器” │ ├── Readme.txt │ ├── _vimrc │ └── gvimfull.ahk ├── 22.1.获取屏幕上某块区域的位置.ahk ├── 22.2.删除迅雷文件.ahk ├── 23.Sofast AHK 监视网页更新 │ ├── Compare.ahk │ ├── SoFast AHK.ahk │ └── urls.txt ├── 24.开机自动运行程序的延迟启动 Runlater │ ├── Run.ahk │ ├── Run2.ahk │ ├── Run2.exe │ └── RunSetting.ini ├── 25.用 AHK 打造自己的 Firefox Portable.ahk ├── 3.Folder Menu │ ├── Config.ini │ └── Folder Menu.ahk ├── 4.1.计时器.ahk ├── 4.2.计时器.ahk ├── 5.屏幕键盘 KeyboardOnScreen.ahk ├── 6.1.颜色神偷.ahk ├── 6.2.颜色神偷.ahk ├── 6.3.Helfee 带预览的颜色神偷.ahk ├── 7.1.录制鼠标键盘动作Recorder │ ├── Anchor.ahk │ ├── Recorder.ahk │ └── grep.ahk ├── 7.2.以今天日期建立文件夹.ahk ├── 8.快速进入注册表.ahk ├── 9.1.让鼠标移动一像素.ahk ├── 9.2.让鼠标移动一像素.ahk ├── Backup.ahk ├── Download │ ├── 7za.exe │ ├── Copy of Download.AHK │ ├── Download.AHK │ ├── Download.exe │ ├── Test.txt │ └── wget.exe ├── Knorr.AHK ├── List.ahk ├── MMAP │ ├── MMAP.AHK │ └── MMAP_Configuration.INI ├── Mac.ahk ├── Phone │ ├── 0.wav │ ├── 1.wav │ ├── 2.wav │ ├── 3.wav │ ├── 4.wav │ ├── 5.wav │ ├── 6.wav │ ├── 7.wav │ ├── 8.wav │ ├── 9.wav │ ├── phone.ahk │ ├── 井号.wav │ └── 星号.wav ├── PrintScreen │ ├── PngOptimizer.exe │ ├── PngOptimizer.ini │ ├── PrintScreen.AHK │ └── PrintScreen.exe ├── ShellTrayTaskBarInfo │ ├── ShellTrayHelper.ahk │ ├── ShellTrayTaskBarInfo.ahk │ ├── TaskBarHelper.ahk │ └── Utils │ │ ├── Kernel32.ahk │ │ ├── ToolbarWrapper.ahk │ │ ├── User32.ahk │ │ └── Utils.ahk ├── Web.AHK ├── html.ahk └── 验证码识别.ahk └── tools ├── AHK Script Manager ├── AHK Script Manager.ahk ├── ReadMe.txt ├── includes │ └── LibINI.ahk ├── resources │ └── ahk.ico ├── scripts │ ├── !GoodClock.ahk │ ├── !GoodClock.ini │ ├── GoodClock.ini │ ├── Snippet.ahk │ ├── Snippet.ini │ ├── SoFast.ahk │ ├── SoFast.ico │ ├── SoFast.ini │ ├── SoFast_new.ico │ └── SoFast_none.ico └── 说明.txt ├── AU3_Spy.exe ├── AutoScriptWriter ├── ASWHook.dll └── AutoScriptWriter.exe ├── CV_bin ├── CV.exe └── CV_x64.exe ├── MacroCreatorPortable ├── License.txt ├── MacroCreatorPortable.exe ├── ReadMe.txt ├── x64 │ └── MacroCreator │ │ ├── MacroCreator.exe │ │ ├── MacroCreator.ini │ │ ├── MacroCreator_Help.chm │ │ ├── Resources.dll │ │ └── SciLexer.dll └── x86 │ └── MacroCreator │ ├── MacroCreator.exe │ ├── MacroCreator.ini │ ├── MacroCreator_Help.chm │ ├── Resources.dll │ └── SciLexer.dll └── SciTE4AutoHotkey ├── SciLexer.dll ├── SciTE.exe ├── SciTEGlobal.properties ├── ahk.abbrev.properties ├── ahk.keywords.properties ├── ahk.lua ├── ahk.properties ├── api ├── ahk.api └── ahk.user.calltips.api ├── locale.properties ├── tools ├── MsgBox Creator.exe ├── Progress Maker.exe ├── Scriptlet Library.exe ├── SplashImage Maker.exe └── VisualIni.exe └── 请先看这里.txt /Readme.md: -------------------------------------------------------------------------------- 1 | AHK各类工具、资料及测试过程中的脚本 -------------------------------------------------------------------------------- /manuals/AHK 快餐店.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/manuals/AHK 快餐店.chm -------------------------------------------------------------------------------- /scripts/1.热键.ahk: -------------------------------------------------------------------------------- 1 | #n::run notepad 2 | #j::Run www.jandan.net -------------------------------------------------------------------------------- /scripts/10.1.禁止Win键.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/10.1.禁止Win键.ahk -------------------------------------------------------------------------------- /scripts/10.2.Alt 按键测试.ahk: -------------------------------------------------------------------------------- 1 | ~LAlt:: 2 | errorlevel = 5 3 | Keywait, LAlt, , t0.5 4 | if errorlevel = 1 5 | return 6 | else 7 | tooltip,%errorlevel% 8 | return -------------------------------------------------------------------------------- /scripts/10.3.交换两个按键.ahk: -------------------------------------------------------------------------------- 1 | a::b 2 | b::a -------------------------------------------------------------------------------- /scripts/10.4.Helfee 版禁用Win键.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/10.4.Helfee 版禁用Win键.ahk -------------------------------------------------------------------------------- /scripts/11.DesktopSwitch.ahk: -------------------------------------------------------------------------------- 1 | 2 | ; DesktopSwitch 3 | ; 4 | ; AutoHotkey Version: 1.0.40.00 (that's at least the version I'm using) 5 | ; Language: English 6 | ; Platform: Win9x/NT/XP 7 | ; Author: Christian Sch?c_schueler@gmx.at> 8 | ; last changes: 22. Nov. 2005 9 | ; 10 | ; Script Function: 11 | ; 12 | ; A small tool for switching between multiple virtual desktops. 13 | ; Use Alt- (e.g. Alt-2) to switch between desktops and 14 | ; Alt-0 to quit the script, showing all windows on all virtual desktops 15 | ; at once. Currently, 4 desktops are supported, because more will start 16 | ; to confuse me... 17 | ; 18 | ; Version history: 19 | ; 20 | ; v1.11, 22. Nov. 2005 21 | ; Fixed bug: windows are now corrrectly activated after switching/sending 22 | ; 23 | ; v1.1, 05. Nov. 2005 24 | ; Added feature: pressing Ctrl/Alt- sends the active window to the desktop . 25 | ; 26 | ; v1.0, 04. Nov. 2005 27 | ; It works! 28 | ; Switching can be done using Alt-, e.g. Alt-1. Pressing 29 | ; Alt-0 will exit the script and show all windows from all virtual desktops 30 | ; at once. 31 | 32 | 33 | ; ***** initialization ***** 34 | 35 | SetBatchLines, -1 ; maximize script speed! 36 | SetWinDelay, -1 37 | OnExit, CleanUp ; clean up in case of error (otherwise some windows will get lost) 38 | 39 | numDesktops := 4 ; maximum number of desktops 40 | curDesktop := 1 ; index number of current desktop 41 | 42 | WinGet, windows1, List ; get list of all currently visible windows 43 | 44 | ; Transparent Banner GUI 45 | Gui, -Caption +ToolWindow +LastFound +AlwaysOnTop 46 | Gui, Add, Picture, x0 y0, C:\Program Files\Autohotkey\Scripts\banner.png 47 | Gui, Add, Text, x15 y5 w70 +BackgroundTrans vString 48 | 49 | ; ***** hotkeys ***** 50 | 51 | #MaxThreadsPerHotkey 6 52 | !1::SwitchToDesktop(1) 53 | !2::SwitchToDesktop(2) 54 | !3::SwitchToDesktop(3) 55 | !4::SwitchToDesktop(4) 56 | #MaxThreadsPerHotkey 1 57 | 58 | ^!1::SendActiveToDesktop(1) 59 | ^!2::SendActiveToDesktop(2) 60 | ^!3::SendActiveToDesktop(3) 61 | ^!4::SendActiveToDesktop(4) 62 | 63 | !0::ExitApp 64 | 65 | 66 | ; ***** functions ***** 67 | 68 | ; switch to the desktop with the given index number 69 | SwitchToDesktop(newDesktop) 70 | { 71 | global 72 | 73 | if (curDesktop <> newDesktop) 74 | { 75 | GetCurrentWindows(curDesktop) 76 | 77 | ;WinGet, windows%curDesktop%, List,,, Program Manager ; get list of all visible windows 78 | 79 | ShowHideWindows(curDesktop, false) 80 | ShowHideWindows(newDesktop, true) 81 | 82 | curDesktop := newDesktop 83 | 84 | Send, {ALT DOWN}{TAB}{ALT UP} ; activate the right window 85 | } 86 | 87 | WinClose, ahk_class SysShadow 88 | ShowBanner("Desktop: " newDesktop) 89 | 90 | return 91 | } 92 | 93 | ; sends the given window from the current desktop to the given desktop 94 | SendToDesktop(windowID, newDesktop) 95 | { 96 | global 97 | RemoveWindowID(curDesktop, windowID) 98 | 99 | ; add window to destination desktop 100 | windows%newDesktop% += 1 101 | i := windows%newDesktop% 102 | 103 | windows%newDesktop%%i% := windowID 104 | 105 | WinHide, ahk_id %windowID% 106 | 107 | Send, {ALT DOWN}{TAB}{ALT UP} ; activate the right window 108 | } 109 | 110 | ; sends the currently active window to the given desktop 111 | SendActiveToDesktop(newDesktop) 112 | { 113 | WinGet, id, ID, A 114 | SendToDesktop(id, newDesktop) 115 | } 116 | 117 | ; removes the given window id from the desktop 118 | RemoveWindowID(desktopIdx, ID) 119 | { 120 | global 121 | Loop, % windows%desktopIdx% 122 | { 123 | if (windows%desktopIdx%%A_Index% = ID) 124 | { 125 | RemoveWindowID_byIndex(desktopIdx, A_Index) 126 | Break 127 | } 128 | } 129 | } 130 | 131 | ; this removes the window id at index from desktop number 132 | RemoveWindowID_byIndex(desktopIdx, ID_idx) 133 | { 134 | global 135 | Loop, % windows%desktopIdx% - ID_idx 136 | { 137 | idx1 := % A_Index + ID_idx - 1 138 | idx2 := % A_Index + ID_idx 139 | windows%desktopIdx%%idx1% := windows%desktopIdx%%idx2% 140 | } 141 | windows%desktopIdx% -= 1 142 | } 143 | 144 | ; this builds a list of all currently visible windows in stores it in desktop 145 | GetCurrentWindows(index) 146 | { 147 | global 148 | WinGet, windows%index%, List,,, Program Manager ; get list of all visible windows 149 | 150 | ; now remove task bar "window" (is there a simpler way?) 151 | Loop, % windows%index% 152 | { 153 | id := % windows%index%%A_Index% 154 | 155 | WinGetClass, windowClass, ahk_id %id% 156 | if windowClass = Shell_TrayWnd ; remove task bar window id 157 | { 158 | RemoveWindowID_byIndex(index, A_Index) 159 | Break 160 | } 161 | } 162 | } 163 | 164 | ; if show=true then shows windows of desktop %index%, otherwise hides them 165 | ShowHideWindows(index, show) 166 | { 167 | global 168 | 169 | Loop, % windows%index% 170 | { 171 | id := % windows%index%%A_Index% 172 | 173 | if show 174 | WinShow, ahk_id %id% 175 | else 176 | WinHide, ahk_id %id% 177 | } 178 | } 179 | 180 | ShowBanner(Text) 181 | { 182 | global 183 | Trans := 255 184 | 185 | GuiControl, Text, String, % Text 186 | Gui, Show, x895 y677 h24 w92 NoActivate, MyTransparentBanner 187 | WinSet, Transparent, %Trans%, MyTransparentBanner 188 | Sleep 500 189 | 190 | Loop 191 | { 192 | if(Trans <= 0) 193 | { 194 | Trans := 0 195 | WinSet, Transparent, %Trans%, MyTransparentBanner 196 | break 197 | } 198 | 199 | WinSet, Transparent, %Trans%, MyTransparentBanner 200 | Trans := Trans - 5 201 | Sleep, 10 202 | } 203 | 204 | return 205 | } 206 | 207 | ; show all windows from all desktops on exit 208 | CleanUp: 209 | Loop, %numDesktops% 210 | ShowHideWindows(A_Index, true) 211 | ExitApp 212 | -------------------------------------------------------------------------------- /scripts/12.秒杀窗口,左键加右键.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/12.秒杀窗口,左键加右键.ahk -------------------------------------------------------------------------------- /scripts/13.秒表.ahk: -------------------------------------------------------------------------------- 1 | #SingleInstance Force 2 | #Persistent 3 | SetBatchLines -1 4 | DetectHiddenWindows, On 5 | Gosub, TrayMenu 6 | FileSetAttrib, -A, StopWatch.ini 7 | SetTimer, UpdatedScript 8 | IfNotExist, StopWatch.ini 9 | { 10 | IniWrite, Center, StopWatch.ini, Settings, xPos 11 | IniWrite, Center, StopWatch.ini, Settings, yPos 12 | IniWrite, Lime, StopWatch.ini, Settings, Text_Color 13 | IniWrite, 0, StopWatch.ini, Settings, Msec 14 | IniWrite, 00, StopWatch.ini, Settings, Sec 15 | IniWrite, 00, StopWatch.ini, Settings, Min 16 | IniWrite, 00, StopWatch.ini, Settings, Hour 17 | IniWrite, Off, StopWatch.ini, Settings, Transparent 18 | IniWrite, 13, StopWatch.ini, Settings, Text_Size 19 | IniWrite, Black, StopWatch.ini, Settings, Background_Color 20 | IniWrite, Off, StopWatch.ini, Settings, Always_On_Top 21 | } 22 | IfExist, StopWatch.ini 23 | { 24 | IniRead, xPos, StopWatch.ini, Settings, xPos 25 | IniRead, yPos, StopWatch.ini, Settings, yPos 26 | IniRead, Text_Color, StopWatch.ini, Settings, Text_Color 27 | IniRead, Msec, StopWatch.ini, Settings, Msec 28 | IniRead, Sec, StopWatch.ini, Settings, Sec 29 | IniRead, Min, StopWatch.ini, Settings, Min 30 | IniRead, Hour, StopWatch.ini, Settings, Hour 31 | IniRead, Background_Color, StopWatch.ini, Settings, Background_Color 32 | IniRead, Text_Size, StopWatch.ini, Settings, Text_Size 33 | IniRead, Transparent, StopWatch.ini, Settings, Transparent 34 | IniRead, Always_On_Top, StopWatch.ini, Settings, Always_On_Top 35 | } 36 | Text_Color_Check = %Text_Color% 37 | If Text_Color_Check = FF8000 38 | Text_Color_Check = Orange 39 | Menu, TextColor_%Text_Color_Check%, Check, %Text_Color_Check% 40 | Background_Color_Check = %Background_Color% 41 | If Background_Color_Check = FF8000 42 | Background_Color_Check = Orange 43 | Menu, BackgroundColor_%Background_Color_Check%, Check, %Background_Color_Check% 44 | Menu, Transparent, Check, %Transparent% 45 | Menu, TextSize, Check, %Text_Size% 46 | Menu, Always_On_Top, Check, %Always_On_Top% 47 | Menu, BackgroundColor, ToggleEnable, %Text_Color_Check% 48 | Menu, TextColor, ToggleEnable, %Background_Color_Check% 49 | If Always_On_Top = On 50 | AlwaysOnTop = +AlwaysOnTop 51 | If Always_On_Top = Off 52 | AlwaysOnTop = 53 | HourMinSec = %Hour%%Min%%Sec%%Msec% 54 | If HourMinSec = 0000000 55 | Menu, Tray, Disable, Clear 56 | Gui, Color, %Background_Color% 57 | Gui, Font, c%Text_Color% s%Text_Size% Bold 58 | Gui, Add, Text, , %Hour%:%Min%:%Sec%.%Msec% 59 | If Transparent = Off 60 | { 61 | Gui, +ToolWindow +Border %AlwaysOnTop% 62 | If Text_Size = 13 63 | { 64 | Gui, Font, cBlack s7 Normal 65 | Gui, Add, Button, y+5 w38 h20, Start 66 | Gui, Add, Button, x+10 w38 h20, Stop 67 | } 68 | If Text_Size = 15 69 | { 70 | Gui, Font, cBlack s7 Normal 71 | Gui, Add, Button, y+5 w45 h20, Start 72 | Gui, Add, Button, x+13 w45 h20, Stop 73 | } 74 | If Text_Size = 18 75 | { 76 | Gui, Font, cBlack s8 Normal 77 | Gui, Add, Button, y+5 w50 h22, Start 78 | Gui, Add, Button, x+18 w50 h22, Stop 79 | } 80 | If Text_Size = 20 81 | { 82 | Gui, Font, cBlack s10 bold 83 | Gui, Add, Button, y+10 w60 h25, Start 84 | Gui, Add, Button, x+18 w60 h25, Stop 85 | } 86 | If Text_Size = 25 87 | { 88 | Gui, Font, cBlack s12 bold 89 | Gui, Add, Button, y+10 w65 h30, Start 90 | Gui, Add, Button, x+30 w65 h30, Stop 91 | } 92 | If Text_Size = 30 93 | { 94 | Gui, Font, cBlack s14 bold 95 | Gui, Add, Button, y+10 w78 h35, Start 96 | Gui, Add, Button, x+36 w78 h35, Stop 97 | } 98 | If Text_Size = 35 99 | { 100 | Gui, Font, cBlack s17 bold 101 | Gui, Add, Button, y+10 w90 h40, Start 102 | Gui, Add, Button, x+47 w90 h40, Stop 103 | } 104 | } 105 | If Transparent = On 106 | { 107 | WinSet, TransColor, %Background_Color% 255, StopWatch 108 | Gui, +ToolWindow -SysMenu -Caption %AlwaysOnTop% 109 | } 110 | Gui, Show, x%xPos% y%yPos%, StopWatch 111 | Return 112 | 113 | 114 | 115 | UpdatedScript: 116 | FileGetAttrib, Attribs, StopWatch.ini 117 | IfInString, Attribs, A 118 | { 119 | IniWrite, %Msec%, StopWatch.ini, Settings, Msec 120 | IniWrite, %Sec%, StopWatch.ini, Settings, Sec 121 | IniWrite, %Min%, StopWatch.ini, Settings, Min 122 | IniWrite, %Hour%, StopWatch.ini, Settings, Hour 123 | FileSetAttrib, -A, StopWatch.ini 124 | Reload 125 | } 126 | Return 127 | 128 | 129 | 130 | F9:: 131 | Start: 132 | ButtonStart: 133 | WinActivate, StopWatch 134 | Critical, On 135 | StringLeft, Old, A_MSec, 1 136 | SetTimer, Loop, 50 137 | Menu, Tray, NoIcon 138 | GuiControl, Disable, Button1 139 | GuiControlGet, Stop_Clear, , Button2 140 | If Stop_Clear = Clear 141 | GuiControl, , Button2, Stop 142 | Menu, Tray, Enable, Clear 143 | Return 144 | 145 | 146 | 147 | Loop: 148 | StringLeft, New, A_MSec, 1 149 | If (New = Old) 150 | Return 151 | StringLeft, Old, A_MSec, 1 152 | Msec += 1 153 | If Msec >= 10 154 | { 155 | Msec = 0 156 | Sec += 1 157 | } 158 | StringLen, Sec_SL, Sec 159 | If Sec_SL = 1 160 | Sec = 0%Sec% 161 | If Sec >= 60 162 | { 163 | Sec = 00 164 | Min += 01 165 | } 166 | StringLen, Min_SL, Min 167 | If Min_SL = 1 168 | Min = 0%Min% 169 | If Min >= 60 170 | { 171 | Min = 00 172 | Hour += 01 173 | } 174 | StringLen, Hour_SL, Hour 175 | If Hour_SL = 1 176 | Hour = 0%Hour% 177 | GuiControl, , Static1, %Hour%:%Min%:%Sec%.%Msec% 178 | Return 179 | 180 | 181 | 182 | F10:: 183 | ButtonStop: 184 | WinActivate, StopWatch 185 | GuiControlGet, Stop_Clear, , Button2 186 | If Stop_Clear = Clear 187 | Goto, ButtonClear 188 | SetTimer, Loop, Off 189 | GuiControl, Enable, Button1 190 | GuiControl, , Button2, Clear 191 | Menu, Tray, Icon 192 | Return 193 | 194 | 195 | 196 | F11:: 197 | ButtonClear: 198 | WinActivate, StopWatch 199 | GuiControlGet, Stop_Clear, , Button2 200 | If Stop_Clear = Stop 201 | Goto, ButtonStop 202 | GuiControl, Enable, Button1 203 | Menu, Tray, ToggleEnable, Clear 204 | Msec = 0 205 | Sec = 00 206 | Min = 00 207 | Hour = 00 208 | GuiControl, , %Time%, %Hour%:%Min%:%Sec%.%Msec% 209 | Return 210 | 211 | 212 | 213 | F12:: 214 | Goto, Exit 215 | 216 | 217 | 218 | TrayMenu: 219 | Menu, Tray, MainWindow 220 | Menu, Tray, NoStandard 221 | Menu, Tray, DeleteAll 222 | Menu, Tray, Add, StopWatch, StopWatch 223 | Menu, Tray, Add 224 | Menu, Tray, Add, Start, Start 225 | Menu, Tray, Add, Clear, ButtonClear 226 | Menu, TextColor_Black, Add, Black 227 | Menu, TextColor, Add, Black, :TextColor_Black 228 | Menu, TextColor_Black, Color, Black 229 | Menu, TextColor_White, Add, White 230 | Menu, TextColor, Add, White, :TextColor_White 231 | Menu, TextColor_White, Color, White 232 | Menu, TextColor_Red, Add, Red 233 | Menu, TextColor, Add, Red, :TextColor_Red 234 | Menu, TextColor_Red, Color, Red 235 | Menu, TextColor_Blue, Add, Blue 236 | Menu, TextColor, Add, Blue, :TextColor_Blue 237 | Menu, TextColor_Blue, Color, Blue 238 | Menu, TextColor_Green, Add, Green 239 | Menu, TextColor, Add, Green, :TextColor_Green 240 | Menu, TextColor_Green, Color, Green 241 | Menu, TextColor_Orange, Add, Orange 242 | Menu, TextColor, Add, Orange, :TextColor_Orange 243 | Menu, TextColor_Orange, Color, FF8000 244 | Menu, TextColor_Yellow, Add, Yellow 245 | Menu, TextColor, Add, Yellow, :TextColor_Yellow 246 | Menu, TextColor_Yellow, Color, Yellow 247 | Menu, TextColor_Gray, Add, Gray 248 | Menu, TextColor, Add, Gray, :TextColor_Gray 249 | Menu, TextColor_Gray, Color, Gray 250 | Menu, TextColor_Lime, Add, Lime 251 | Menu, TextColor, Add, Lime, :TextColor_Lime 252 | Menu, TextColor_Lime, Color, Lime 253 | Menu, TextColor_Navy, Add, Navy 254 | Menu, TextColor, Add, Navy, :TextColor_Navy 255 | Menu, TextColor_Navy, Color, Navy 256 | Menu, Tray, Add, Text Color, :TextColor 257 | Menu, BackgroundColor_Black, Add, Black 258 | Menu, BackgroundColor, Add, Black, :BackgroundColor_Black 259 | Menu, BackgroundColor_Black, Color, Black 260 | Menu, BackgroundColor_White, Add, White 261 | Menu, BackgroundColor, Add, White, :BackgroundColor_White 262 | Menu, BackgroundColor_White, Color, White 263 | Menu, BackgroundColor_Red, Add, Red 264 | Menu, BackgroundColor, Add, Red, :BackgroundColor_Red 265 | Menu, BackgroundColor_Red, Color, Red 266 | Menu, BackgroundColor_Blue, Add, Blue 267 | Menu, BackgroundColor, Add, Blue, :BackgroundColor_Blue 268 | Menu, BackgroundColor_Blue, Color, Blue 269 | Menu, BackgroundColor_Green, Add, Green 270 | Menu, BackgroundColor, Add, Green, :BackgroundColor_Green 271 | Menu, BackgroundColor_Green, Color, Green 272 | Menu, BackgroundColor_Orange, Add, Orange 273 | Menu, BackgroundColor, Add, Orange, :BackgroundColor_Orange 274 | Menu, BackgroundColor_Orange, Color, FF8000 275 | Menu, BackgroundColor_Yellow, Add, Yellow 276 | Menu, BackgroundColor, Add, Yellow, :BackgroundColor_Yellow 277 | Menu, BackgroundColor_Yellow, Color, Yellow 278 | Menu, BackgroundColor_Gray, Add, Gray 279 | Menu, BackgroundColor, Add, Gray, :BackgroundColor_Gray 280 | Menu, BackgroundColor_Gray, Color, Gray 281 | Menu, BackgroundColor_Lime, Add, Lime 282 | Menu, BackgroundColor, Add, Lime, :BackgroundColor_Lime 283 | Menu, BackgroundColor_Lime, Color, Lime 284 | Menu, BackgroundColor_Navy, Add, Navy 285 | Menu, BackgroundColor, Add, Navy, :BackgroundColor_Navy 286 | Menu, BackgroundColor_Navy, Color, Navy 287 | Menu, Tray, Add, Background Color, :BackgroundColor 288 | Menu, TextSize, Add, 13 289 | Menu, TextSize, Add, 15 290 | Menu, TextSize, Add, 18 291 | Menu, TextSize, Add, 20 292 | Menu, TextSize, Add, 25 293 | Menu, TextSize, Add, 30 294 | Menu, TextSize, Add, 35 295 | Menu, Tray, Add, Text Size, :TextSize 296 | Menu, Transparent, Add, On 297 | Menu, Transparent, Add, Off 298 | Menu, Tray, Add, Transparent, :Transparent 299 | Menu, Always_On_Top, Add, On 300 | Menu, Always_On_Top, Add, Off 301 | Menu, Tray, Add, Always on Top, :Always_On_Top 302 | Menu, Tray, Add, Hide, Hide 303 | Menu, Tray, Add, Show, Show 304 | Menu, Tray, Add, HotKeys, HotKeys 305 | Menu, Tray, Add, Exit, Exit 306 | Menu, Tray, Disable, Show 307 | Menu, Tray, Default, StopWatch 308 | Return 309 | 310 | 311 | StopWatch: 312 | Gui, Show, , StopWatch 313 | Return 314 | 315 | 316 | Black: 317 | If A_ThisMenu = TextColor_Black 318 | IniWrite, Black, StopWatch.ini, Settings, Text_Color 319 | If A_ThisMenu = BackgroundColor_Black 320 | IniWrite, Black, StopWatch.ini, Settings, Background_Color 321 | Gosub, Menu_Change 322 | Return 323 | 324 | 325 | White: 326 | If A_ThisMenu = TextColor_White 327 | IniWrite, White, StopWatch.ini, Settings, Text_Color 328 | If A_ThisMenu = BackgroundColor_White 329 | IniWrite, White, StopWatch.ini, Settings, Background_Color 330 | Gosub, Menu_Change 331 | Return 332 | 333 | 334 | Red: 335 | If A_ThisMenu = TextColor_Red 336 | IniWrite, Red, StopWatch.ini, Settings, Text_Color 337 | If A_ThisMenu = BackgroundColor_Red 338 | IniWrite, Red, StopWatch.ini, Settings, Background_Color 339 | Gosub, Menu_Change 340 | Return 341 | 342 | 343 | Blue: 344 | If A_ThisMenu = TextColor_Blue 345 | IniWrite, Blue, StopWatch.ini, Settings, Text_Color 346 | If A_ThisMenu = BackgroundColor_Blue 347 | IniWrite, Blue, StopWatch.ini, Settings, Background_Color 348 | Gosub, Menu_Change 349 | Return 350 | 351 | 352 | Green: 353 | If A_ThisMenu = TextColor_Green 354 | IniWrite, Green, StopWatch.ini, Settings, Text_Color 355 | If A_ThisMenu = BackgroundColor_Green 356 | IniWrite, Green, StopWatch.ini, Settings, Background_Color 357 | Gosub, Menu_Change 358 | Return 359 | 360 | 361 | Orange: 362 | If A_ThisMenu = TextColor_Orange 363 | IniWrite, FF8000, StopWatch.ini, Settings, Text_Color 364 | If A_ThisMenu = BackgroundColor_Orange 365 | IniWrite, FF8000, StopWatch.ini, Settings, Background_Color 366 | Gosub, Menu_Change 367 | Return 368 | 369 | 370 | Yellow: 371 | If A_ThisMenu = TextColor_Yellow 372 | IniWrite, Yellow, StopWatch.ini, Settings, Text_Color 373 | If A_ThisMenu = BackgroundColor_Yellow 374 | IniWrite, Yellow, StopWatch.ini, Settings, Background_Color 375 | Gosub, Menu_Change 376 | Return 377 | 378 | 379 | Gray: 380 | If A_ThisMenu = TextColor_Gray 381 | IniWrite, Gray, StopWatch.ini, Settings, Text_Color 382 | If A_ThisMenu = BackgroundColor_Gray 383 | IniWrite, Gray, StopWatch.ini, Settings, Background_Color 384 | Gosub, Menu_Change 385 | Return 386 | 387 | 388 | Lime: 389 | If A_ThisMenu = TextColor_Lime 390 | IniWrite, Lime, StopWatch.ini, Settings, Text_Color 391 | If A_ThisMenu = BackgroundColor_Lime 392 | IniWrite, Lime, StopWatch.ini, Settings, Background_Color 393 | Gosub, Menu_Change 394 | Return 395 | 396 | 397 | Navy: 398 | If A_ThisMenu = TextColor_Navy 399 | IniWrite, Navy, StopWatch.ini, Settings, Text_Color 400 | If A_ThisMenu = BackgroundColor_Navy 401 | IniWrite, Navy, StopWatch.ini, Settings, Background_Color 402 | Gosub, Menu_Change 403 | Return 404 | 405 | 406 | 13: 407 | IniWrite, 13, StopWatch.ini, Settings, Text_Size 408 | Gosub, Menu_Change 409 | Return 410 | 411 | 412 | 15: 413 | IniWrite, 15, StopWatch.ini, Settings, Text_Size 414 | Gosub, Menu_Change 415 | Return 416 | 417 | 418 | 18: 419 | IniWrite, 18, StopWatch.ini, Settings, Text_Size 420 | Gosub, Menu_Change 421 | Return 422 | 423 | 424 | 20: 425 | IniWrite, 20, StopWatch.ini, Settings, Text_Size 426 | Gosub, Menu_Change 427 | Return 428 | 429 | 430 | 25: 431 | IniWrite, 25, StopWatch.ini, Settings, Text_Size 432 | Gosub, Menu_Change 433 | Return 434 | 435 | 436 | 30: 437 | IniWrite, 30, StopWatch.ini, Settings, Text_Size 438 | Gosub, Menu_Change 439 | Return 440 | 441 | 442 | 35: 443 | IniWrite, 35, StopWatch.ini, Settings, Text_Size 444 | Gosub, Menu_Change 445 | Return 446 | 447 | 448 | On: 449 | If A_ThisMenu = Transparent 450 | IniWrite, On, StopWatch.ini, Settings, Transparent 451 | If A_ThisMenu = Always_On_Top 452 | IniWrite, On, StopWatch.ini, Settings, Always_On_Top 453 | Gosub, Menu_Change 454 | Return 455 | 456 | 457 | Off: 458 | If A_ThisMenu = Transparent 459 | IniWrite, Off, StopWatch.ini, Settings, Transparent 460 | If A_ThisMenu = Always_On_Top 461 | IniWrite, Off, StopWatch.ini, Settings, Always_On_Top 462 | Gosub, Menu_Change 463 | Return 464 | 465 | 466 | Show: 467 | Gui, Show, , StopWatch 468 | Menu, Tray, ToggleEnable, Show 469 | Menu, Tray, ToggleEnable, Hide 470 | Return 471 | 472 | 473 | Hide: 474 | Gui, Submit, StopWatch 475 | Menu, Tray, ToggleEnable, Hide 476 | Menu, Tray, ToggleEnable, Show 477 | Return 478 | 479 | 480 | HotKeys: 481 | MsgBox, 64, StopWatch, Hotkeys:`n`n Start - F9 `n Stop - F10 `n Clear - F11 `n Exit - F12 `n 482 | Return 483 | 484 | 485 | Menu_Change: 486 | WinGetPos, xPos, yPos, Width, Height, StopWatch 487 | IniWrite, %xPos%, StopWatch.ini, Settings, xPos 488 | IniWrite, %yPos%, StopWatch.ini, Settings, yPos 489 | Return 490 | 491 | 492 | Exit: 493 | GuiClose: 494 | SetTimer, UpdatedScript, Off 495 | IniWrite, 0, StopWatch.ini, Settings, Msec 496 | IniWrite, 00, StopWatch.ini, Settings, Sec 497 | IniWrite, 00, StopWatch.ini, Settings, Min 498 | IniWrite, 00, StopWatch.ini, Settings, Hour 499 | IniWrite, %Text_Size%, StopWatch.ini, Settings, Text_Size 500 | IniWrite, %Text_Color%, StopWatch.ini, Settings, Text_Color 501 | IniWrite, %Transparent%, StopWatch.ini, Settings, Transparent 502 | IniWrite, %Always_On_Top%, StopWatch.ini, Settings, Always_On_Top 503 | IniWrite, %Background_Color%, StopWatch.ini, Settings, Background_Color 504 | WinGetPos, xPos, yPos, Width, Height, StopWatch 505 | IniWrite, %xPos%, StopWatch.ini, Settings, xPos 506 | IniWrite, %yPos%, StopWatch.ini, Settings, yPos 507 | ExitApp 508 | 509 | -------------------------------------------------------------------------------- /scripts/14.复制粘贴,右键加左键.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/14.复制粘贴,右键加左键.ahk -------------------------------------------------------------------------------- /scripts/16.1.让F2更智能.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/16.1.让F2更智能.ahk -------------------------------------------------------------------------------- /scripts/16.2.天堂之门.让F2更智能.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/16.2.天堂之门.让F2更智能.ahk -------------------------------------------------------------------------------- /scripts/17.1.快速弹出U盘unplug.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/17.1.快速弹出U盘unplug.ahk -------------------------------------------------------------------------------- /scripts/18.1.关掉天网防火墙开机提示.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/18.1.关掉天网防火墙开机提示.ahk -------------------------------------------------------------------------------- /scripts/18.2.iLEMONed.显示隐藏文件扩展名.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/18.2.iLEMONed.显示隐藏文件扩展名.ahk -------------------------------------------------------------------------------- /scripts/18.3.iLEMONed.显示隐藏系统文件:.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/18.3.iLEMONed.显示隐藏系统文件:.ahk -------------------------------------------------------------------------------- /scripts/19.用快捷键得到当前选中文件的路径.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/19.用快捷键得到当前选中文件的路径.ahk -------------------------------------------------------------------------------- /scripts/2.热字符串.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/2.热字符串.ahk -------------------------------------------------------------------------------- /scripts/20.AHK + 迅雷快车,轻松下载 QQ 音乐.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/20.AHK + 迅雷快车,轻松下载 QQ 音乐.ahk -------------------------------------------------------------------------------- /scripts/21.AHK+GVIM 打造 “专心致志文本编辑器”/Readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/21.AHK+GVIM 打造 “专心致志文本编辑器”/Readme.txt -------------------------------------------------------------------------------- /scripts/21.AHK+GVIM 打造 “专心致志文本编辑器”/_vimrc: -------------------------------------------------------------------------------- 1 | "begin my configuration 2 | set guifont=Courier_New:h12:cANSI 3 | colorscheme desert 4 | set ignorecase 5 | "end my configuration 6 | 7 | set nocompatible 8 | source $VIMRUNTIME/vimrc_example.vim 9 | source $VIMRUNTIME/mswin.vim 10 | behave mswin 11 | 12 | "Full Screen" 13 | set number 14 | set guioptions-=m "Remove the menubar 15 | set guioptions-=T "Remove the toolbar 16 | set guioptions-=r "Remove the right-side-scroll bar V_SCROLL 17 | "Spell checking" 18 | set spell 19 | 20 | set diffexpr=MyDiff() 21 | function MyDiff() 22 | let opt = '-a --binary ' 23 | if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif 24 | if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif 25 | let arg1 = v:fname_in 26 | if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif 27 | let arg2 = v:fname_new 28 | if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif 29 | let arg3 = v:fname_out 30 | if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif 31 | let eq = '' 32 | if $VIMRUNTIME =~ ' ' 33 | if &sh =~ '\ ' . arg3 . eq 43 | endfunction 44 | -------------------------------------------------------------------------------- /scripts/21.AHK+GVIM 打造 “专心致志文本编辑器”/gvimfull.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/21.AHK+GVIM 打造 “专心致志文本编辑器”/gvimfull.ahk -------------------------------------------------------------------------------- /scripts/22.1.获取屏幕上某块区域的位置.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/22.1.获取屏幕上某块区域的位置.ahk -------------------------------------------------------------------------------- /scripts/22.2.删除迅雷文件.ahk: -------------------------------------------------------------------------------- 1 | Loop 2 | { 3 | IfExist C:\windows\system32\cid_store.dat 4 | FileDelete, C:\windows\system32\cid_store.dat 5 | sleep 10000 6 | } 7 | -------------------------------------------------------------------------------- /scripts/23.Sofast AHK 监视网页更新/Compare.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/23.Sofast AHK 监视网页更新/Compare.ahk -------------------------------------------------------------------------------- /scripts/23.Sofast AHK 监视网页更新/SoFast AHK.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/23.Sofast AHK 监视网页更新/SoFast AHK.ahk -------------------------------------------------------------------------------- /scripts/23.Sofast AHK 监视网页更新/urls.txt: -------------------------------------------------------------------------------- 1 | http://www.appinn.com/ 2 | http://jandan.net/ -------------------------------------------------------------------------------- /scripts/24.开机自动运行程序的延迟启动 Runlater/Run.ahk: -------------------------------------------------------------------------------- 1 | folder = F:\Run 2 | 3 | Loop, %folder%\*.lnk 4 | { 5 | runwait %folder%\%A_LoopFileName% 6 | } 7 | 8 | ExitApp -------------------------------------------------------------------------------- /scripts/24.开机自动运行程序的延迟启动 Runlater/Run2.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/24.开机自动运行程序的延迟启动 Runlater/Run2.ahk -------------------------------------------------------------------------------- /scripts/24.开机自动运行程序的延迟启动 Runlater/Run2.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/24.开机自动运行程序的延迟启动 Runlater/Run2.exe -------------------------------------------------------------------------------- /scripts/24.开机自动运行程序的延迟启动 Runlater/RunSetting.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/24.开机自动运行程序的延迟启动 Runlater/RunSetting.ini -------------------------------------------------------------------------------- /scripts/25.用 AHK 打造自己的 Firefox Portable.ahk: -------------------------------------------------------------------------------- 1 | run %A_ScriptDir%\firefox.exe -profile %A_ScriptDir%\Profiles -------------------------------------------------------------------------------- /scripts/3.Folder Menu/Config.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/3.Folder Menu/Config.ini -------------------------------------------------------------------------------- /scripts/3.Folder Menu/Folder Menu.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/3.Folder Menu/Folder Menu.ahk -------------------------------------------------------------------------------- /scripts/4.1.计时器.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/4.1.计时器.ahk -------------------------------------------------------------------------------- /scripts/4.2.计时器.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/4.2.计时器.ahk -------------------------------------------------------------------------------- /scripts/5.屏幕键盘 KeyboardOnScreen.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/5.屏幕键盘 KeyboardOnScreen.ahk -------------------------------------------------------------------------------- /scripts/6.1.颜色神偷.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/6.1.颜色神偷.ahk -------------------------------------------------------------------------------- /scripts/6.2.颜色神偷.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/6.2.颜色神偷.ahk -------------------------------------------------------------------------------- /scripts/6.3.Helfee 带预览的颜色神偷.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/6.3.Helfee 带预览的颜色神偷.ahk -------------------------------------------------------------------------------- /scripts/7.1.录制鼠标键盘动作Recorder/Anchor.ahk: -------------------------------------------------------------------------------- 1 | /* 2 | Function: Anchor 3 | 4 | Defines how controls should be automatically positioned 5 | relatively to the new dimensions of a GUI when resized. 6 | 7 | Parameters: 8 | cl - a control HWND, associated variable name or ClassNN to operate on 9 | a - one or more of the anchors: 'x', 'y', 'w' (width) and 'h' (height), 10 | optionally followed by a relative factor, e.g. x h0.5 11 | r - true to redraw controls i.e. for GroupBox and Button types 12 | 13 | About: Examples 14 | - xy: bounds a control to the bottom-left edge of the window 15 | - w0.5: any change in the width of the window will resize 16 | the width of the control on a 2:1 (1:0.5) pixel ratio 17 | - h: same as the above but on a 1:1 ratio for height 18 | 19 | About: License 20 | - Version 4.1 by Titan 21 | - GNU General Public License 3.0 or higher 22 | 23 | */ 24 | 25 | Anchor(cl, a = "", r = false) { 26 | static d, g, sd = 12, sg := 13, sc = 0, k = 0xffff, iz = 0, bx, by 27 | If !iz 28 | iz := 1, VarSetCapacity(g, sg * 99, 0), VarSetCapacity(d, sd * 200, 0) 29 | Gui, %A_Gui%:+LastFound 30 | If cl is xdigit 31 | c = %cl% 32 | Else { 33 | GuiControlGet, c, Hwnd, %cl% 34 | If ErrorLevel 35 | ControlGet, c, Hwnd, , %cl% 36 | } 37 | If !(A_Gui or c) and a 38 | Return 39 | cg := (A_Gui - 1) * sg 40 | Loop, %sc% 41 | If NumGet(d, z := (A_Index - 1) * sd) = c { 42 | p := NumGet(d, z + 4, "UInt64"), l := 1 43 | , x := p >> 48, y := p >> 32 & k, w := p >> 16 & k, h := p & k 44 | , gw := (gh := NumGet(g, cg + 1)) >> 16, gh &= k 45 | If a = 46 | Break 47 | Loop, Parse, a, xywh 48 | If A_Index > 1 49 | { 50 | v := SubStr(a, l, 1) 51 | If v in y,h 52 | n := A_GuiHeight - gh 53 | Else n := A_GuiWidth - gw 54 | b = %A_LoopField% 55 | %v% += n * (b + 0 ? b : 1), l += StrLen(A_LoopField) + 1 56 | } 57 | DllCall("SetWindowPos", "UInt", c, "Int", 0 58 | , "Int", x, "Int", y, "Int", w, "Int", h, "Int", 4) 59 | If r 60 | VarSetCapacity(rc, 16, 0), NumPut(x, rc, 0, "Int"), NumPut(y, rc, 4, "Int") 61 | , NumPut(w + x, rc, 8, "Int"), NumPut(h + y, rc, 12, "Int") 62 | , DllCall("InvalidateRect", "UInt", WinExist(), "UInt", &rc, "UInt", true) 63 | Return 64 | } 65 | ControlGetPos, x, y, w, h, , ahk_id %c% 66 | If !p { 67 | If NumGet(g, cg, "UChar") != A_Gui { 68 | WinGetPos, , , , gh 69 | gh -= A_GuiHeight 70 | VarSetCapacity(bdr, 63, 0) 71 | , DllCall("GetWindowInfo", "UInt", WinExist(), "UInt", &bdr) 72 | , NumPut(A_Gui, g, cg, "UChar") 73 | , NumPut(A_GuiWidth << 16 | A_GuiHeight, g, cg + 1, "UInt") 74 | , NumPut((bx := NumGet(bdr, 48)) << 32 75 | | (by := gh - NumGet(bdr, 52)), g, cg + 5, "UInt64") 76 | } 77 | Else b := NumGet(g, cg + 5, "UInt64"), bx := b >> 32, by := b & 0xffffffff 78 | } 79 | s := x - bx << 48 | y - by << 32 | w << 16 | h 80 | If p 81 | NumPut(s, d, z + 4, "UInt64") 82 | Else NumPut(c, d, sc * 12), NumPut(s, d, sc * 12 + 4, "UInt64"), sc++ 83 | } 84 | -------------------------------------------------------------------------------- /scripts/7.1.录制鼠标键盘动作Recorder/Recorder.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/7.1.录制鼠标键盘动作Recorder/Recorder.ahk -------------------------------------------------------------------------------- /scripts/7.1.录制鼠标键盘动作Recorder/grep.ahk: -------------------------------------------------------------------------------- 1 | /* 2 | Title: Global Regular Expression Match 3 | Find all matches of a regex in a string. 4 | 5 | ------------------------------------------------------------ 6 | 7 | Function: grep 8 | Sets the output variable to all the entire or specified subpattern matches and returns their offsets within the haystack. 9 | 10 | Parameters: 11 | h - haystack 12 | n - regex 13 | v - output variable (ByRef) 14 | s - (optional) starting position (default: 1) 15 | e - (optional) subpattern to save in the output variable, where 0 is the entire match (default: 0) 16 | d - (optional) delimiter - the character that seperates multiple values (default: EOT (0x04)) 17 | 18 | Returns: 19 | The position (or offset) of each entire match. 20 | 21 | Remarks: 22 | Since multiple values are seperated with the delimiter any found within the haystack will be removed. 23 | 24 | ------------------------------------------------------------ 25 | 26 | Function: grepcsv 27 | Similar to the grep function but returned offsets and all matches including their subpatterns are given in CSV format. 28 | 29 | Parameters: 30 | h - haystack 31 | n - regex 32 | v - output variable (ByRef) 33 | s - (optional) starting position (default: 1) 34 | 35 | Returns: 36 | The position (or offset) of each entire match. 37 | 38 | Remarks: 39 | All fields in the output variable and returned value are delimited by double-quote characters. 40 | 41 | ------------------------------------------------------------ 42 | 43 | About: License 44 | - Version 2.0 by Titan . 45 | - GNU General Public License 3.0 or higher 46 | 47 | */ 48 | 49 | grep(h, n, ByRef v, s = 1, e = 0, d = "") { 50 | v = 51 | StringReplace, h, h, %d%, , All 52 | Loop 53 | If s := RegExMatch(h, n, c, s) 54 | p .= d . s, s += StrLen(c), v .= d . (e ? c%e% : c) 55 | Else Return, SubStr(p, 2), v := SubStr(v, 2) 56 | } 57 | 58 | grepcsv(h, n, ByRef v, s = 1) { 59 | v = 60 | x = 0 61 | xp = 1 62 | Loop { 63 | If xp := InStr(n, "(", "", xp) 64 | x += SubStr(n, xp + 1, 1) != "?", xp++ 65 | Else { 66 | Loop 67 | If s := RegExMatch(h, n, c, s) { 68 | p = %p%`n"%s%" 69 | s += StrLen(c) 70 | StringReplace, c, c, ", "", All 71 | v = %v%`n"%c%" 72 | Loop, %x% { 73 | StringReplace, cx, c%A_Index%, ", "", All 74 | v = %v%,"%cx%" 75 | } 76 | } Else Return, SubStr(p, 2), v := SubStr(v, 2) 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /scripts/7.2.以今天日期建立文件夹.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/7.2.以今天日期建立文件夹.ahk -------------------------------------------------------------------------------- /scripts/8.快速进入注册表.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/8.快速进入注册表.ahk -------------------------------------------------------------------------------- /scripts/9.1.让鼠标移动一像素.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/9.1.让鼠标移动一像素.ahk -------------------------------------------------------------------------------- /scripts/9.2.让鼠标移动一像素.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/9.2.让鼠标移动一像素.ahk -------------------------------------------------------------------------------- /scripts/Backup.ahk: -------------------------------------------------------------------------------- 1 | FileCopyDir, .\Database, C:\Program Files\Alstom\eTrain\Projects\YangPu\Database , 1 2 | ExitApp -------------------------------------------------------------------------------- /scripts/Download/7za.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Download/7za.exe -------------------------------------------------------------------------------- /scripts/Download/Copy of Download.AHK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Download/Copy of Download.AHK -------------------------------------------------------------------------------- /scripts/Download/Download.AHK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Download/Download.AHK -------------------------------------------------------------------------------- /scripts/Download/Download.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Download/Download.exe -------------------------------------------------------------------------------- /scripts/Download/Test.txt: -------------------------------------------------------------------------------- 1 | 2 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 3 | 4 | Processing archive: ivdf_fusebundle_nt_en.zip 5 | 6 | Error: Can not open file as archive 7 | 8 | 9 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 10 | 11 | Processing archive: ivdf_fusebundle_nt_en.zip 12 | 13 | Testing aebb.dll 14 | Testing aecore.dll 15 | Testing aeemu.dll 16 | Testing aegen.dll Unsupported Method 17 | Testing aehelp.dll Unsupported Method 18 | Testing aeheur.dll Unsupported Method 19 | Testing aeoffice.dll Unsupported Method 20 | Testing aepack.dll Unsupported Method 21 | Testing aerdl.dll Unsupported Method 22 | Testing aescn.dll Unsupported Method 23 | Testing aescript.dll Unsupported Method 24 | Testing aeset.dat Unsupported Method 25 | Testing aevdf.dll Unsupported Method 26 | Testing antivir0.vdf Unsupported Method 27 | Testing antivir1.vdf 28 | Testing antivir2.vdf 29 | Testing antivir3.vdf 30 | Testing avewin32.dll 31 | Testing avpack32.dll 32 | Testing avrep.dll 33 | Testing unacev2.dll 34 | 35 | Sub items Errors: 11 36 | 37 | 38 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 39 | 40 | Processing archive: ivdf_fusebundle_nt_en.zip 41 | 42 | Testing aebb.dll 43 | Testing aecore.dll 44 | Testing aeemu.dll 45 | Testing aegen.dll Unsupported Method 46 | Testing aehelp.dll Unsupported Method 47 | Testing aeheur.dll Unsupported Method 48 | Testing aeoffice.dll Unsupported Method 49 | Testing aepack.dll Unsupported Method 50 | Testing aerdl.dll Unsupported Method 51 | Testing aescn.dll Unsupported Method 52 | Testing aescript.dll Unsupported Method 53 | Testing aeset.dat Unsupported Method 54 | Testing aevdf.dll Unsupported Method 55 | Testing antivir0.vdf Unsupported Method 56 | Testing antivir1.vdf 57 | Testing antivir2.vdf 58 | Testing antivir3.vdf 59 | Testing avewin32.dll 60 | Testing avpack32.dll 61 | Testing avrep.dll 62 | Testing unacev2.dll 63 | 64 | Sub items Errors: 11 65 | 66 | 67 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 68 | 69 | Processing archive: ivdf_fusebundle_nt_en.zip 70 | 71 | Testing aebb.dll 72 | Testing aecore.dll 73 | Testing aeemu.dll 74 | Testing aegen.dll Unsupported Method 75 | Testing aehelp.dll Unsupported Method 76 | Testing aeheur.dll Unsupported Method 77 | Testing aeoffice.dll Unsupported Method 78 | Testing aepack.dll Unsupported Method 79 | Testing aerdl.dll Unsupported Method 80 | Testing aescn.dll Unsupported Method 81 | Testing aescript.dll Unsupported Method 82 | Testing aeset.dat Unsupported Method 83 | Testing aevdf.dll Unsupported Method 84 | Testing antivir0.vdf Unsupported Method 85 | Testing antivir1.vdf 86 | Testing antivir2.vdf 87 | Testing antivir3.vdf 88 | Testing avewin32.dll 89 | Testing avpack32.dll 90 | Testing avrep.dll 91 | Testing unacev2.dll 92 | 93 | Sub items Errors: 11 94 | 95 | 96 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 97 | 98 | Processing archive: ivdf_fusebundle_nt_en.zip 99 | 100 | Testing aebb.dll 101 | Testing aecore.dll 102 | Testing aeemu.dll 103 | Testing aegen.dll Unsupported Method 104 | Testing aehelp.dll Unsupported Method 105 | Testing aeheur.dll Unsupported Method 106 | Testing aeoffice.dll Unsupported Method 107 | Testing aepack.dll Unsupported Method 108 | Testing aerdl.dll Unsupported Method 109 | Testing aescn.dll Unsupported Method 110 | Testing aescript.dll Unsupported Method 111 | Testing aeset.dat Unsupported Method 112 | Testing aevdf.dll Unsupported Method 113 | Testing antivir0.vdf Unsupported Method 114 | Testing antivir1.vdf 115 | Testing antivir2.vdf 116 | Testing antivir3.vdf 117 | Testing avewin32.dll 118 | Testing avpack32.dll 119 | Testing avrep.dll 120 | Testing unacev2.dll 121 | 122 | Sub items Errors: 11 123 | 124 | 125 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 126 | 127 | Processing archive: ivdf_fusebundle_nt_en.zip 128 | 129 | Testing aebb.dll 130 | Testing aecore.dll 131 | Testing aeemu.dll 132 | Testing aegen.dll Unsupported Method 133 | Testing aehelp.dll Unsupported Method 134 | Testing aeheur.dll Unsupported Method 135 | Testing aeoffice.dll Unsupported Method 136 | Testing aepack.dll Unsupported Method 137 | Testing aerdl.dll Unsupported Method 138 | Testing aescn.dll Unsupported Method 139 | Testing aescript.dll Unsupported Method 140 | Testing aeset.dat Unsupported Method 141 | Testing aevdf.dll Unsupported Method 142 | Testing antivir0.vdf Unsupported Method 143 | Testing antivir1.vdf 144 | Testing antivir2.vdf 145 | Testing antivir3.vdf 146 | Testing avewin32.dll 147 | Testing avpack32.dll 148 | Testing avrep.dll 149 | Testing unacev2.dll 150 | 151 | Sub items Errors: 11 152 | 153 | 154 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 155 | 156 | Processing archive: ivdf_fusebundle_nt_en.zip 157 | 158 | Testing aebb.dll 159 | Testing aecore.dll 160 | Testing aeemu.dll 161 | Testing aegen.dll Unsupported Method 162 | Testing aehelp.dll Unsupported Method 163 | Testing aeheur.dll Unsupported Method 164 | Testing aeoffice.dll Unsupported Method 165 | Testing aepack.dll Unsupported Method 166 | Testing aerdl.dll Unsupported Method 167 | Testing aescn.dll Unsupported Method 168 | Testing aescript.dll Unsupported Method 169 | Testing aeset.dat Unsupported Method 170 | Testing aevdf.dll Unsupported Method 171 | Testing antivir0.vdf Unsupported Method 172 | Testing antivir1.vdf 173 | Testing antivir2.vdf 174 | Testing antivir3.vdf 175 | Testing avewin32.dll 176 | Testing avpack32.dll 177 | Testing avrep.dll 178 | Testing unacev2.dll 179 | 180 | Sub items Errors: 11 181 | 182 | 183 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 184 | 185 | Processing archive: ivdf_fusebundle_nt_en.zip 186 | 187 | Testing aebb.dll 188 | Testing aecore.dll 189 | Testing aeemu.dll 190 | Testing aegen.dll Unsupported Method 191 | Testing aehelp.dll Unsupported Method 192 | Testing aeheur.dll Unsupported Method 193 | Testing aeoffice.dll Unsupported Method 194 | Testing aepack.dll Unsupported Method 195 | Testing aerdl.dll Unsupported Method 196 | Testing aescn.dll Unsupported Method 197 | Testing aescript.dll Unsupported Method 198 | Testing aeset.dat Unsupported Method 199 | Testing aevdf.dll Unsupported Method 200 | Testing antivir0.vdf Unsupported Method 201 | Testing antivir1.vdf 202 | Testing antivir2.vdf 203 | Testing antivir3.vdf 204 | Testing avewin32.dll 205 | Testing avpack32.dll 206 | Testing avrep.dll 207 | Testing unacev2.dll 208 | 209 | Sub items Errors: 11 210 | 211 | 212 | 7-Zip (A) 4.65 Copyright (c) 1999-2009 Igor Pavlov 2009-02-03 213 | 214 | Processing archive: ivdf_fusebundle_nt_en.zip 215 | 216 | Testing aebb.dll 217 | Testing aecore.dll 218 | Testing aeemu.dll 219 | Testing aegen.dll Unsupported Method 220 | Testing aehelp.dll Unsupported Method 221 | Testing aeheur.dll Unsupported Method 222 | Testing aeoffice.dll Unsupported Method 223 | Testing aepack.dll Unsupported Method 224 | Testing aerdl.dll Unsupported Method 225 | Testing aescn.dll Unsupported Method 226 | Testing aescript.dll Unsupported Method 227 | Testing aeset.dat Unsupported Method 228 | Testing aevdf.dll Unsupported Method 229 | Testing antivir0.vdf Unsupported Method 230 | Testing antivir1.vdf 231 | Testing antivir2.vdf 232 | Testing antivir3.vdf 233 | Testing avewin32.dll 234 | Testing avpack32.dll 235 | Testing avrep.dll 236 | Testing unacev2.dll 237 | 238 | Sub items Errors: 11 239 | 240 | -------------------------------------------------------------------------------- /scripts/Download/wget.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Download/wget.exe -------------------------------------------------------------------------------- /scripts/Knorr.AHK: -------------------------------------------------------------------------------- 1 | ; AutoHotkey Version: 1.x 2 | ; Language: English 3 | ; Platform: WinXP.SP2 4 | ; Author: FreemanZY 5 | ; 6 | ; Script Function: 7 | ; Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder) 8 | ; 9 | 10 | #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. 11 | SendMode Input ; Recommended for new scripts due to its superior speed and reliability. 12 | SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. 13 | 14 | ============================================================ 15 | Send, !{PrintScreen} 16 | MsgBox, %A_ScriptDir% 17 | Run, ".PngOptimizer.exe" 18 | WinWaitActive, "PngOptimizer 1.6 ? 2002/2007 Hadrien Nilsson - psydk.org" 19 | Send, ^{v} 20 | -------------------------------------------------------------------------------- /scripts/List.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/List.ahk -------------------------------------------------------------------------------- /scripts/MMAP/MMAP.AHK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/MMAP/MMAP.AHK -------------------------------------------------------------------------------- /scripts/MMAP/MMAP_Configuration.INI: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/MMAP/MMAP_Configuration.INI -------------------------------------------------------------------------------- /scripts/Mac.ahk: -------------------------------------------------------------------------------- 1 | runwait, %comspec% /c ipconfig /all > c:\mac.txt, ,hide 2 | ExitApp -------------------------------------------------------------------------------- /scripts/Phone/0.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/0.wav -------------------------------------------------------------------------------- /scripts/Phone/1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/1.wav -------------------------------------------------------------------------------- /scripts/Phone/2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/2.wav -------------------------------------------------------------------------------- /scripts/Phone/3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/3.wav -------------------------------------------------------------------------------- /scripts/Phone/4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/4.wav -------------------------------------------------------------------------------- /scripts/Phone/5.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/5.wav -------------------------------------------------------------------------------- /scripts/Phone/6.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/6.wav -------------------------------------------------------------------------------- /scripts/Phone/7.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/7.wav -------------------------------------------------------------------------------- /scripts/Phone/8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/8.wav -------------------------------------------------------------------------------- /scripts/Phone/9.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/9.wav -------------------------------------------------------------------------------- /scripts/Phone/phone.ahk: -------------------------------------------------------------------------------- 1 | SoundPlay, 1.wav, Wait 2 | SoundPlay, 3.wav, Wait 3 | SoundPlay, 7.wav, Wait 4 | SoundPlay, 0.wav, Wait 5 | SoundPlay, 1.wav, Wait 6 | SoundPlay, 6.wav, Wait 7 | SoundPlay, 7.wav, Wait 8 | SoundPlay, 3.wav, Wait 9 | SoundPlay, 4.wav, Wait 10 | SoundPlay, 5.wav, Wait 11 | SoundPlay, 0.wav, Wait -------------------------------------------------------------------------------- /scripts/Phone/井号.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/井号.wav -------------------------------------------------------------------------------- /scripts/Phone/星号.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Phone/星号.wav -------------------------------------------------------------------------------- /scripts/PrintScreen/PngOptimizer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/PrintScreen/PngOptimizer.exe -------------------------------------------------------------------------------- /scripts/PrintScreen/PngOptimizer.ini: -------------------------------------------------------------------------------- 1 | ; PngOptimizer configuration file 2 | ; This file is encoded in UTF-8 3 | 4 | [Engine] 5 | BackupOldPngFiles = 1 6 | KeepInterlacing = 0 7 | KeepBackgroundColor = 0 8 | AvoidGreyWithSimpleTransparency = 1 9 | 10 | [Screenshots] 11 | UseDefaultDir = 1 12 | CustomDir = 13 | MaximizeCompression = 1 14 | AskForFileName = 1 15 | 16 | [Window] 17 | X = 486 18 | Y = 181 19 | Width = 482 20 | Height = 300 21 | -------------------------------------------------------------------------------- /scripts/PrintScreen/PrintScreen.AHK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/PrintScreen/PrintScreen.AHK -------------------------------------------------------------------------------- /scripts/PrintScreen/PrintScreen.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/PrintScreen/PrintScreen.exe -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/ShellTrayHelper.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/ShellTrayTaskBarInfo/ShellTrayHelper.ahk -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/ShellTrayTaskBarInfo.ahk: -------------------------------------------------------------------------------- 1 | ; AutoHotkey Version: 1.0.47.06 2 | ; Platform: WinXP 3 | ; Author: Yonken 4 | ; Last updated: 2008-12-12 5 | ; Copyright: 6 | ; You are allowed to include the source code in your own product(in any form) when 7 | ; your product is released in binary form. 8 | ; You are allowed to copy/modify/distribute the code in any way you want except 9 | ; you can NOT modify/remove the copyright details at the top of each script file. 10 | 11 | ; References: 12 | ; http://blog.csdn.net/hailongchang/archive/2008/12/05/3454569.aspx 13 | ; http://blog.csdn.net/hailongchang/archive/2008/12/10/3490353.aspx 14 | ; http://www.codeproject.com/KB/shell/taskbarsorter.aspx 15 | 16 | #NoEnv 17 | #NoTrayIcon 18 | #SingleInstance ignore 19 | SetWorkingDir %A_ScriptDir% 20 | 21 | #Include ShellTrayHelper.ahk 22 | #Include TaskBarHelper.ahk 23 | 24 | if A_OSVersion in WIN_NT4,WIN_95,WIN_98,WIN_ME 25 | { 26 | MsgBox This script only works under Windows 2000/XP or later 27 | ExitApp 28 | } 29 | 30 | OnExit, MyExit 31 | 32 | g_szAppName := "ShellTrayTaskBarInfo" 33 | g_szAppVersion := "1.0" 34 | 35 | ; **** Do NOT modify following variable when script is running! **** 36 | g_szShellTrayName := "ShellTray" 37 | g_szTaskBarName := "TaskBar" 38 | 39 | g_szToolbarName_1 := g_szShellTrayName ; To visit current selected info, use g_szToolbarName_%g_nSelectedInfo% 40 | g_szToolbarName_2 := g_szTaskBarName 41 | 42 | ; Main window 43 | 44 | Gui, +Resize +MinSize850x95 45 | Gui, Add, Button, gBtnRefresh, Refresh 46 | Gui, Add, Button, xp+150 yp gSendLeftClick, SendLeftClick 47 | Gui, Add, Button, xp+150 yp gMoveLeft, << MoveLeft 48 | Gui, Add, Button, xp+100 yp gMoveRight, MoveRight >> 49 | Gui, Add, GroupBox, xp+100 yp-5 w220 h30, 50 | Gui, Add, Radio, xp+10 yp+10 vg_nSelectedInfo gSwitchInfoView Checked, ShellTrayInfo 51 | Gui, Add, Radio, xp+120 yp gSwitchInfoView, TaskBarInfo 52 | Gui, Add, Checkbox, xp+100 yp gSwitchShowHiddenItems vg_bShowHiddenItems, ShowHiddenItems 53 | 54 | Gui, Add, ListView 55 | , xp-730 yp+30 w875 h350 cBlue Grid NoSortHdr -Multi -LV0x10 AltSubmit vInfoListView gInfoListViewEvent 56 | , Icon|Tips|Process|Window 57 | 58 | g_ImageListID := IL_Create(10) 59 | LV_SetImageList(g_ImageListID) 60 | 61 | Gui, Show, w900 h400, %g_szAppName% %g_szAppVersion% by Yonken [http://yonken.blogcn.com] 62 | Gosub, SwitchInfoView 63 | Return 64 | 65 | GuiEscape: 66 | GuiClose: 67 | ExitApp 68 | 69 | GuiSize: 70 | if( A_EventInfo = 1 ) 71 | return 72 | GuiControl, Move, InfoListView, % "W" . (A_GuiWidth - 20) . " H" . (A_GuiHeight - 50) 73 | Return 74 | 75 | MyExit: ; Do the cleanup stuffs on exit 76 | TW_Cleanup(g_szShellTrayName) 77 | TW_Cleanup(g_szTaskBarName) 78 | ExitApp 79 | Return 80 | 81 | SwitchInfoView: 82 | Gui, Submit, NoHide 83 | if(g_nSelectedInfo = 1) ; that is ShellTrayInfo 84 | { 85 | GuiControl, Show, SendLeftClick 86 | } 87 | else ; that is TaskBarInfo 88 | { 89 | GuiControl, Hide, SendLeftClick 90 | } 91 | GoSub, BtnRefresh 92 | Return 93 | 94 | SwitchShowHiddenItems: 95 | Gui, Submit, NoHide 96 | GoSub, BtnRefresh 97 | Return 98 | 99 | BtnRefresh: 100 | GuiControl, Disable, Refresh 101 | GuiControl, Disable, SendLeftClick 102 | GuiControl, Disable, << MoveLeft 103 | GuiControl, Disable, MoveRight >> 104 | GuiControl, Disable, ShellTrayInfo 105 | GuiControl, Disable, TaskBarInfo 106 | 107 | pUpdateFunction := % "Update" . g_szToolbarName_%g_nSelectedInfo% . "Info" 108 | %pUpdateFunction%() 109 | 110 | GuiControl, Enable, Refresh 111 | GuiControl, Enable, SendLeftClick 112 | GuiControl, Enable, << MoveLeft 113 | GuiControl, Enable, MoveRight >> 114 | GuiControl, Enable, ShellTrayInfo 115 | GuiControl, Enable, TaskBarInfo 116 | Return 117 | 118 | SendLeftClick: 119 | nBtnIndex := LV_GetNext() 120 | if(nBtnIndex) 121 | LV_GetText(nBtnIndex, nBtnIndex, 1) 122 | else 123 | return 124 | if( GetShellTrayToolbarTrayDataByIndex( g_szShellTrayName, nBtnIndex, pTRAYDATA ) ) 125 | LeftClickShellTrayToolbarButton(pTRAYDATA) 126 | Return 127 | 128 | MoveLeft: 129 | nSelectedItemIndex := LV_GetNext() 130 | if(nSelectedItemIndex) 131 | LV_GetText(nBtnIndex, nSelectedItemIndex, 1) 132 | else 133 | return 134 | if( nBtnIndex > 0 ) 135 | { 136 | TW_MoveToolbarButton( g_szToolbarName_%g_nSelectedInfo%, nBtnIndex, nBtnIndex-1 ) 137 | GoSub, BtnRefresh 138 | LV_Modify(nSelectedItemIndex-1, "Select") 139 | } 140 | Return 141 | 142 | MoveRight: 143 | nSelectedItemIndex := LV_GetNext() 144 | if(nSelectedItemIndex) 145 | LV_GetText(nBtnIndex, nSelectedItemIndex, 1) 146 | else 147 | return 148 | if( nBtnIndex < TW_GetToolbarButtonCount(g_szToolbarName_%g_nSelectedInfo%)-1 ) 149 | { 150 | TW_MoveToolbarButton( g_szToolbarName_%g_nSelectedInfo%, nBtnIndex, nBtnIndex+1 ) 151 | GoSub, BtnRefresh 152 | LV_Modify(nSelectedItemIndex+1, "Select") 153 | } 154 | Return 155 | 156 | InfoListViewEvent: 157 | if(A_EventInfo <= 0 || g_nSelectedInfo != 1 || A_EventInfo > LV_GetCount() ) 158 | return 159 | LV_GetText(nBtnIndex, A_EventInfo, 1) 160 | if ( A_GuiEvent = "DoubleClick" ) 161 | { 162 | if( GetShellTrayToolbarTrayDataByIndex( g_szShellTrayName, nBtnIndex, pTRAYDATA ) ) 163 | LeftDbClickShellTrayToolbarButton(pTRAYDATA) 164 | } 165 | else if( A_GuiEvent = "RightClick" ) 166 | { 167 | if( GetShellTrayToolbarTrayDataByIndex( g_szShellTrayName, nBtnIndex, pTRAYDATA ) ) 168 | RightClickShellTrayToolbarButton(pTRAYDATA) 169 | } 170 | Return 171 | 172 | UpdateShellTrayInfo() 173 | { 174 | Global g_ImageListID, g_szShellTrayName, InfoListView, g_bShowHiddenItems 175 | nRtn := 0 176 | GuiControl, -Redraw, InfoListView 177 | LV_Delete() 178 | nButtonCount := TW_GetToolbarButtonCount( g_szShellTrayName ) 179 | Loop, % nButtonCount 180 | { 181 | if( !TW_GetToolbarButton( g_szShellTrayName, A_Index-1, pTBBUTTON ) ) 182 | { 183 | OutputDebug, GetShellTrayToolbarButton failed! 184 | } 185 | else if( !GetShellTrayToolbarTrayDataByBtn( pTBBUTTON, pTRAYDATA ) ) 186 | { 187 | OutputDebug, GetShellTrayToolbarTrayDataByBtn failed! 188 | } 189 | else 190 | { 191 | hIcon := _TD_hIcon(pTRAYDATA) 192 | ;szTips := _TD_szTips(pTRAYDATA) 193 | if( !TW_GetToolbarButtonText(g_szShellTrayName, _TB_idCommand(pTBBUTTON), szTips) ) 194 | szTips := "" 195 | szProcess := _TD_szExePath(pTRAYDATA) 196 | hWnd := _TD_hWnd(pTRAYDATA) 197 | nProcessId := GetWindowProcessID(hWnd) 198 | if( IsTBHidden(pTBBUTTON) ) 199 | { 200 | if(g_bShowHiddenItems) 201 | szTips .= "[Hidden]" 202 | else 203 | continue 204 | } 205 | SetFormat, integer, hex 206 | hWnd += 0 207 | SetFormat, integer, d 208 | DetectHiddenWindows, on 209 | WinGetTitle, szWndTitle, ahk_id %hWnd% 210 | DetectHiddenWindows, off 211 | nIconNumber := DllCall("ImageList_ReplaceIcon", "UInt", g_ImageListID, "int", -1, "UInt", hIcon) + 1 212 | LV_Add("Icon" . nIconNumber, A_Index-1, szTips, "[" . nProcessId . "] " . szProcess, "[" . hWnd . "] " . szWndTitle) 213 | } 214 | } 215 | 216 | GuiControl, +Redraw, InfoListView 217 | LV_ModifyCol() 218 | return nRtn 219 | } 220 | 221 | UpdateTaskBarInfo() 222 | { 223 | Global g_ImageListID, g_szTaskBarName, InfoListView, g_bShowHiddenItems 224 | nRtn := 0 225 | GuiControl, -Redraw, InfoListView 226 | LV_Delete() 227 | nButtonCount := TW_GetToolbarButtonCount( g_szTaskBarName ) 228 | Loop, % nButtonCount 229 | { 230 | if( !TW_GetToolbarButton( g_szTaskBarName, A_Index-1, pTBBUTTON ) ) 231 | { 232 | OutputDebug, GetTaskBarToolbarButton failed! 233 | } 234 | else 235 | { 236 | hWnd := 0 237 | hIcon := 0 238 | nProcessId := -1 239 | nIconNumber := 0 240 | szProcess := "" 241 | szWndTitle := "" 242 | 243 | hWnd := GetTaskBarButtonBuddyWindowHandle(g_szTaskBarName, pTBBUTTON) 244 | 245 | if(!hWnd && !g_bShowHiddenItems) 246 | continue 247 | 248 | if( !TW_GetToolbarButtonText(g_szTaskBarName, _TB_idCommand(pTBBUTTON), szTips) ) 249 | szTips := "" 250 | 251 | if(hWnd != 0) 252 | { 253 | hIcon := GetWindowHICON( hWnd ) 254 | 255 | if( IsTBHidden(pTBBUTTON) ) 256 | szTips .= " [Hidden]" 257 | WinGet, szProcess, ProcessName, ahk_id %hWnd% 258 | nProcessId := GetWindowProcessID(hWnd) 259 | 260 | DetectHiddenWindows, on 261 | WinGetTitle, szWndTitle, ahk_id %hWnd% 262 | DetectHiddenWindows, off 263 | 264 | SetFormat, integer, hex 265 | hWnd += 0 266 | SetFormat, integer, d 267 | 268 | if(hIcon != 0) 269 | nIconNumber := DllCall("ImageList_ReplaceIcon", "UInt", g_ImageListID, "int", -1, "UInt", hIcon) + 1 270 | } 271 | 272 | if(hWnd != 0) 273 | LV_Add(hIcon ? "Icon" . nIconNumber : "Icon999999", A_Index-1, szTips, "[" . nProcessId . "] " . szProcess, "[" . hWnd . "] " . szWndTitle) 274 | else 275 | LV_Add("Icon999999", A_Index-1, szTips, "-", "-") 276 | } 277 | } 278 | 279 | GuiControl, +Redraw, InfoListView 280 | LV_ModifyCol() 281 | return nRtn 282 | } 283 | -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/TaskBarHelper.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/ShellTrayTaskBarInfo/TaskBarHelper.ahk -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/Utils/Kernel32.ahk: -------------------------------------------------------------------------------- 1 | ; 2 | ; AutoHotkey Version: 1.0.47.06 3 | ; Platform: WinXP 4 | ; Author: Yonken 5 | ; 6 | ; Wrappers of Windows Apis Reside In Kernel32.dll 7 | 8 | ; Do NOT modify following variables! 9 | 10 | PROCESS_TERMINATE := 0x0001 11 | PROCESS_CREATE_THREAD := 0x0002 12 | PROCESS_SET_SESSIONID := 0x0004 13 | PROCESS_VM_OPERATION := 0x0008 14 | PROCESS_VM_READ := 0x0010 15 | PROCESS_VM_WRITE := 0x0020 16 | PROCESS_DUP_HANDLE := 0x0040 17 | PROCESS_CREATE_PROCESS := 0x0080 18 | PROCESS_SET_QUOTA := 0x0100 19 | PROCESS_SET_INFORMATION := 0x0200 20 | PROCESS_QUERY_INFORMATION := 0x0400 21 | PROCESS_SUSPEND_RESUME := 0x0800 22 | PROCESS_ALL_ACCESS := (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF) 23 | 24 | PAGE_NOACCESS := 0x01 25 | PAGE_READONLY := 0x02 26 | PAGE_READWRITE := 0x04 27 | PAGE_WRITECOPY := 0x08 28 | PAGE_EXECUTE := 0x10 29 | PAGE_EXECUTE_READ := 0x20 30 | PAGE_EXECUTE_READWRITE := 0x40 31 | PAGE_EXECUTE_WRITECOPY := 0x80 32 | PAGE_GUARD := 0x100 33 | PAGE_NOCACHE := 0x200 34 | PAGE_WRITECOMBINE := 0x400 35 | MEM_COMMIT := 0x1000 36 | MEM_RESERVE := 0x2000 37 | MEM_DECOMMIT := 0x4000 38 | MEM_RELEASE := 0x8000 39 | MEM_FREE := 0x10000 40 | MEM_PRIVATE := 0x20000 41 | MEM_MAPPED := 0x40000 42 | MEM_RESET := 0x80000 43 | MEM_TOP_DOWN := 0x100000 44 | MEM_WRITE_WATCH := 0x200000 45 | MEM_PHYSICAL := 0x400000 46 | MEM_LARGE_PAGES := 0x20000000 47 | MEM_4MB_PAGES := 0x80000000 48 | 49 | CP_ACP := 0 ; default to ANSI code page 50 | CP_OEMCP := 1 ; default to OEM code page 51 | CP_MACCP := 2 ; default to MAC code page 52 | CP_THREAD_ACP := 3 ; current thread's ANSI code page 53 | CP_SYMBOL := 42 ; SYMBOL translations 54 | 55 | CP_UTF7 := 65000 ; UTF-7 translation 56 | CP_UTF8 := 65001 ; UTF-8 translation 57 | 58 | ; HANDLE OpenProcess( 59 | ; DWORD dwDesiredAccess, 60 | ; BOOL bInheritHandle, 61 | ; DWORD dwProcessId 62 | ; ); 63 | 64 | OpenProcess(dwDesiredAccess, bInheritHandle, dwProcessId) 65 | { 66 | return DllCall("OpenProcess", "UInt", dwDesiredAccess, "Int", bInheritHandle, "UInt", dwProcessId) 67 | } 68 | 69 | ; LPVOID VirtualAllocEx( 70 | ; HANDLE hProcess, 71 | ; LPVOID lpAddress, 72 | ; SIZE_T dwSize, 73 | ; DWORD flAllocationType, 74 | ; DWORD flProtect 75 | ; ); 76 | 77 | VirtualAllocEx(hProcess, lpAddress, dwSize, flAllocationType, flProtect) 78 | { 79 | return DllCall("VirtualAllocEx", "UInt", hProcess, "UInt", lpAddress, "UInt", dwSize, "UInt", flAllocationType, "UInt", flProtect) 80 | } 81 | 82 | ; BOOL VirtualFreeEx( 83 | ; HANDLE hProcess, 84 | ; LPVOID lpAddress, 85 | ; SIZE_T dwSize, 86 | ; DWORD dwFreeType 87 | ; ); 88 | 89 | VirtualFreeEx(hProcess, lpAddress, dwSize, dwFreeTyp) 90 | { 91 | return DllCall("VirtualFreeEx", "UInt", hProcess, "UInt", lpAddress, "UInt", dwSize, "UInt", dwFreeTyp) 92 | } 93 | 94 | ; BOOL CloseHandle( 95 | ; HANDLE hObject 96 | ; ); 97 | 98 | CloseHandle(hObject) 99 | { 100 | return DllCall("CloseHandle", "UInt", hObject) 101 | } 102 | 103 | ; BOOL ReadProcessMemory( 104 | ; HANDLE hProcess, 105 | ; LPCVOID lpBaseAddress, 106 | ; LPVOID lpBuffer, 107 | ; SIZE_T nSize, 108 | ; SIZE_T* lpNumberOfBytesRead 109 | ; ); 110 | 111 | ReadProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesRead) 112 | { 113 | return DllCall("ReadProcessMemory", "UInt", hProcess, "UInt", lpBaseAddress, "UInt", lpBuffer, "UInt", nSize, "UInt", lpNumberOfBytesRead) 114 | } 115 | 116 | ; BOOL WriteProcessMemory( 117 | ; HANDLE hProcess, 118 | ; LPVOID lpBaseAddress, 119 | ; LPCVOID lpBuffer, 120 | ; SIZE_T nSize, 121 | ; SIZE_T* lpNumberOfBytesWritten 122 | ; ); 123 | 124 | WriteProcessMemory(hProcess, lpBaseAddress, lpBuffer, nSize, lpNumberOfBytesWritten) 125 | { 126 | return DllCall("WriteProcessMemory", "UInt", hProcess, "UInt", lpBaseAddress, "UInt", lpBuffer, "UInt", nSize, "UInt", lpNumberOfBytesWritten) 127 | } 128 | 129 | ; DWORD GetLastError(void); 130 | 131 | GetLastError() 132 | { 133 | return DllCall("GetLastError") 134 | } 135 | 136 | ; int WideCharToMultiByte( 137 | ; UINT CodePage, // code page 138 | ; DWORD dwFlags, // performance and mapping flags 139 | ; LPCWSTR lpWideCharStr, // wide-character string 140 | ; int cchWideChar, // number of chars in string. 141 | ; LPSTR lpMultiByteStr, // buffer for new string 142 | ; int cbMultiByte, // size of buffer 143 | ; LPCSTR lpDefaultChar, // default for unmappable chars 144 | ; LPBOOL lpUsedDefaultChar // set when default char used 145 | ; ); 146 | 147 | WideCharToMultiByte(CodePage, dwFlags, lpWideCharStr, cchWideChar, lpMultiByteStr, cbMultiByte, lpDefaultChar, lpUsedDefaultChar) 148 | { 149 | return DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", dwFlags, "UInt", lpWideCharStr, "Int", cchWideChar, "UInt", lpMultiByteStr, "Int", cbMultiByte, "UInt", lpDefaultChar, "UInt", lpUsedDefaultChar) 150 | } 151 | 152 | ; int MultiByteToWideChar( 153 | ; UINT CodePage, // code page 154 | ; DWORD dwFlags, // character-type options 155 | ; LPCSTR lpMultiByteStr, // string to map 156 | ; int cbMultiByte, // number of bytes in string 157 | ; LPWSTR lpWideCharStr, // wide-character buffer 158 | ; int cchWideChar // size of buffer 159 | ; ); 160 | 161 | MultiByteToWideChar(CodePage, dwFlags, lpMultiByteStr, cbMultiByte, lpWideCharStr, cchWideChar) 162 | { 163 | return DllCall("MultiByteToWideChar", "UInt", CodePage, "UInt", dwFlags, "UInt", lpMultiByteStr, "Int", cbMultiByte, "UInt", lpWideCharStr, "Int", cchWideChar) 164 | } 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/Utils/ToolbarWrapper.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/ShellTrayTaskBarInfo/Utils/ToolbarWrapper.ahk -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/Utils/User32.ahk: -------------------------------------------------------------------------------- 1 | ; 2 | ; AutoHotkey Version: 1.0.47.06 3 | ; Platform: WinXP 4 | ; Author: Yonken 5 | ; 6 | ; Wrappers of Windows Apis Reside In User32.dll 7 | 8 | ; Do NOT modify following variables! 9 | 10 | WM_USER := 0x0400 11 | 12 | MK_LBUTTON := 0x0001 13 | MK_RBUTTON := 0x0002 14 | MK_SHIFT := 0x0004 15 | MK_CONTROL := 0x0008 16 | MK_MBUTTON := 0x0010 17 | MK_XBUTTON1 := 0x0020 18 | MK_XBUTTON2 := 0x0040 19 | 20 | WM_PAINT := 0x000F 21 | 22 | WM_GETICON := 0x007F 23 | WM_SETICON := 0x0080 24 | 25 | ICON_SMALL := 0 26 | ICON_BIG := 1 27 | ICON_SMALL2 := 2 28 | 29 | WM_MOUSEFIRST := 0x0200 30 | WM_MOUSEMOVE := 0x0200 31 | WM_LBUTTONDOWN := 0x0201 32 | WM_LBUTTONUP := 0x0202 33 | WM_LBUTTONDBLCLK := 0x0203 34 | WM_RBUTTONDOWN := 0x0204 35 | WM_RBUTTONUP := 0x0205 36 | WM_RBUTTONDBLCLK := 0x0206 37 | WM_MBUTTONDOWN := 0x0207 38 | WM_MBUTTONUP := 0x0208 39 | WM_MBUTTONDBLCLK := 0x0209 40 | WM_MOUSEWHEEL := 0x020A 41 | WM_XBUTTONDOWN := 0x020B 42 | WM_XBUTTONUP := 0x020C 43 | WM_XBUTTONDBLCLK := 0x020D 44 | WM_MOUSELAST := 0x020D 45 | WM_MOUSELAST := 0x020A 46 | WM_MOUSELAST := 0x0209 47 | 48 | WM_SIZING := 0x0214 49 | WM_CAPTURECHANGED := 0x0215 50 | WM_MOVING := 0x0216 51 | 52 | TB_ENABLEBUTTON := WM_USER + 1 53 | TB_CHECKBUTTON := WM_USER + 2 54 | TB_PRESSBUTTON := WM_USER + 3 55 | TB_HIDEBUTTON := WM_USER + 4 56 | TB_INDETERMINATE := WM_USER + 5 57 | TB_MARKBUTTON := WM_USER + 6 58 | TB_ISBUTTONENABLED := WM_USER + 9 59 | TB_ISBUTTONCHECKED := WM_USER + 10 60 | TB_ISBUTTONPRESSED := WM_USER + 11 61 | TB_ISBUTTONHIDDEN := WM_USER + 12 62 | TB_ISBUTTONINDETERMINATE := WM_USER + 13 63 | TB_ISBUTTONHIGHLIGHTED := WM_USER + 14 64 | TB_SETSTATE := WM_USER + 17 65 | TB_GETSTATE := WM_USER + 18 66 | TB_ADDBITMAP := WM_USER + 19 67 | TB_DELETEBUTTON := WM_USER + 22 68 | TB_GETBUTTON := WM_USER + 23 69 | TB_BUTTONCOUNT := WM_USER + 24 70 | TB_COMMANDTOINDEX := WM_USER + 25 71 | TB_GETBUTTONTEXTA := WM_USER + 45 72 | TB_GETBUTTONTEXTW := WM_USER + 75 73 | TB_GETBUTTONTEXT := TB_GETBUTTONTEXTA 74 | TB_SETSTYLE := WM_USER + 56 75 | TB_GETSTYLE := WM_USER + 57 76 | TB_MOVEBUTTON := WM_USER + 82 77 | 78 | TBSTATE_CHECKED := 0x01 79 | TBSTATE_PRESSED := 0x02 80 | TBSTATE_ENABLED := 0x04 81 | TBSTATE_HIDDEN := 0x08 82 | TBSTATE_INDETERMINATE := 0x10 83 | 84 | GCL_MENUNAME := -8 85 | GCL_HBRBACKGROUND := -10 86 | GCL_HCURSOR := -12 87 | GCL_HICON := -14 88 | GCL_HMODULE := -16 89 | GCL_CBWNDEXTRA := -18 90 | GCL_CBCLSEXTRA := -20 91 | GCL_WNDPROC := -24 92 | GCL_STYLE := -26 93 | GCW_ATOM := -32 94 | GCL_HICONSM := -34 95 | 96 | ; DWORD GetWindowThreadProcessId( 97 | ; HWND hWnd, 98 | ; LPDWORD lpdwProcessId 99 | ; ); 100 | 101 | GetWindowThreadProcessId(hWnd, lpdwProcessId) 102 | { 103 | return DllCall("GetWindowThreadProcessId", "UInt", hWnd, "UInt", lpdwProcessId) 104 | } 105 | 106 | ; HWND FindWindow( 107 | ; LPCTSTR lpClassName, 108 | ; LPCTSTR lpWindowName 109 | ; ); 110 | 111 | FindWindow(lpClassName, lpWindowName) 112 | { 113 | return DllCall("FindWindow" 114 | , lpClassName = 0 ? "UInt" : "Str", lpClassName 115 | , lpWindowName = 0 ? "UInt" : "Str", lpWindowName) 116 | } 117 | 118 | ; HWND FindWindowEx( 119 | ; HWND hwndParent, 120 | ; HWND hwndChildAfter, 121 | ; LPCTSTR lpszClass, 122 | ; LPCTSTR lpszWindow 123 | ; ); 124 | 125 | FindWindowEx(hwndParent, hwndChildAfter, lpszClass, lpszWindow) 126 | { 127 | return DllCall("FindWindowEx", "UInt", hwndParent, "UInt", hwndChildAfter 128 | , lpszClass = 0 ? "UInt" : "Str", lpszClass 129 | , lpszWindow = 0 ? "UInt" : "Str", lpszWindow) 130 | } 131 | 132 | ; LRESULT SendMessage( 133 | ; HWND hWnd, 134 | ; UINT Msg, 135 | ; WPARAM wParam, 136 | ; LPARAM lParam 137 | ; ); 138 | 139 | SendMessage(hWnd, Msg, wParam, lParam) 140 | { 141 | return DllCall("SendMessage", "UInt", hWnd, "UInt", Msg, "UInt", wParam, "UInt", lParam) 142 | } 143 | 144 | ; BOOL PostMessage( 145 | ; HWND hWnd, 146 | ; UINT Msg, 147 | ; WPARAM wParam, 148 | ; LPARAM lParam 149 | ; ); 150 | 151 | PostMessage(hWnd, Msg, wParam, lParam) 152 | { 153 | return DllCall("PostMessage", "UInt", hWnd, "UInt", Msg, "UInt", wParam, "UInt", lParam) 154 | } 155 | 156 | ; HDC GetDC( 157 | ; HWND hWnd // handle to window 158 | ; ); 159 | 160 | GetDC(hWnd) 161 | { 162 | return DllCall("GetDC", "UInt", hWnd) 163 | } 164 | 165 | ; HDC GetWindowDC( 166 | ; HWND hWnd // handle to window 167 | ; ); 168 | 169 | GetWindowDC(hWnd) 170 | { 171 | return DllCall("GetWindowDC", "UInt", hWnd) 172 | } 173 | 174 | ; int ReleaseDC( 175 | ; HWND hWnd, // handle to window 176 | ; HDC hDC // handle to DC 177 | ; ); 178 | 179 | ReleaseDC(hWnd, hDC) 180 | { 181 | return DllCall("ReleaseDC", "UInt", hWnd, "UInt", hDC) 182 | } 183 | 184 | ; int FillRect( 185 | ; HDC hDC, // handle to DC 186 | ; CONST RECT *lprc, // rectangle 187 | ; HBRUSH hbr // handle to brush 188 | ; ); 189 | 190 | FillRect(hDC, lprc, hbr) 191 | { 192 | return DllCall("FillRect", "UInt", hDC, "UInt", lprc, "UInt", hbr) 193 | } 194 | 195 | ; BOOL UpdateWindow( 196 | ; HWND hWnd // handle to window 197 | ; ); 198 | 199 | UpdateWindow(hWnd) 200 | { 201 | return DllCall("UpdateWindow", "UInt", hWnd) 202 | } 203 | 204 | ; BOOL DrawIcon( 205 | ; HDC hDC, 206 | ; int X, 207 | ; int Y, 208 | ; HICON hIcon 209 | ; ); 210 | 211 | DrawIcon(hDC, X, Y, hIcon) 212 | { 213 | return DllCall("DrawIcon", "UInt", hDC, "Int", X, "Int", Y, "UInt", hIcon) 214 | } 215 | 216 | ; DWORD GetClassLong( 217 | ; HWND hWnd, 218 | ; int nIndex 219 | ; ); 220 | 221 | GetClassLong(hWnd, nIndex) 222 | { 223 | return DllCall("GetClassLong", "UInt", hWnd, "Int", nIndex) 224 | } 225 | 226 | -------------------------------------------------------------------------------- /scripts/ShellTrayTaskBarInfo/Utils/Utils.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/ShellTrayTaskBarInfo/Utils/Utils.ahk -------------------------------------------------------------------------------- /scripts/Web.AHK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/scripts/Web.AHK -------------------------------------------------------------------------------- /scripts/html.ahk: -------------------------------------------------------------------------------- 1 | xunhuan=95 2 | num=92 3 | Loop, 100 4 | { 5 | FileAppend, NO.%num%`n, d:\Test.txt 6 | xunhuan:=xunhuan+1 7 | num:=num+1 8 | } -------------------------------------------------------------------------------- /scripts/验证码识别.ahk: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | ********************************** 4 | 验证码识别 v2.0 By:feiyue 5 | ********************************** 6 | 7 | 为了解决:http://www.123shipin.com/register.php 8 | 9 | 使用说明:先按F1选择验证码范围,然后F4识别,先自动生成字库 10 | 11 | */ 12 | 13 | 14 | #NoEnv 15 | #SingleInstance Force 16 | SetBatchLines, -1 17 | CoordMode, Pixel 18 | CoordMode, Mouse 19 | CoordMode, ToolTip 20 | SetTitleMatchMode, 2 21 | SetWorkingDir, %A_ScriptDir% 22 | IniRead, wt, a.ini, 0, wt, %A_Space% 23 | IniRead, pos, a.ini, 0, pos, %A_Space% 24 | 25 | okzhi:=10 ;//阀值设置非常关键,学习取10,使用取25 26 | 27 | Return 28 | 29 | 30 | Esc:: ;//Esc为重启脚本热键 31 | IfWinExist, %A_ScriptName% ahk_class Notepad 32 | { 33 | PostMessage, 0x111, 3 34 | Sleep, 500 35 | } 36 | Reload 37 | Return 38 | 39 | 40 | Pause::Pause ;//暂停脚本热键,用于调试 41 | 42 | 43 | F2::Run, Notepad.exe %A_ScriptName% ;//编辑脚本热键 44 | 45 | 46 | F1:: ;//选择验证码的范围的启动热键,用鼠标选择 47 | Gui,9: Destroy 48 | Gui,9: +LastFound +AlwaysOnTop 49 | WinSet, Transparent, 10 50 | Gui,9: -Caption +ToolWindow +E0x08000000 51 | Gui,9: Show, NA x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% 52 | ;----------------------------- 53 | Gui,8: Destroy 54 | Gui,8: +LastFound +AlwaysOnTop 55 | WinSet, Transparent, 100 56 | Gui,8: -Caption +ToolWindow +E0x08000000 57 | Gui,8: Color, Red 58 | down=0 59 | Loop { 60 | Sleep, 50 61 | MouseGetPos, x, y 62 | if (down=0) 63 | { 64 | ToolTip, 按住鼠标左键选择范围!`n取消请按【Ctrl】键 65 | if GetKeyState("LButton","P") 66 | down:=1, x1:=x, y1:=y 67 | if GetKeyState("Ctrl","P") 68 | Break 69 | } 70 | else 71 | { 72 | ToolTip, 松开鼠标左键确定范围! 73 | w:=Abs(x-x1), h:=Abs(y-y1) 74 | x:=x1nW-1 or top>nH-1 or right<0 or end<0) 139 | Return, "" 140 | if (left<0) 141 | left=0 142 | if (right>nW-1) 143 | right:=nW-1 144 | if (top<0) 145 | top=0 146 | if (end>nH-1) 147 | end:=nH-1 148 | width:=right-left+1, height:=end-top+1 149 | 150 | if !DllCall("GetModuleHandle", "str", "gdiplus") 151 | DllCall("LoadLibrary", "str", "gdiplus") 152 | VarSetCapacity(si, 16, 0), si := Chr(1) 153 | DllCall("gdiplus\GdiplusStartup", "uintP", pToken, "uint", &si, "uint", 0) 154 | 155 | mDC := DllCall("CreateCompatibleDC", "uint", 0) 156 | NumPut(VarSetCapacity(bi, 40, 0), bi) 157 | NumPut(nW, bi, 4) 158 | NumPut(nH, bi, 8) 159 | NumPut(32, NumPut(1, bi, 12, "UShort"), 0, "Ushort") 160 | NumPut(0, bi,16) 161 | hBuffer := DllCall("gdi32\CreateDIBSection", "uint", mDC 162 | , "uint", &bi, "uint", 0, "uintP", pBits, "uint", 0, "uint", 0) 163 | 164 | oldObject := DllCall("SelectObject", "uint", mDC, "uint", hBuffer) 165 | screenDC := DllCall("GetDC", "uint", 0) 166 | DllCall("gdi32\BitBlt", "uint", mDC, "int", 0, "int", 0, "int", nW 167 | , "int", nH, "uint", screenDC, "int", 0, "int", 0, "uint", 0x00CC0020) 168 | DllCall("ReleaseDC", "uint", 0, "uint", screenDC) 169 | 170 | DllCall("gdiplus\GdipCreateBitmapFromHBITMAP" 171 | , "uint", hBuffer, "uint", 0, "uintP", pBitmap) 172 | 173 | DllCall("SelectObject", "uint", mDC, "uint", oldObject) 174 | DllCall("DeleteObject", "uint", hBuffer) 175 | DllCall("DeleteDC", "uint", screenDC) 176 | DllCall("DeleteDC", "uint", mDC) 177 | 178 | VarSetCapacity(Rect, 16) 179 | NumPut(0, Rect, 0, "uint") 180 | NumPut(0, Rect, 4, "uint") 181 | NumPut(nW, Rect, 8, "uint") 182 | NumPut(nH, Rect, 12, "uint") 183 | 184 | VarSetCapacity(BitmapData, 21, 0) 185 | DllCall("Gdiplus\GdipBitmapLockBits", "uint", pBitmap 186 | , "uint", &Rect, "uint", 3, "int", 0x26200a, "uint", &BitmapData) 187 | Stride:=NumGet(BitmapData, 8) 188 | Scan0:=NumGet(BitmapData, 16) 189 | 190 | ;//生成图像的灰度数组 191 | arr:=[] 192 | Loop, %width% 193 | arr[A_Index]:=[] 194 | j:=stride-width*4 195 | i:=top*stride+left*4-4-j 196 | Loop, %height% { 197 | y:=A_Index, i+=j 198 | Loop, %width% 199 | c:=NumGet(Scan0+0,i+=4) 200 | , arr[A_Index][y]:=((c>>16&0xFF)*299 201 | +(c>>8&0xFF)*587+(c&0xFF)*114)//1000 202 | } 203 | 204 | DllCall("gdiplus\GdipBitmapUnlockBits", "uint", pBitmap, "uint", &BitmapData) 205 | DllCall("gdiplus\GdipDisposeImage", "uint", pBitmap) 206 | 207 | DllCall("gdiplus\GdiplusShutdown", "uint", pToken) 208 | if (hModule:=DllCall("GetModuleHandle", "str", "gdiplus")) 209 | DllCall("FreeLibrary", "uint", hModule) 210 | Return, arr ;//返回数组 211 | } 212 | 213 | 214 | YanZhengMa(x1,y1,x2,y2,okzhi=10000,zishu=4) 215 | { 216 | cc:=getc(x1,y1,x2,y2,nW,nH) ;//首先得到图像的灰度数组 217 | 218 | ;//准备好GUI窗口用于查看归一化效果 219 | k:=(zishu+1)//2 220 | IfWinExist, 查看归一化效果 221 | Gui, Show, NA 222 | else 223 | { 224 | Gui, +LastFoundExist 225 | IfWinExist 226 | Gui, Destroy 227 | Gui, +AlwaysOnTop 228 | Loop, % k*2 { 229 | j:=Mod(A_Index,k)=1 ? "xm":"x+15" 230 | Gui, Add, Edit, %j% w150 r17 231 | } 232 | x:=A_ScreenWidth-(150+15)*k-15+3 233 | Gui, Show, NA y0 x%x%, 查看归一化效果 234 | } 235 | 236 | ;;【第一步】,采用Ostu法二值化,并初步过滤椒盐噪点 237 | 238 | ;//生成灰度统计直方图,趁机过滤椒盐噪点(与周围八点都有色差) 239 | pp:=[], SeCha:=50 ;//色差阀值越小过滤越多 240 | Loop, 256 241 | pp[A_Index-1]:=0 242 | Loop, %nH% { 243 | j:=A_Index 244 | Loop, %nW% { 245 | i:=A_Index, c:=cc[i][j] 246 | Loop { 247 | if (i=1 or j=1 or i=nW or j=nH) 248 | Break 249 | if Abs(c-cc[i-1][j])fmax) 293 | fmax:=sb, ek:=k 294 | } 295 | ;//利用阀值将图像数组二值化为黑白图像 296 | Loop, %nH% { 297 | j:=A_Index 298 | Loop, %nW% ;//如果是黑底白字,这改为0:1进行反色 299 | cc[A_Index][j]:=cc[A_Index][j]<=ek ? 1:0 300 | } 301 | 302 | ;;【第二步】,简单降噪处理,过滤孤立黑点 303 | 304 | Loop, %nH% { 305 | j:=A_Index 306 | Loop, %nW% { 307 | i:=A_Index 308 | if (cc[i][j]=0) 309 | Continue 310 | if !( cc[i-1][j-1]=1 || cc[i][j-1]=1 311 | || cc[i+1][j-1]=1 || cc[i-1][j]=1 || cc[i+1][j]=1 312 | || cc[i-1][j+1]=1 || cc[i][j+1]=1 || cc[i+1][j+1]=1 ) 313 | cc[i][j]:=0 314 | } 315 | } 316 | 317 | ;;【第三步】,下面是我创新的快速连通域分析 318 | 319 | ;//初始化一个与图像完全对照的标记数组 320 | aa:=[], n:=1 321 | Loop, %nW% 322 | aa[A_Index]:=[] 323 | Loop, %nH% { 324 | j:=A_Index 325 | Loop, %nW% 326 | aa[A_Index][j]:=n++ 327 | } 328 | ;//只用一次扫描便完成标记和生成连通等价关系表 329 | ks:="-" 330 | Loop, %nH% { 331 | j:=A_Index 332 | Loop, %nW% { 333 | i:=A_Index 334 | if (cc[i][j]=0) 335 | Continue 336 | ;//a取左边、上边、左上、右上的最小值 337 | a:=cc[i-1][j]=1 ? aa[i-1][j] : aa[i][j] 338 | if (cc[i][j-1]=1 and a>aa[i][j-1]) 339 | a:=aa[i][j-1] 340 | else 341 | { 342 | if (cc[i-1][j-1]=1 and a>aa[i-1][j-1]) 343 | a:=aa[i-1][j-1] 344 | if (cc[i+1][j-1]=1 and a>aa[i+1][j-1]) 345 | a:=aa[i+1][j-1] 346 | } 347 | if (cc[i+1][j]=1) 348 | { 349 | aa[i][j]:=a 350 | Continue 351 | } 352 | ;//达到一条线段的最右边,就开始向左生成连通等价关系表 353 | Loop, %i% { 354 | if (cc[i][j]=0) 355 | Break 356 | ;//用不含等号记录新连通域的一个起始标记 357 | if !RegExMatch(ks,"[\-=]" a "[\-=]") 358 | ks.=a "-" 359 | aa[i][j]:=a, a2:=aa[i][j-1] 360 | if (cc[i][j-1]=1 and a<>a2) 361 | and !InStr(ks,"-" a "=" a2 "-") 362 | ks.=a "=" a2 "-" 363 | else 364 | { 365 | a1:=aa[i-1][j-1], a3:=aa[i+1][j-1] 366 | if (cc[i-1][j-1]=1 and a<>a1) 367 | and !InStr(ks,"-" a "=" a1 "-") 368 | ks.=a "=" a1 "-" 369 | if (cc[i+1][j-1]=1 and a<>a3) 370 | and !InStr(ks,"-" a "=" a3 "-") 371 | ks.=a "=" a3 "-" 372 | } 373 | i-- 374 | } 375 | } 376 | } 377 | ;//整理连通等价关系表 378 | zs:="-", num:=0, Stack:=[] ;//用数组模拟堆栈 379 | Loop, Parse, ks, - 380 | { 381 | v:=A_LoopField 382 | if (v="") or InStr(v,"=") or InStr(zs,"-" v ">") 383 | Continue 384 | ;//初始的 v 代表新连通域的一个起始标记 385 | s:="-" v "-", ds:=ks, num++ ;//连通域总共找到了num个 386 | Loop { 387 | re1=-(\d+)=%v%- 388 | re2=-%v%=(\d+)- 389 | if RegExMatch(ds,re1,r) or RegExMatch(ds,re2,r) 390 | { 391 | if !InStr(s,"-" r1 "-") 392 | s.=r1 "-", Stack.Insert(r1) 393 | StringReplace, ds, ds, %r%, -, All 394 | } 395 | else if Stack.MaxIndex() 396 | v:=Stack.Remove() 397 | else Break ;//循环直到堆栈为空,s可防止重复入栈 398 | } 399 | Sort, s, U D- 400 | s:=Trim(s,"-") 401 | Loop, Parse, s, - 402 | zs.=A_LoopField ">" num "-" 403 | } 404 | ;//整理连通域标记,并统计连通域的点数直方图 405 | pN:=[] 406 | Loop, %num% 407 | pN[A_Index]:=0 408 | Loop, %nH% { 409 | j:=A_Index 410 | Loop, %nW% { 411 | i:=A_Index 412 | if RegExMatch(zs,"-" aa[i][j] ">(\d+)-",r) 413 | aa[i][j]:=r1, pN[r1]++ 414 | else aa[i][j]:=0 415 | } 416 | } 417 | zs:="-" 418 | Loop, %num% 419 | if (pN[A_Index]>=3) ;//连通域分析可以过滤部分噪点 420 | zs.=A_Index "-" 421 | 422 | 423 | ;;【第四步】,两种方法自适应分割数字 424 | 425 | ss:=wenzi:="", liantongmode:=0, wz_index:=ii:=0 426 | Loop { 427 | if (++ii>nW) 428 | { 429 | ;//竖直分割的份数小于参数zishu时自动换到连通域分割 430 | if (wz_index=20) 474 | { 475 | wz_index++ ;//已处理文字数加一 476 | wz_%wz_index%:=ss ;//保存每个字的字符串数据 477 | wz_%wz_index%_w:=zW ;//保存每个字的宽度作为合并的依据 478 | } 479 | ;//如果是连通域分割,清理当前的连通域 480 | if (liantongmode=1) 481 | { 482 | StringReplace, zs, zs, -%wenzi%-, - 483 | wenzi:="", ii:=0 484 | } 485 | ss= ;//清空为下一个字做准备 486 | } 487 | 488 | ;//竖直分割的份数大于参数zishu时,考虑合并被切为两半的数字 489 | if (wz_index>zishu and liantongmode=0) 490 | { 491 | w:=0 492 | Loop, %wz_index% 493 | w+=wz_%A_index%_w ;//得到所有宽度之和 494 | w:=Round(w/zishu) ;//得到字的平均宽度 495 | Loop, %wz_index% { 496 | k:=A_Index, i:=k-1, j:=k+1 497 | if (wz_%k%_wzW) 536 | { 537 | ;//使宽度和高度相等,缩放图像不致变形 538 | k1:=(zH-zW)//2, k2:=zH-zW-k1, zW:=zH 539 | t1:=t2:="" 540 | Loop, %k1% 541 | t1.="0" 542 | Loop, %k2% 543 | t2.="0" 544 | s:=SubStr(ts,1,-1), ts:="" 545 | Loop, Parse, s, `n 546 | ts.=t1 . A_LoopField . t2 . "`n" 547 | } 548 | s:=RegExReplace(ts,"\n") 549 | gc:=[], fx:=zW/16, fy:=zH/16 550 | Loop, 16 { 551 | i:=A_Index, gc[i]:=[] 552 | Loop, 16 { 553 | j:=A_Index, x:=i*fx, y:=j*fy 554 | m:=x-Floor(x), n:=y-Floor(y) 555 | x:=Floor(x), y:=Floor(y) 556 | ;// l:左;u:上;r:右;d:下 557 | lu:=(x=0 or y=0) ? 0:SubStr(s,(y-1)*zW+x,1) 558 | ld:=(x=0 or y=zH) ? 0:SubStr(s,y*zW+x,1) 559 | ru:=(x=zW or y=0) ? 0:SubStr(s,(y-1)*zW+x+1,1) 560 | rd:=(x=zW or y=zH) ? 0:SubStr(s,y*zW+x+1,1) 561 | pix:=(1-m)*(1-n)*lu+(1-m)*n*ld+m*(1-n)*ru+m*n*rd 562 | gc[i][j]:=( pix>0.33 ) ? 1:0 ;//这个阀值也可取0.5 563 | } 564 | } 565 | 566 | ;//生成16*16=256长度的加权特征数组 567 | mb:=[], k:=0 568 | Loop, 16 { 569 | j:=A_Index 570 | Loop, 16 { 571 | i:=A_Index, m:=0 572 | m+=gc[i-1][j-1] 573 | m+=gc[i][j-1] 574 | m+=gc[i+1][j-1] 575 | m+=gc[i-1][j] 576 | m+=gc[i][j] 577 | m+=gc[i+1][j] 578 | m+=gc[i-1][j+1] 579 | m+=gc[i][j+1] 580 | m+=gc[i+1][j+1] 581 | mb[++k]:=m 582 | } 583 | } 584 | 585 | ;;//与字库中的模板比较,得到差距最小的 586 | small:=1000000, wz:="" 587 | Loop, read, 字库.txt 588 | { 589 | v:=A_LoopReadLine 590 | IfNotInString, v, =, Continue 591 | StringSplit, r, v, = 592 | n1:=n2:=n3:=0 ;//允许每个模板左右平移一次来匹配 593 | Loop, Parse, r2 594 | { 595 | i:=A_Index, k:=A_LoopField 596 | n1+=Abs(k-mb[i])<4 ? 0:1 597 | if Mod(i,16)<>1 ;//模板左移一位 598 | n2+=Abs(k-mb[i-1])<4 ? 0:1 599 | if Mod(i,16)<>0 ;//模板右移一位 600 | n3+=Abs(k-mb[i+1])<4 ? 0:1 601 | if (n1>small and n2>small and n3>small) 602 | Break 603 | } 604 | n1:=n1"") 646 | cs.=v "`n`n" 647 | } 648 | cs.=k 649 | FileDelete, 字库.txt 650 | FileAppend, %cs%, 字库.txt 651 | } 652 | Return, result 653 | } 654 | 655 | 656 | ;//程序结束 -------------------------------------------------------------------------------- /tools/AHK Script Manager/AHK Script Manager.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/AHK Script Manager.ahk -------------------------------------------------------------------------------- /tools/AHK Script Manager/ReadMe.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/ReadMe.txt -------------------------------------------------------------------------------- /tools/AHK Script Manager/includes/LibINI.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/includes/LibINI.ahk -------------------------------------------------------------------------------- /tools/AHK Script Manager/resources/ahk.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/resources/ahk.ico -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/!GoodClock.ahk: -------------------------------------------------------------------------------- 1 | ;------------------------------------------------------------------------------- 2 | ; 13:52 13-4-2007, by Bold, parts from autohotkey forum. 3 | ; 4 | ; Shows clock, batterypower, mem load and cpu load on top of screen 5 | ; Derived from: 6 | ; Snippets and scripts from the AutoHotkey forum. 7 | ; Thanks to Majkinetor for his getTextWidth function. 8 | 9 | ; The script is not flawless, no warranties. 10 | ; The progressbars disappear (the text stays) on mouseover so they don't get in the way if you want to click something below it. 11 | ; The text overlay is in a separate gui on top of the progressbar, not sure if this is the best way to get a progressbar with text overlay. 12 | ; You can set thresholds for low battery, high mem load and high cpu. When these thresholds are reached the colors change. 13 | ; 14 | ; Problems: 15 | ; - The date time seems to lose the time sometimes and only shows the date 16 | ; - I'm not sure how to always keep the windows on top, even if an other 17 | ; - sometimes there is an annoying flicker in the guis. 18 | ; 19 | #SingleInstance Force 20 | #NoTrayIcon 21 | #NoEnv 22 | 23 | applicationname := SubStr(A_ScriptName, 1, StrLen(A_ScriptName) - 4) 24 | 25 | Gosub, INIREAD 26 | 27 | windowTitle := "ClockInfo" 28 | 29 | regionMargin := 10 30 | progressBarPos := regionMargin - 1 31 | 32 | ; I tried to make as much as possible configurable in the ini file, so we need some calculations. 33 | clockFontStyle = s%fontsize% bold 34 | infoFontStyle = s%infoFontSize% bold 35 | 36 | FormatTime, clockText ,, %timeFormat% 37 | clockWidth := GetTextSize(clockText, clockFontStyle "," clockFont )+10 38 | 39 | battText1 = xx 40 | battText2 := "100%" 41 | battWidth := GetTextSize(battText1, infoFontStyle "," Webdings )+10 42 | battWidth += GetTextSize(battText2, infoFontStyle "," infoFont )+10 43 | 44 | memText := memLabel . "100%" 45 | memWidth := GetTextSize(memText, infoFontStyle "," infoFont )+10 46 | 47 | cpuText := cpuLabel . "100.00%" 48 | cpuWidth := GetTextSize(cpuText, infoFontStyle "," infoFont )+10 49 | 50 | maxWidth := Max(battWidth, Max(memWidth, cpuWidth)) 51 | ; Use the widest width for all 52 | battWidth := maxWidth 53 | cpuWidth := maxWidth 54 | memWidth := maxWidth 55 | 56 | battProgressWidth := battWidth + 1 57 | memProgressWidth := memWidth + 1 58 | cpuProgressWidth := cpuWidth + 1 59 | 60 | height := fontSize + (fontsize * 0.7) 61 | infoHeight := infoFontSize + (fontsize * 0.7) 62 | txtY := 0 63 | txtX := 15 64 | posFromRight = 120 65 | 66 | battInfo := GetPowerStatus(acLineStatus) 67 | 68 | VarSetCapacity( IdleTicks, 2*4 ) 69 | VarSetCapacity( memstatus, 100 ) 70 | 71 | OnExit, ExitSub 72 | 73 | Gosub, CALCULATEPOSITIONS 74 | Gosub, CREATECLOCKWINDOW 75 | 76 | SetTimer, UPDATECLOCK, 1000 77 | SetTimer, UPDATEBATTERY, 2000 78 | SetTimer, UPDATECPU, 1500 79 | SetTimer, WATCHCURSOR, 115 80 | SetTimer, KEEPONTOP, 1000 81 | 82 | getDistance(mX, mY, x, y, w, h) 83 | { 84 | ; pointer is in object 85 | If (mX > x) and (mX < (x + w)) 86 | and (mY > y) and (mY < (y + h)) 87 | { 88 | xDistance := 0 89 | yDistance := 0 90 | } 91 | Else 92 | { 93 | ; pointer is to the left of object 94 | If (mX < x) 95 | xDistance := x - mX 96 | ; pointer is to the right of object 97 | Else If (mX > (x + w)) 98 | xDistance := mX - (x + w) 99 | 100 | ; pointer is above object 101 | If (mY < y) 102 | yDistance := y - mY 103 | ; pointer is below object 104 | Else If (mY > (y + h)) 105 | yDistance := mY - (y + h) 106 | } 107 | distance := max(xDistance, yDistance) * 3 108 | return distance 109 | } 110 | 111 | CALCULATEPOSITIONS: 112 | savedScreenWidth := A_ScreenWidth 113 | savedScreenHeight := A_ScreenHeight 114 | 115 | width := clockWidth + battWidth + memWidth + cpuWidth + margin * 3 116 | xPos := savedScreenWidth - width - posFromRight 117 | yPos := 3 118 | battPos := xPos + clockWidth + margin 119 | memPos := battPos + battWidth + margin 120 | cpuPos := memPos + memWidth + margin 121 | Return 122 | 123 | WATCHCURSOR: 124 | CoordMode, Mouse 125 | MouseGetPos, mouseX, mouseY 126 | clockTransparency := min(getDistance(mouseX, mouseY, xPos + regionMargin, yPos, regionMargin + clockWidth, height), transparency) 127 | battTransparency := min(getDistance(mouseX, mouseY, battPos + regionMargin, yPos, regionMargin + battWidth, height), transparency) 128 | memTransparency := min(getDistance(mouseX, mouseY, memPos + regionMargin, yPos, regionMargin + memWidth, height), transparency) 129 | cpuTransparency := min(getDistance(mouseX, mouseY, cpuPos + regionMargin, yPos, regionMargin + cpuWidth, height), transparency) 130 | 131 | WinSet, Transparent, %clockTransparency%, %windowTitle% 132 | WinSet, Transparent, %battTransparency%, BattBarGui 133 | WinSet, Transparent, %memTransparency%, MemBarGui 134 | WinSet, Transparent, %cpuTransparency%, CpuBarGui 135 | ; WinSet, Transparent, %battTransparency%, Batt 136 | ; WinSet, Transparent, %memTransparency%, Mem 137 | ; WinSet, Transparent, %cpuTransparency%, Cpu 138 | Return 139 | 140 | CREATECLOCKWINDOW: 141 | ; 1: Windows for the clock text 142 | Gui, 1:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 143 | Gui, 1:Color, %clockBGColor% 144 | Gui, 1:Font, c%clockFontColor% %clockFontStyle%, %clockFont% 145 | Gui, 1:Add,Text,vDate y%txtY% x%txtX%, %clockText% 146 | Gui, 1:Show,NoActivate x%xPos% y%yPos% ,%windowTitle% 147 | WinSet, Region, %regionMargin%-0 W%clockWidth% H%height% R5-5, %windowTitle% 148 | 149 | ; 6: Window for the batt progress bar 150 | Gui, 6:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 151 | Gui, 6:Add, Progress, y0 x%progressBarPos% w%battProgressWidth% h%infoHeight% c%battBarColor% vBattBar Background%battBGColor% 152 | Gui, 6:Show,NoActivate x%battPos% y%yPos%, BattBarGui 153 | WinSet, Region, %regionMargin%-0 W%battWidth% H%infoHeight% R5-5, BattBarGui 154 | 155 | ; 2: Window for the batt text 156 | Gui, 2:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 157 | Gui, 2:Color, %battBGColor% 158 | Gui, 2:Font, c%battFontColor% %infoFontStyle%, Webdings 159 | Gui, 2:Add,Text,vPlugged y-2 x%txtX%, x 160 | Gui, 2:Font, c%battFontColor% %infoFontStyle%, %infoFont% 161 | Gui, 2:Add,Text,vBatt y%txtY% w%battWidth% x46, %battinfo%`% 162 | Gui, 2:Show,NoActivate x%battPos% y%yPos%, Batt 163 | WinSet, Region, %regionMargin%-0 W%battWidth% H%infoHeight% R5-5, Batt 164 | WinSet, TransColor, %battBGColor% 165 | 166 | ; 7: Window for the memory progress bar 167 | Gui, 7:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 168 | Gui, 7:Add, Progress, y0 x%progressBarPos% w%memProgressWidth% h%infoHeight% c%memBarColor% vMemBar Background%memBGColor% 169 | Gui, 7:Show,NoActivate x%memPos% y%yPos%, MemBarGui 170 | WinSet, Region, %regionMargin%-0 W%memWidth% H%infoHeight% R5-5, MemBarGui 171 | GuiControl, 7:, MemBar, 50 172 | 173 | ; 3: Window for the memory text 174 | Gui, 3:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 175 | Gui, 3:Color, %memBGColor% 176 | Gui, 3:Font, c%memFontColor% %infoFontStyle%, %infoFont% 177 | Gui, 3:Add,Text,vMem y%txtY% x%txtX%, %memText% 178 | Gui, 3:Show,NoActivate x%memPos% y%yPos% ,Mem 179 | WinSet, Region, %regionMargin%-0 W%memWidth% H%infoHeight% R5-5, Mem 180 | WinSet, TransColor, %memBGColor% 181 | 182 | ; 5: Window for the cpu progress bar 183 | Gui, 5:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 184 | Gui, 5:Add, Progress, y0 x%progressBarPos% w%cpuProgressWidth% h%infoHeight% c%cpuBarColor% vCpuBar Background%cpuBGColor% 185 | Gui, 5:Show,NoActivate x%cpuPos% y%yPos%, CpuBarGui 186 | WinSet, Region, %regionMargin%-0 W%cpuWidth% H%infoHeight% R5-5, CpuBarGui 187 | 188 | ; 4: Window for the cpu text 189 | Gui, 4:+LastFound +AlwaysOnTop +ToolWindow -SysMenu -Caption 190 | Gui, 4:Color, %cpuBGColor% 191 | Gui, 4:Font, c%cpuFontColor% %infoFontStyle%, %infoFont% 192 | Gui, 4:Add,Text,vCpu y%txtY% x%txtX%, %cpuText% 193 | Gui, 4:Show,NoActivate x%cpuPos% y%yPos% ,Cpu 194 | WinSet, Region, %regionMargin%-0 W%cpuWidth% H%height% R5-5, Cpu 195 | WinSet, TransColor, %cpuBGColor% 196 | Return 197 | 198 | 199 | UPDATECLOCK: 200 | if (savedScreenWidth <> A_ScreenWidth) 201 | { 202 | ; I switch recolution often on my laptop so thats why I added this. 203 | Gosub, CalculatePositions 204 | Gui, 1:Hide 205 | Gui, 2:Hide 206 | Gui, 3:Hide 207 | Gui, 4:Hide 208 | Gui, 5:Hide 209 | Gui, 6:Hide 210 | Gui, 7:Hide 211 | ; These will be shown again by the KEEPONTOP sub 212 | } 213 | FormatTime, clockText ,, %timeFormat% 214 | GuiControl, 1:,Date, %clockText% 215 | Return 216 | 217 | UPDATEBATTERY: 218 | battinfo := GetPowerStatus(acLineStatus) 219 | If (acLineStatus > 0) 220 | { 221 | GuiControl,2:,Plugged, ~ 222 | Gui, 2:Font, c%battFontColor% 223 | GuiControl, 6: +Background%battBGColor%, BattBar 224 | GuiControl, 6: +c%battBarColor%, BattBar 225 | } 226 | Else 227 | { 228 | GuiControl,2:,Plugged, x 229 | if (battinfo < alertbattLevel) 230 | { 231 | Gui, 2:Font, c%battFontColorAlert% 232 | GuiControl, 6: +Background%battBGColorAlert%, BattBar 233 | GuiControl, 6: +c%battBarColorAlert%, BattBar 234 | } 235 | } 236 | GuiControl, 2:Font, Batt ; Put the above font into effect for a control. 237 | GuiControl, 2:,Batt,%battinfo%`% 238 | GuiControl, 6:, BattBar, %battinfo% 239 | Return 240 | 241 | UPDATECPU: 242 | IdleTime0 = %IdleTime% ; Save previous values 243 | Tick0 = %Tick% 244 | DllCall("kernel32.dll\GetSystemTimes", "uint",&IdleTicks, "uint",0, "uint",0) 245 | IdleTime := *(&IdleTicks) 246 | Loop 7 ; Ticks when Windows was idle 247 | IdleTime += *( &IdleTicks + A_Index ) << ( 8 * A_Index ) 248 | Tick := A_TickCount ; Ticks all together 249 | load := 100 - 0.01*(IdleTime - IdleTime0)/(Tick - Tick0) 250 | SetFormat, Float, 0.2 251 | load += 0 252 | 253 | If (load > cpuThreshold) 254 | { 255 | Gui, 4:Font, c%cpuFontColorAlert% 256 | GuiControl, 5: +Background%cpuBGColorAlert%, CpuBar 257 | GuiControl, 5: +c%cpuBarColorAlert%, CpuBar 258 | } 259 | Else 260 | { 261 | Gui, 4:Font, c%cpuFontColor% 262 | GuiControl, 5: +Background%cpuBGColor%, CpuBar 263 | GuiControl, 5: +c%cpuBarColor%, CpuBar 264 | } 265 | GuiControl, 4:Font, Cpu ; Put the above font into effect for a control. 266 | GuiControl, 4:, Cpu, %cpuLabel%%load%`% 267 | GuiControl, 5:, CpuBar, %load% 268 | 269 | ; --- Calculate memory 270 | DllCall("kernel32.dll\GlobalMemoryStatus", "uint",&memstatus) 271 | mem := *( &memstatus + 4 ) ; last byte is enough, mem = 0..100 272 | If (mem > memThreshold) 273 | { 274 | Gui, 3:Font, c%memFontColorAlert% 275 | GuiControl, 7: +Background%memBGColorAlert%, MemBar 276 | GuiControl, 7: +c%memBarColorAlert%, MemBar 277 | } 278 | Else 279 | { 280 | Gui, 3:Font, c%memFontColor% 281 | GuiControl, 7: +Background%memBGColor%, MemBar 282 | GuiControl, 7: +c%memBarColor%, MemBar 283 | } 284 | GuiControl, 3:Font, Mem 285 | GuiControl, 3:,Mem, %memLabel%%mem%`% 286 | GuiControl, 7:, MemBar, %mem% 287 | 288 | Return 289 | 290 | 291 | GetPowerStatus(ByRef acLineStatus) 292 | { 293 | VarSetCapacity(powerstatus, 1+1+1+1+4+4) 294 | success := DllCall("kernel32.dll\GetSystemPowerStatus", "uint", &powerstatus) 295 | acLineStatus:=ReadInteger(&powerstatus,0,1,false) 296 | battFlag:=ReadInteger(&powerstatus,1,1,false) 297 | battLifePercent:=ReadInteger(&powerstatus,2,1,false) 298 | battLifeTime:=ReadInteger(&powerstatus,4,4,false) 299 | battFullLifeTime:=ReadInteger(&powerstatus,8,4,false) 300 | Return battLifePercent 301 | } 302 | 303 | 304 | ReadInteger( p_address, p_offset, p_size, p_hex=true ) 305 | { 306 | value = 0 307 | old_FormatInteger := a_FormatInteger 308 | if ( p_hex ) 309 | SetFormat, integer, hex 310 | else 311 | SetFormat, integer, dec 312 | loop, %p_size% 313 | value := value+( *( ( p_address+p_offset )+( a_Index-1 ) ) << ( 8* ( a_Index-1 ) ) ) 314 | SetFormat, integer, %old_FormatInteger% 315 | return, value 316 | } 317 | 318 | 319 | Max(In_Val1,In_Val2) 320 | { 321 | IfLess In_Val1,%In_Val2%, Return In_Val2 322 | Return In_Val1 323 | } 324 | 325 | Min(In_Val1,In_Val2) 326 | { 327 | IfLess In_Val1,%In_Val2%, Return In_Val1 328 | Return In_Val2 329 | } 330 | 331 | INIREAD: 332 | IfNotExist,%applicationname%.ini 333 | { 334 | clockFont := "Verdana" 335 | fontSize := 10 336 | clockFontColor := "Silver" 337 | clockBGColor := "Black" 338 | 339 | infoFontSize := 10 340 | infoFont := "Tahoma" 341 | 342 | battFontColor := "Lime" 343 | battFontColorAlert := "Yellow" 344 | battBGColor := "Black" 345 | battBGColorAlert := "Maroon" 346 | battBarColor := "Green" 347 | battBarColorAlert := "Red" 348 | alertbattLevel := 10 349 | 350 | memFontColor := "Fuchsia" 351 | memFontColorAlert := "Yellow" 352 | memBGColor := "Black" 353 | memBGColorAlert := "Maroon" 354 | memBarColor := "Purple" 355 | memBarColorAlert := "Red" 356 | memThreshold := 80 357 | 358 | cpuFontColor := "Aqua" 359 | cpuFontColorAlert := "Yellow" 360 | cpuBGColor := "Black" 361 | cpuBGColorAlert := "Maroon" 362 | cpuBarColor := "Blue" 363 | cpuBarColorAlert := "Red" 364 | cpuThreshold := 80 365 | margin := 2 366 | transparency := 200 367 | memLabel := "Mem: " 368 | cpuLabel := "Cpu: " 369 | timeFormat := "ddd dd MMM yyyy HH:mm:ss" 370 | Gosub,INIWRITE 371 | } 372 | IniRead,clockFont,%applicationname%.ini,Settings,clockFont 373 | IniRead,fontSize,%applicationname%.ini,Settings,fontSize 374 | IniRead,clockFontColor,%applicationname%.ini,Settings,clockFontColor 375 | IniRead,clockBGColor,%applicationname%.ini,Settings,clockBGColor 376 | IniRead,infoFontSize,%applicationname%.ini,Settings,infoFontSize 377 | IniRead,infoFont,%applicationname%.ini,Settings,infoFont 378 | IniRead,battFontColor,%applicationname%.ini,Settings,battFontColor 379 | IniRead,battFontColorAlert,%applicationname%.ini,Settings,battFontColorAlert 380 | IniRead,battBGColor,%applicationname%.ini,Settings,battBGColor 381 | IniRead,battBGColorAlert,%applicationname%.ini,Settings,battBGColorAlert 382 | IniRead,battBarColor,%applicationname%.ini,Settings,battBarColor 383 | IniRead,battBarColorAlert,%applicationname%.ini,Settings,battBarColorAlert 384 | IniRead,alertbattLevel,%applicationname%.ini,Settings,alertbattLevel 385 | IniRead,memFontColor,%applicationname%.ini,Settings,memFontColor 386 | IniRead,memFontColorAlert,%applicationname%.ini,Settings,memFontColorAlert 387 | IniRead,memBGColor,%applicationname%.ini,Settings,memBGColor 388 | IniRead,memBGColorAlert,%applicationname%.ini,Settings,memBGColorAlert 389 | IniRead,memBarColor,%applicationname%.ini,Settings,memBarColor 390 | IniRead,memBarColorAlert,%applicationname%.ini,Settings,memBarColorAlert 391 | IniRead,memThreshold,%applicationname%.ini,Settings,memThreshold 392 | IniRead,cpuFontColor,%applicationname%.ini,Settings,cpuFontColor 393 | IniRead,cpuFontColorAlert,%applicationname%.ini,Settings,cpuFontColorAlert 394 | IniRead,cpuBGColor,%applicationname%.ini,Settings,cpuBGColor 395 | IniRead,cpuBGColorAlert,%applicationname%.ini,Settings,cpuBGColorAlert 396 | IniRead,cpuBarColor,%applicationname%.ini,Settings,cpuBarColor 397 | IniRead,cpuBarColorAlert,%applicationname%.ini,Settings,cpuBarColorAlert 398 | IniRead,cpuThreshold,%applicationname%.ini,Settings,cpuThreshold 399 | IniRead,margin,%applicationname%.ini,Settings,margin 400 | IniRead,transparency,%applicationname%.ini,Settings,transparency 401 | IniRead,memLabel,%applicationname%.ini,Settings,memLabel 402 | IniRead,cpuLabel,%applicationname%.ini,Settings,cpuLabel 403 | IniRead,timeFormat,%applicationname%.ini,Settings,timeFormat 404 | Return 405 | 406 | INIWRITE: 407 | IniWrite,%clockFont%,%applicationname%.ini,Settings,clockFont 408 | IniWrite,%fontSize%,%applicationname%.ini,Settings,fontSize 409 | IniWrite,%clockFontColor%,%applicationname%.ini,Settings,clockFontColor 410 | IniWrite,%clockBGColor%,%applicationname%.ini,Settings,clockBGColor 411 | IniWrite,%infoFontSize%,%applicationname%.ini,Settings,infoFontSize 412 | IniWrite,%infoFont%,%applicationname%.ini,Settings,infoFont 413 | IniWrite,%battFontColor%,%applicationname%.ini,Settings,battFontColor 414 | IniWrite,%battFontColorAlert%,%applicationname%.ini,Settings,battFontColorAlert 415 | IniWrite,%battBGColor%,%applicationname%.ini,Settings,battBGColor 416 | IniWrite,%battBGColorAlert%,%applicationname%.ini,Settings,battBGColorAlert 417 | IniWrite,%battBarColor%,%applicationname%.ini,Settings,battBarColor 418 | IniWrite,%battBarColorAlert%,%applicationname%.ini,Settings,battBarColorAlert 419 | IniWrite,%alertbattLevel%,%applicationname%.ini,Settings,alertbattLevel 420 | IniWrite,%memFontColor%,%applicationname%.ini,Settings,memFontColor 421 | IniWrite,%memFontColorAlert%,%applicationname%.ini,Settings,memFontColorAlert 422 | IniWrite,%memBGColor%,%applicationname%.ini,Settings,memBGColor 423 | IniWrite,%memBGColorAlert%,%applicationname%.ini,Settings,memBGColorAlert 424 | IniWrite,%memBarColor%,%applicationname%.ini,Settings,memBarColor 425 | IniWrite,%memBarColorAlert%,%applicationname%.ini,Settings,memBarColorAlert 426 | IniWrite,%memThreshold%,%applicationname%.ini,Settings,memThreshold 427 | IniWrite,%cpuFontColor%,%applicationname%.ini,Settings,cpuFontColor 428 | IniWrite,%cpuFontColorAlert%,%applicationname%.ini,Settings,cpuFontColorAlert 429 | IniWrite,%cpuBGColor%,%applicationname%.ini,Settings,cpuBGColor 430 | IniWrite,%cpuBGColorAlert%,%applicationname%.ini,Settings,cpuBGColorAlert 431 | IniWrite,%cpuBarColor%,%applicationname%.ini,Settings,cpuBarColor 432 | IniWrite,%cpuBarColorAlert%,%applicationname%.ini,Settings,cpuBarColorAlert 433 | IniWrite,%cpuThreshold%,%applicationname%.ini,Settings,cpuThreshold 434 | IniWrite,%margin%,%applicationname%.ini,Settings,margin 435 | IniWrite,%transparency%,%applicationname%.ini,Settings,transparency 436 | IniWrite,%memLabel%,%applicationname%.ini,Settings,memLabel 437 | IniWrite,%cpuLabel%,%applicationname%.ini,Settings,cpuLabel 438 | IniWrite,%timeFormat%,%applicationname%.ini,Settings,timeFormat 439 | Return 440 | 441 | ExtractInteger(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4) 442 | ; pSource is a string (buffer) whose memory area contains a raw/binary integer at pOffset. 443 | ; The caller should pass true for pSigned to interpret the result as signed vs. unsigned. 444 | ; pSize is the size of PSource's integer in bytes (e.g. 4 bytes for a DWORD or Int). 445 | ; pSource must be ByRef to avoid corruption during the formal-to-actual copying process 446 | ; (since pSource might contain valid data beyond its first binary zero). 447 | { 448 | Loop %pSize% ; Build the integer by adding up its bytes. 449 | result += *(&pSource + pOffset + A_Index-1) << 8*(A_Index-1) 450 | if (!pIsSigned OR pSize > 4 OR result < 0x80000000) 451 | return result ; Signed vs. unsigned doesn't matter in these cases. 452 | ; Otherwise, convert the value (now known to be 32-bit) to its signed counterpart: 453 | return -(0xFFFFFFFF - result + 1) 454 | } 455 | 456 | ;----------------------------------------------------------------------------------------------------------------------- 457 | ; Function: GetTextSize 458 | ; Calculate widht and/or height of text, taking the font style and face into account 459 | ;: 460 | ; 461 | ; 462 | ; Parameters: 463 | ; pStr - Text to be measured 464 | ; pFont - Font description in AHK syntax 465 | ; pHeight - Set to true to return height also. False is default. 466 | ; 467 | ; Returns: 468 | ; Text width if pHeight=false. Otherwise, dimension is returned as "width,height" 469 | ; 470 | ; Example: 471 | ; width := GetTextSize("string to be measured", "bold s22, Courier New" ) 472 | ; 473 | GetTextSize(pStr, pFont="", pHeight=false) { 474 | local height, weight, italic, underline, strikeout , nCharSet 475 | local hdc := DllCall("GetDC", "Uint", 0) 476 | local hFont, hOldFont 477 | 478 | ;parse font 479 | if (pFont != "") { 480 | italic := InStr(pFont, "italic") 481 | underline := InStr(pFont, "underline") 482 | strikeout := InStr(pFont, "strikeout") 483 | weight := InStr(pFont, "bold") ? 700 : 0 484 | 485 | RegExMatch(pFont, "(?<=[S|s])(\d{1,2})(?=[ ,])", height) 486 | if (height != "") 487 | height := -DllCall("MulDiv", "int", height, "int", DllCall("GetDeviceCaps", "Uint", hDC, "int", 90), "int", 72) 488 | 489 | RegExMatch(pFont, "(?<=,).+", fontFace) 490 | fontFace := RegExReplace( fontFace, "(^\s+)|(\s+$)") ;trim 491 | 492 | ; msgbox "%fontFace%" "%italic%" "%underline%" "%strikeout%" "%weight%" "%height%" 493 | } 494 | 495 | 496 | ;create font 497 | hFont := DllCall("CreateFont", "int", height, "int", 0, "int", 0, "int", 0 498 | ,"int", weight, "Uint", italic, "Uint", underline 499 | ,"uint", strikeOut, "Uint", nCharSet, "Uint", 0, "Uint", 0, "Uint", 0, "Uint", 0, "str", fontFace) 500 | hOldFont := DllCall("SelectObject", "Uint", hDC, "Uint", hFont) 501 | DllCall("GetTextExtentPoint32", "Uint", hDC, "str", pStr, "int", StrLen(pStr), "int64P", nSize) 502 | ; DllCall("DrawTextA", "Uint", hDC, "str", pStr, "int", StrLen(pStr), "int64P", nSize, "uint", 0x400) 503 | 504 | 505 | ;clean 506 | 507 | DllCall("SelectObject", "Uint", hDC, "Uint", hOldFont) 508 | DllCall("DeleteObject", "Uint", hFont) 509 | DllCall("ReleaseDC", "Uint", 0, "Uint", hDC) 510 | 511 | nWidth := nSize & 0xFFFFFFFF 512 | nHeight := nSize >> 32 & 0xFFFFFFFF 513 | 514 | 515 | if (pHeight) 516 | nWidth .= "," nHeight 517 | return nWidth 518 | } 519 | 520 | KEEPONTOP: 521 | Gui, 1:Show, NA x%xPos% y%yPos%, %windowTitle% 522 | Gui, 6:Show, NA x%battPos% y%yPos% ,BattBarGui 523 | Gui, 2:Show, NA x%battPos% y%yPos%, Batt 524 | Gui, 7:Show, NA x%memPos% y%yPos% ,MemBarGui 525 | Gui, 3:Show, NA x%memPos% y%yPos% ,Mem 526 | Gui, 5:Show, NA x%cpuPos% y%yPos% ,CpuBarGui 527 | Gui, 4:Show, NA x%cpuPos% y%yPos% ,Cpu 528 | Return 529 | 530 | ExitSub: 531 | ExitApp -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/!GoodClock.ini: -------------------------------------------------------------------------------- 1 | [Settings] 2 | clockFont=Verdana 3 | fontSize=10 4 | clockFontColor=Silver 5 | clockBGColor=Black 6 | infoFontSize=10 7 | infoFont=Tahoma 8 | battFontColor=Lime 9 | battFontColorAlert=Yellow 10 | battBGColor=Black 11 | battBGColorAlert=Maroon 12 | battBarColor=Green 13 | battBarColorAlert=Red 14 | alertbattLevel=10 15 | memFontColor=Fuchsia 16 | memFontColorAlert=Yellow 17 | memBGColor=Black 18 | memBGColorAlert=Maroon 19 | memBarColor=Purple 20 | memBarColorAlert=Red 21 | memThreshold=80 22 | cpuFontColor=Aqua 23 | cpuFontColorAlert=Yellow 24 | cpuBGColor=Black 25 | cpuBGColorAlert=Maroon 26 | cpuBarColor=Blue 27 | cpuBarColorAlert=Red 28 | cpuThreshold=80 29 | margin=2 30 | transparency=200 31 | memLabel=Mem: 32 | cpuLabel=Cpu: 33 | timeFormat=ddd dd MMM yyyy HH:mm:ss 34 | -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/GoodClock.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/GoodClock.ini -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/Snippet.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/Snippet.ahk -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/Snippet.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/Snippet.ini -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/SoFast.ahk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/SoFast.ahk -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/SoFast.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/SoFast.ico -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/SoFast.ini: -------------------------------------------------------------------------------- 1 | http://www.appinn.com/ 2 | http://jandan.net/ 3 | http://www.pcdigest.com/ 4 | http://www.kenengba.com/ 5 | http://xbeta.info/ -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/SoFast_new.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/SoFast_new.ico -------------------------------------------------------------------------------- /tools/AHK Script Manager/scripts/SoFast_none.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/scripts/SoFast_none.ico -------------------------------------------------------------------------------- /tools/AHK Script Manager/说明.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AHK Script Manager/说明.txt -------------------------------------------------------------------------------- /tools/AU3_Spy.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AU3_Spy.exe -------------------------------------------------------------------------------- /tools/AutoScriptWriter/ASWHook.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AutoScriptWriter/ASWHook.dll -------------------------------------------------------------------------------- /tools/AutoScriptWriter/AutoScriptWriter.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/AutoScriptWriter/AutoScriptWriter.exe -------------------------------------------------------------------------------- /tools/CV_bin/CV.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/CV_bin/CV.exe -------------------------------------------------------------------------------- /tools/CV_bin/CV_x64.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/CV_bin/CV_x64.exe -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/License.txt: -------------------------------------------------------------------------------- 1 | License for Pulover's Macro Creator 2 | =================================== 3 | 4 | Copyright 2012-2013 by Rodolfo U. Batista 5 | 6 | GNU GENERAL PUBLIC LICENSE 7 | Version 3, 29 June 2007 8 | 9 | Copyright (C) 2007 Free Software Foundation, Inc. 10 | Everyone is permitted to copy and distribute verbatim copies 11 | of this license document, but changing it is not allowed. 12 | 13 | Preamble 14 | 15 | The GNU General Public License is a free, copyleft license for 16 | software and other kinds of works. 17 | 18 | The licenses for most software and other practical works are designed 19 | to take away your freedom to share and change the works. By contrast, 20 | the GNU General Public License is intended to guarantee your freedom to 21 | share and change all versions of a program--to make sure it remains free 22 | software for all its users. We, the Free Software Foundation, use the 23 | GNU General Public License for most of our software; it applies also to 24 | any other work released this way by its authors. You can apply it to 25 | your programs, too. 26 | 27 | When we speak of free software, we are referring to freedom, not 28 | price. Our General Public Licenses are designed to make sure that you 29 | have the freedom to distribute copies of free software (and charge for 30 | them if you wish), that you receive source code or can get it if you 31 | want it, that you can change the software or use pieces of it in new 32 | free programs, and that you know you can do these things. 33 | 34 | To protect your rights, we need to prevent others from denying you 35 | these rights or asking you to surrender the rights. Therefore, you have 36 | certain responsibilities if you distribute copies of the software, or if 37 | you modify it: responsibilities to respect the freedom of others. 38 | 39 | For example, if you distribute copies of such a program, whether 40 | gratis or for a fee, you must pass on to the recipients the same 41 | freedoms that you received. You must make sure that they, too, receive 42 | or can get the source code. And you must show them these terms so they 43 | know their rights. 44 | 45 | Developers that use the GNU GPL protect your rights with two steps: 46 | (1) assert copyright on the software, and (2) offer you this License 47 | giving you legal permission to copy, distribute and/or modify it. 48 | 49 | For the developers' and authors' protection, the GPL clearly explains 50 | that there is no warranty for this free software. For both users' and 51 | authors' sake, the GPL requires that modified versions be marked as 52 | changed, so that their problems will not be attributed erroneously to 53 | authors of previous versions. 54 | 55 | Some devices are designed to deny users access to install or run 56 | modified versions of the software inside them, although the manufacturer 57 | can do so. This is fundamentally incompatible with the aim of 58 | protecting users' freedom to change the software. The systematic 59 | pattern of such abuse occurs in the area of products for individuals to 60 | use, which is precisely where it is most unacceptable. Therefore, we 61 | have designed this version of the GPL to prohibit the practice for those 62 | products. If such problems arise substantially in other domains, we 63 | stand ready to extend this provision to those domains in future versions 64 | of the GPL, as needed to protect the freedom of users. 65 | 66 | Finally, every program is threatened constantly by software patents. 67 | States should not allow patents to restrict development and use of 68 | software on general-purpose computers, but in those that do, we wish to 69 | avoid the special danger that patents applied to a free program could 70 | make it effectively proprietary. To prevent this, the GPL assures that 71 | patents cannot be used to render the program non-free. 72 | 73 | The precise terms and conditions for copying, distribution and 74 | modification follow. 75 | 76 | TERMS AND CONDITIONS 77 | 78 | 0. Definitions. 79 | 80 | "This License" refers to version 3 of the GNU General Public License. 81 | 82 | "Copyright" also means copyright-like laws that apply to other kinds of 83 | works, such as semiconductor masks. 84 | 85 | "The Program" refers to any copyrightable work licensed under this 86 | License. Each licensee is addressed as "you". "Licensees" and 87 | "recipients" may be individuals or organizations. 88 | 89 | To "modify" a work means to copy from or adapt all or part of the work 90 | in a fashion requiring copyright permission, other than the making of an 91 | exact copy. The resulting work is called a "modified version" of the 92 | earlier work or a work "based on" the earlier work. 93 | 94 | A "covered work" means either the unmodified Program or a work based 95 | on the Program. 96 | 97 | To "propagate" a work means to do anything with it that, without 98 | permission, would make you directly or secondarily liable for 99 | infringement under applicable copyright law, except executing it on a 100 | computer or modifying a private copy. Propagation includes copying, 101 | distribution (with or without modification), making available to the 102 | public, and in some countries other activities as well. 103 | 104 | To "convey" a work means any kind of propagation that enables other 105 | parties to make or receive copies. Mere interaction with a user through 106 | a computer network, with no transfer of a copy, is not conveying. 107 | 108 | An interactive user interface displays "Appropriate Legal Notices" 109 | to the extent that it includes a convenient and prominently visible 110 | feature that (1) displays an appropriate copyright notice, and (2) 111 | tells the user that there is no warranty for the work (except to the 112 | extent that warranties are provided), that licensees may convey the 113 | work under this License, and how to view a copy of this License. If 114 | the interface presents a list of user commands or options, such as a 115 | menu, a prominent item in the list meets this criterion. 116 | 117 | 1. Source Code. 118 | 119 | The "source code" for a work means the preferred form of the work 120 | for making modifications to it. "Object code" means any non-source 121 | form of a work. 122 | 123 | A "Standard Interface" means an interface that either is an official 124 | standard defined by a recognized standards body, or, in the case of 125 | interfaces specified for a particular programming language, one that 126 | is widely used among developers working in that language. 127 | 128 | The "System Libraries" of an executable work include anything, other 129 | than the work as a whole, that (a) is included in the normal form of 130 | packaging a Major Component, but which is not part of that Major 131 | Component, and (b) serves only to enable use of the work with that 132 | Major Component, or to implement a Standard Interface for which an 133 | implementation is available to the public in source code form. A 134 | "Major Component", in this context, means a major essential component 135 | (kernel, window system, and so on) of the specific operating system 136 | (if any) on which the executable work runs, or a compiler used to 137 | produce the work, or an object code interpreter used to run it. 138 | 139 | The "Corresponding Source" for a work in object code form means all 140 | the source code needed to generate, install, and (for an executable 141 | work) run the object code and to modify the work, including scripts to 142 | control those activities. However, it does not include the work's 143 | System Libraries, or general-purpose tools or generally available free 144 | programs which are used unmodified in performing those activities but 145 | which are not part of the work. For example, Corresponding Source 146 | includes interface definition files associated with source files for 147 | the work, and the source code for shared libraries and dynamically 148 | linked subprograms that the work is specifically designed to require, 149 | such as by intimate data communication or control flow between those 150 | subprograms and other parts of the work. 151 | 152 | The Corresponding Source need not include anything that users 153 | can regenerate automatically from other parts of the Corresponding 154 | Source. 155 | 156 | The Corresponding Source for a work in source code form is that 157 | same work. 158 | 159 | 2. Basic Permissions. 160 | 161 | All rights granted under this License are granted for the term of 162 | copyright on the Program, and are irrevocable provided the stated 163 | conditions are met. This License explicitly affirms your unlimited 164 | permission to run the unmodified Program. The output from running a 165 | covered work is covered by this License only if the output, given its 166 | content, constitutes a covered work. This License acknowledges your 167 | rights of fair use or other equivalent, as provided by copyright law. 168 | 169 | You may make, run and propagate covered works that you do not 170 | convey, without conditions so long as your license otherwise remains 171 | in force. You may convey covered works to others for the sole purpose 172 | of having them make modifications exclusively for you, or provide you 173 | with facilities for running those works, provided that you comply with 174 | the terms of this License in conveying all material for which you do 175 | not control copyright. Those thus making or running the covered works 176 | for you must do so exclusively on your behalf, under your direction 177 | and control, on terms that prohibit them from making any copies of 178 | your copyrighted material outside their relationship with you. 179 | 180 | Conveying under any other circumstances is permitted solely under 181 | the conditions stated below. Sublicensing is not allowed; section 10 182 | makes it unnecessary. 183 | 184 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 185 | 186 | No covered work shall be deemed part of an effective technological 187 | measure under any applicable law fulfilling obligations under article 188 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 189 | similar laws prohibiting or restricting circumvention of such 190 | measures. 191 | 192 | When you convey a covered work, you waive any legal power to forbid 193 | circumvention of technological measures to the extent such circumvention 194 | is effected by exercising rights under this License with respect to 195 | the covered work, and you disclaim any intention to limit operation or 196 | modification of the work as a means of enforcing, against the work's 197 | users, your or third parties' legal rights to forbid circumvention of 198 | technological measures. 199 | 200 | 4. Conveying Verbatim Copies. 201 | 202 | You may convey verbatim copies of the Program's source code as you 203 | receive it, in any medium, provided that you conspicuously and 204 | appropriately publish on each copy an appropriate copyright notice; 205 | keep intact all notices stating that this License and any 206 | non-permissive terms added in accord with section 7 apply to the code; 207 | keep intact all notices of the absence of any warranty; and give all 208 | recipients a copy of this License along with the Program. 209 | 210 | You may charge any price or no price for each copy that you convey, 211 | and you may offer support or warranty protection for a fee. 212 | 213 | 5. Conveying Modified Source Versions. 214 | 215 | You may convey a work based on the Program, or the modifications to 216 | produce it from the Program, in the form of source code under the 217 | terms of section 4, provided that you also meet all of these conditions: 218 | 219 | a) The work must carry prominent notices stating that you modified 220 | it, and giving a relevant date. 221 | 222 | b) The work must carry prominent notices stating that it is 223 | released under this License and any conditions added under section 224 | 7. This requirement modifies the requirement in section 4 to 225 | "keep intact all notices". 226 | 227 | c) You must license the entire work, as a whole, under this 228 | License to anyone who comes into possession of a copy. This 229 | License will therefore apply, along with any applicable section 7 230 | additional terms, to the whole of the work, and all its parts, 231 | regardless of how they are packaged. This License gives no 232 | permission to license the work in any other way, but it does not 233 | invalidate such permission if you have separately received it. 234 | 235 | d) If the work has interactive user interfaces, each must display 236 | Appropriate Legal Notices; however, if the Program has interactive 237 | interfaces that do not display Appropriate Legal Notices, your 238 | work need not make them do so. 239 | 240 | A compilation of a covered work with other separate and independent 241 | works, which are not by their nature extensions of the covered work, 242 | and which are not combined with it such as to form a larger program, 243 | in or on a volume of a storage or distribution medium, is called an 244 | "aggregate" if the compilation and its resulting copyright are not 245 | used to limit the access or legal rights of the compilation's users 246 | beyond what the individual works permit. Inclusion of a covered work 247 | in an aggregate does not cause this License to apply to the other 248 | parts of the aggregate. 249 | 250 | 6. Conveying Non-Source Forms. 251 | 252 | You may convey a covered work in object code form under the terms 253 | of sections 4 and 5, provided that you also convey the 254 | machine-readable Corresponding Source under the terms of this License, 255 | in one of these ways: 256 | 257 | a) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by the 259 | Corresponding Source fixed on a durable physical medium 260 | customarily used for software interchange. 261 | 262 | b) Convey the object code in, or embodied in, a physical product 263 | (including a physical distribution medium), accompanied by a 264 | written offer, valid for at least three years and valid for as 265 | long as you offer spare parts or customer support for that product 266 | model, to give anyone who possesses the object code either (1) a 267 | copy of the Corresponding Source for all the software in the 268 | product that is covered by this License, on a durable physical 269 | medium customarily used for software interchange, for a price no 270 | more than your reasonable cost of physically performing this 271 | conveying of source, or (2) access to copy the 272 | Corresponding Source from a network server at no charge. 273 | 274 | c) Convey individual copies of the object code with a copy of the 275 | written offer to provide the Corresponding Source. This 276 | alternative is allowed only occasionally and noncommercially, and 277 | only if you received the object code with such an offer, in accord 278 | with subsection 6b. 279 | 280 | d) Convey the object code by offering access from a designated 281 | place (gratis or for a charge), and offer equivalent access to the 282 | Corresponding Source in the same way through the same place at no 283 | further charge. You need not require recipients to copy the 284 | Corresponding Source along with the object code. If the place to 285 | copy the object code is a network server, the Corresponding Source 286 | may be on a different server (operated by you or a third party) 287 | that supports equivalent copying facilities, provided you maintain 288 | clear directions next to the object code saying where to find the 289 | Corresponding Source. Regardless of what server hosts the 290 | Corresponding Source, you remain obligated to ensure that it is 291 | available for as long as needed to satisfy these requirements. 292 | 293 | e) Convey the object code using peer-to-peer transmission, provided 294 | you inform other peers where the object code and Corresponding 295 | Source of the work are being offered to the general public at no 296 | charge under subsection 6d. 297 | 298 | A separable portion of the object code, whose source code is excluded 299 | from the Corresponding Source as a System Library, need not be 300 | included in conveying the object code work. 301 | 302 | A "User Product" is either (1) a "consumer product", which means any 303 | tangible personal property which is normally used for personal, family, 304 | or household purposes, or (2) anything designed or sold for incorporation 305 | into a dwelling. In determining whether a product is a consumer product, 306 | doubtful cases shall be resolved in favor of coverage. For a particular 307 | product received by a particular user, "normally used" refers to a 308 | typical or common use of that class of product, regardless of the status 309 | of the particular user or of the way in which the particular user 310 | actually uses, or expects or is expected to use, the product. A product 311 | is a consumer product regardless of whether the product has substantial 312 | commercial, industrial or non-consumer uses, unless such uses represent 313 | the only significant mode of use of the product. 314 | 315 | "Installation Information" for a User Product means any methods, 316 | procedures, authorization keys, or other information required to install 317 | and execute modified versions of a covered work in that User Product from 318 | a modified version of its Corresponding Source. The information must 319 | suffice to ensure that the continued functioning of the modified object 320 | code is in no case prevented or interfered with solely because 321 | modification has been made. 322 | 323 | If you convey an object code work under this section in, or with, or 324 | specifically for use in, a User Product, and the conveying occurs as 325 | part of a transaction in which the right of possession and use of the 326 | User Product is transferred to the recipient in perpetuity or for a 327 | fixed term (regardless of how the transaction is characterized), the 328 | Corresponding Source conveyed under this section must be accompanied 329 | by the Installation Information. But this requirement does not apply 330 | if neither you nor any third party retains the ability to install 331 | modified object code on the User Product (for example, the work has 332 | been installed in ROM). 333 | 334 | The requirement to provide Installation Information does not include a 335 | requirement to continue to provide support service, warranty, or updates 336 | for a work that has been modified or installed by the recipient, or for 337 | the User Product in which it has been modified or installed. Access to a 338 | network may be denied when the modification itself materially and 339 | adversely affects the operation of the network or violates the rules and 340 | protocols for communication across the network. 341 | 342 | Corresponding Source conveyed, and Installation Information provided, 343 | in accord with this section must be in a format that is publicly 344 | documented (and with an implementation available to the public in 345 | source code form), and must require no special password or key for 346 | unpacking, reading or copying. 347 | 348 | 7. Additional Terms. 349 | 350 | "Additional permissions" are terms that supplement the terms of this 351 | License by making exceptions from one or more of its conditions. 352 | Additional permissions that are applicable to the entire Program shall 353 | be treated as though they were included in this License, to the extent 354 | that they are valid under applicable law. If additional permissions 355 | apply only to part of the Program, that part may be used separately 356 | under those permissions, but the entire Program remains governed by 357 | this License without regard to the additional permissions. 358 | 359 | When you convey a copy of a covered work, you may at your option 360 | remove any additional permissions from that copy, or from any part of 361 | it. (Additional permissions may be written to require their own 362 | removal in certain cases when you modify the work.) You may place 363 | additional permissions on material, added by you to a covered work, 364 | for which you have or can give appropriate copyright permission. 365 | 366 | Notwithstanding any other provision of this License, for material you 367 | add to a covered work, you may (if authorized by the copyright holders of 368 | that material) supplement the terms of this License with terms: 369 | 370 | a) Disclaiming warranty or limiting liability differently from the 371 | terms of sections 15 and 16 of this License; or 372 | 373 | b) Requiring preservation of specified reasonable legal notices or 374 | author attributions in that material or in the Appropriate Legal 375 | Notices displayed by works containing it; or 376 | 377 | c) Prohibiting misrepresentation of the origin of that material, or 378 | requiring that modified versions of such material be marked in 379 | reasonable ways as different from the original version; or 380 | 381 | d) Limiting the use for publicity purposes of names of licensors or 382 | authors of the material; or 383 | 384 | e) Declining to grant rights under trademark law for use of some 385 | trade names, trademarks, or service marks; or 386 | 387 | f) Requiring indemnification of licensors and authors of that 388 | material by anyone who conveys the material (or modified versions of 389 | it) with contractual assumptions of liability to the recipient, for 390 | any liability that these contractual assumptions directly impose on 391 | those licensors and authors. 392 | 393 | All other non-permissive additional terms are considered "further 394 | restrictions" within the meaning of section 10. If the Program as you 395 | received it, or any part of it, contains a notice stating that it is 396 | governed by this License along with a term that is a further 397 | restriction, you may remove that term. If a license document contains 398 | a further restriction but permits relicensing or conveying under this 399 | License, you may add to a covered work material governed by the terms 400 | of that license document, provided that the further restriction does 401 | not survive such relicensing or conveying. 402 | 403 | If you add terms to a covered work in accord with this section, you 404 | must place, in the relevant source files, a statement of the 405 | additional terms that apply to those files, or a notice indicating 406 | where to find the applicable terms. 407 | 408 | Additional terms, permissive or non-permissive, may be stated in the 409 | form of a separately written license, or stated as exceptions; 410 | the above requirements apply either way. 411 | 412 | 8. Termination. 413 | 414 | You may not propagate or modify a covered work except as expressly 415 | provided under this License. Any attempt otherwise to propagate or 416 | modify it is void, and will automatically terminate your rights under 417 | this License (including any patent licenses granted under the third 418 | paragraph of section 11). 419 | 420 | However, if you cease all violation of this License, then your 421 | license from a particular copyright holder is reinstated (a) 422 | provisionally, unless and until the copyright holder explicitly and 423 | finally terminates your license, and (b) permanently, if the copyright 424 | holder fails to notify you of the violation by some reasonable means 425 | prior to 60 days after the cessation. 426 | 427 | Moreover, your license from a particular copyright holder is 428 | reinstated permanently if the copyright holder notifies you of the 429 | violation by some reasonable means, this is the first time you have 430 | received notice of violation of this License (for any work) from that 431 | copyright holder, and you cure the violation prior to 30 days after 432 | your receipt of the notice. 433 | 434 | Termination of your rights under this section does not terminate the 435 | licenses of parties who have received copies or rights from you under 436 | this License. If your rights have been terminated and not permanently 437 | reinstated, you do not qualify to receive new licenses for the same 438 | material under section 10. 439 | 440 | 9. Acceptance Not Required for Having Copies. 441 | 442 | You are not required to accept this License in order to receive or 443 | run a copy of the Program. Ancillary propagation of a covered work 444 | occurring solely as a consequence of using peer-to-peer transmission 445 | to receive a copy likewise does not require acceptance. However, 446 | nothing other than this License grants you permission to propagate or 447 | modify any covered work. These actions infringe copyright if you do 448 | not accept this License. Therefore, by modifying or propagating a 449 | covered work, you indicate your acceptance of this License to do so. 450 | 451 | 10. Automatic Licensing of Downstream Recipients. 452 | 453 | Each time you convey a covered work, the recipient automatically 454 | receives a license from the original licensors, to run, modify and 455 | propagate that work, subject to this License. You are not responsible 456 | for enforcing compliance by third parties with this License. 457 | 458 | An "entity transaction" is a transaction transferring control of an 459 | organization, or substantially all assets of one, or subdividing an 460 | organization, or merging organizations. If propagation of a covered 461 | work results from an entity transaction, each party to that 462 | transaction who receives a copy of the work also receives whatever 463 | licenses to the work the party's predecessor in interest had or could 464 | give under the previous paragraph, plus a right to possession of the 465 | Corresponding Source of the work from the predecessor in interest, if 466 | the predecessor has it or can get it with reasonable efforts. 467 | 468 | You may not impose any further restrictions on the exercise of the 469 | rights granted or affirmed under this License. For example, you may 470 | not impose a license fee, royalty, or other charge for exercise of 471 | rights granted under this License, and you may not initiate litigation 472 | (including a cross-claim or counterclaim in a lawsuit) alleging that 473 | any patent claim is infringed by making, using, selling, offering for 474 | sale, or importing the Program or any portion of it. 475 | 476 | 11. Patents. 477 | 478 | A "contributor" is a copyright holder who authorizes use under this 479 | License of the Program or a work on which the Program is based. The 480 | work thus licensed is called the contributor's "contributor version". 481 | 482 | A contributor's "essential patent claims" are all patent claims 483 | owned or controlled by the contributor, whether already acquired or 484 | hereafter acquired, that would be infringed by some manner, permitted 485 | by this License, of making, using, or selling its contributor version, 486 | but do not include claims that would be infringed only as a 487 | consequence of further modification of the contributor version. For 488 | purposes of this definition, "control" includes the right to grant 489 | patent sublicenses in a manner consistent with the requirements of 490 | this License. 491 | 492 | Each contributor grants you a non-exclusive, worldwide, royalty-free 493 | patent license under the contributor's essential patent claims, to 494 | make, use, sell, offer for sale, import and otherwise run, modify and 495 | propagate the contents of its contributor version. 496 | 497 | In the following three paragraphs, a "patent license" is any express 498 | agreement or commitment, however denominated, not to enforce a patent 499 | (such as an express permission to practice a patent or covenant not to 500 | sue for patent infringement). To "grant" such a patent license to a 501 | party means to make such an agreement or commitment not to enforce a 502 | patent against the party. 503 | 504 | If you convey a covered work, knowingly relying on a patent license, 505 | and the Corresponding Source of the work is not available for anyone 506 | to copy, free of charge and under the terms of this License, through a 507 | publicly available network server or other readily accessible means, 508 | then you must either (1) cause the Corresponding Source to be so 509 | available, or (2) arrange to deprive yourself of the benefit of the 510 | patent license for this particular work, or (3) arrange, in a manner 511 | consistent with the requirements of this License, to extend the patent 512 | license to downstream recipients. "Knowingly relying" means you have 513 | actual knowledge that, but for the patent license, your conveying the 514 | covered work in a country, or your recipient's use of the covered work 515 | in a country, would infringe one or more identifiable patents in that 516 | country that you have reason to believe are valid. 517 | 518 | If, pursuant to or in connection with a single transaction or 519 | arrangement, you convey, or propagate by procuring conveyance of, a 520 | covered work, and grant a patent license to some of the parties 521 | receiving the covered work authorizing them to use, propagate, modify 522 | or convey a specific copy of the covered work, then the patent license 523 | you grant is automatically extended to all recipients of the covered 524 | work and works based on it. 525 | 526 | A patent license is "discriminatory" if it does not include within 527 | the scope of its coverage, prohibits the exercise of, or is 528 | conditioned on the non-exercise of one or more of the rights that are 529 | specifically granted under this License. You may not convey a covered 530 | work if you are a party to an arrangement with a third party that is 531 | in the business of distributing software, under which you make payment 532 | to the third party based on the extent of your activity of conveying 533 | the work, and under which the third party grants, to any of the 534 | parties who would receive the covered work from you, a discriminatory 535 | patent license (a) in connection with copies of the covered work 536 | conveyed by you (or copies made from those copies), or (b) primarily 537 | for and in connection with specific products or compilations that 538 | contain the covered work, unless you entered into that arrangement, 539 | or that patent license was granted, prior to 28 March 2007. 540 | 541 | Nothing in this License shall be construed as excluding or limiting 542 | any implied license or other defenses to infringement that may 543 | otherwise be available to you under applicable patent law. 544 | 545 | 12. No Surrender of Others' Freedom. 546 | 547 | If conditions are imposed on you (whether by court order, agreement or 548 | otherwise) that contradict the conditions of this License, they do not 549 | excuse you from the conditions of this License. If you cannot convey a 550 | covered work so as to satisfy simultaneously your obligations under this 551 | License and any other pertinent obligations, then as a consequence you may 552 | not convey it at all. For example, if you agree to terms that obligate you 553 | to collect a royalty for further conveying from those to whom you convey 554 | the Program, the only way you could satisfy both those terms and this 555 | License would be to refrain entirely from conveying the Program. 556 | 557 | 13. Use with the GNU Affero General Public License. 558 | 559 | Notwithstanding any other provision of this License, you have 560 | permission to link or combine any covered work with a work licensed 561 | under version 3 of the GNU Affero General Public License into a single 562 | combined work, and to convey the resulting work. The terms of this 563 | License will continue to apply to the part which is the covered work, 564 | but the special requirements of the GNU Affero General Public License, 565 | section 13, concerning interaction through a network will apply to the 566 | combination as such. 567 | 568 | 14. Revised Versions of this License. 569 | 570 | The Free Software Foundation may publish revised and/or new versions of 571 | the GNU General Public License from time to time. Such new versions will 572 | be similar in spirit to the present version, but may differ in detail to 573 | address new problems or concerns. 574 | 575 | Each version is given a distinguishing version number. If the 576 | Program specifies that a certain numbered version of the GNU General 577 | Public License "or any later version" applies to it, you have the 578 | option of following the terms and conditions either of that numbered 579 | version or of any later version published by the Free Software 580 | Foundation. If the Program does not specify a version number of the 581 | GNU General Public License, you may choose any version ever published 582 | by the Free Software Foundation. 583 | 584 | If the Program specifies that a proxy can decide which future 585 | versions of the GNU General Public License can be used, that proxy's 586 | public statement of acceptance of a version permanently authorizes you 587 | to choose that version for the Program. 588 | 589 | Later license versions may give you additional or different 590 | permissions. However, no additional obligations are imposed on any 591 | author or copyright holder as a result of your choosing to follow a 592 | later version. 593 | 594 | 15. Disclaimer of Warranty. 595 | 596 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 597 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 598 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 599 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 600 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 601 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 602 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 603 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 604 | 605 | 16. Limitation of Liability. 606 | 607 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 608 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 609 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 610 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 611 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 612 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 613 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 614 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 615 | SUCH DAMAGES. 616 | 617 | 17. Interpretation of Sections 15 and 16. 618 | 619 | If the disclaimer of warranty and limitation of liability provided 620 | above cannot be given local legal effect according to their terms, 621 | reviewing courts shall apply local law that most closely approximates 622 | an absolute waiver of all civil liability in connection with the 623 | Program, unless a warranty or assumption of liability accompanies a 624 | copy of the Program in return for a fee. 625 | 626 | END OF TERMS AND CONDITIONS 627 | 628 | License for Scintilla and SciTE 629 | =============================== 630 | 631 | Copyright 1998-2003 by Neil Hodgson 632 | 633 | All Rights Reserved 634 | 635 | Permission to use, copy, modify, and distribute this software and its 636 | documentation for any purpose and without fee is hereby granted, 637 | provided that the above copyright notice appear in all copies and that 638 | both that copyright notice and this permission notice appear in 639 | supporting documentation. 640 | 641 | NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 642 | SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 643 | AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY 644 | SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 645 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 646 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 647 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE 648 | OR PERFORMANCE OF THIS SOFTWARE. 649 | 650 | -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/MacroCreatorPortable.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/MacroCreatorPortable.exe -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/ReadMe.txt: -------------------------------------------------------------------------------- 1 | Pulover's Macro Creator v4.1.1 Portable Edition 2 | =============================================== 3 | 4 | Thank you for downloading Pulover's Macro Creator. 5 | Supported platforms: Windows XP SP3+, Vista, 7, 8 6 | 7 | This file contains both x86 and x64 builds. 8 | MacroCreatorPortable.exe is a launcher that selects 9 | between 32-bit and 64-bit versions based on Operating System's 10 | processor and updates the INI configuration file to the most 11 | recent one. You may use either MacroCreatorPortable.exe or 12 | MacroCreator.exe from the x86 or x64 folders. 13 | -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x64/MacroCreator/MacroCreator.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x64/MacroCreator/MacroCreator.exe -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x64/MacroCreator/MacroCreator.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x64/MacroCreator/MacroCreator.ini -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x64/MacroCreator/MacroCreator_Help.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x64/MacroCreator/MacroCreator_Help.chm -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x64/MacroCreator/Resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x64/MacroCreator/Resources.dll -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x64/MacroCreator/SciLexer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x64/MacroCreator/SciLexer.dll -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x86/MacroCreator/MacroCreator.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x86/MacroCreator/MacroCreator.exe -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x86/MacroCreator/MacroCreator.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x86/MacroCreator/MacroCreator.ini -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x86/MacroCreator/MacroCreator_Help.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x86/MacroCreator/MacroCreator_Help.chm -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x86/MacroCreator/Resources.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x86/MacroCreator/Resources.dll -------------------------------------------------------------------------------- /tools/MacroCreatorPortable/x86/MacroCreator/SciLexer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/MacroCreatorPortable/x86/MacroCreator/SciLexer.dll -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/SciLexer.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/SciLexer.dll -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/SciTE.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/SciTE.exe -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/SciTEGlobal.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/SciTEGlobal.properties -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/ahk.abbrev.properties: -------------------------------------------------------------------------------- 1 | # Abbreviations file for AutoHotkey 2 | 3 | _#aslc=#AllowSameLineComments 4 | _#ct=#ClipboardTimeout 5 | _#cf=#CommentFlag 6 | _#eso=#ErrorStdOut 7 | _#ec=#EscapeChar 8 | _#hi=#HotkeyInterval 9 | _#hmt=#HotkeyModifierTimeout 10 | _#htstr=#Hotstring 11 | _#iwa=#IfWinActive 12 | _#iwe=#IfWinExist 13 | _#iwna=#IfWinNotActive 14 | _#iwne=#IfWinNotExist 15 | _#inc=#Include 16 | _#ia=#IncludeAgain 17 | _#ikh=#InstallKeybdHook 18 | _#imh=#InstallMouseHook 19 | _#kh=#KeyHistory 20 | _#lt=#LTrim 21 | _#mhpi=#MaxHotkeysPerInterval 22 | _#mm=#MaxMem 23 | _#mt=#MaxThreads 24 | _#mtb=#MaxThreadsBuffer 25 | _#mtph=#MaxThreadsPerHotkey 26 | _#ne=#NoEnv 27 | _#nti=#NoTrayIcon 28 | _#per=#Persistent 29 | _#si=#SingleInstance 30 | _#uh=#UseHook 31 | _#waf=#WinActivateForce 32 | _at=AutoTrim 33 | _bi=BlockInput 34 | _bre=Break 35 | _clk=Click 36 | _cw=ClipWait 37 | _cont=Continue 38 | _con=Control 39 | _cc=ControlClick 40 | _cf=ControlFocus 41 | _cg=ControlGet 42 | _cgf=ControlGetFocus 43 | _cgp=ControlGetPos 44 | _cgt=ControlGetText 45 | _cmove=ControlMove 46 | _cs=ControlSend 47 | _csr=ControlSendRaw 48 | _cst=ControlSetText 49 | _cmode=CoordMode 50 | _c=Critical 51 | _dht=DetectHiddenText 52 | _dhw=DetectHiddenWindows 53 | _dri=Drive 54 | _dg=DriveGet 55 | _dsf=DriveSpaceFree 56 | _edt=Edit 57 | _else=Else 58 | _eadd=EnvAdd 59 | _ed=EnvDiv 60 | _eg=EnvGet 61 | _em=EnvMult 62 | _eset=EnvSet 63 | _esub=EnvSub 64 | _eu=EnvUpdate 65 | _ext=Exit 66 | _eapp=ExitApp 67 | _fa=FileAppend 68 | _fc=FileCopy 69 | _fcopyd=FileCopyDir 70 | _fcreated=FileCreateDir 71 | _fcs=FileCreateShortcut 72 | _fd=FileDelete 73 | _fga=FileGetAttrib 74 | _fgshort=FileGetShortcut 75 | _fgsize=FileGetSize 76 | _fgt=FileGetTime 77 | _fgv=FileGetVersion 78 | _fi=FileInstall 79 | _fm=FileMove 80 | _fmd=FileMoveDir 81 | _fr=FileRead 82 | _frl=FileReadLine 83 | _frec=FileRecycle 84 | _fre=FileRecycleEmpty 85 | _frd=FileRemoveDir 86 | _fsf=FileSelectFile 87 | _fsfold=FileSelectFolder 88 | _fsa=FileSetAttrib 89 | _fst=FileSetTime 90 | _ft=FormatTime 91 | _gks=GetKeyState 92 | _gsb=Gosub 93 | _gt=Goto 94 | _gact=GroupActivate 95 | _gadd=GroupAdd 96 | _gc=GroupClose 97 | _gd=GroupDeactivate 98 | _gui=Gui 99 | _gc=GuiControl 100 | _gcg=GuiControlGet 101 | _htk=Hotkey 102 | _ivba=If Var [not] between Low and High 103 | _ivcv=If Var [not] contains value1,value2,... 104 | _iviv=If Var [not] in value1,value2,... 105 | _ivi=If Var is [not] integer|float|number|digit|xdigit|alpha|upper|lower|alnum|space|time 106 | _ie=IfEqual 107 | _iexs=IfExist 108 | _ig=IfGreater 109 | _igoe=IfGreaterOrEqual 110 | _iis=IfInString 111 | _il=IfLess 112 | _ile=IfLessOrEqual 113 | _imb=IfMsgBox 114 | _ine=IfNotEqual 115 | _inexs=IfNotExist 116 | _inis=IfNotInString 117 | _iwa=IfWinActive 118 | _iwe=IfWinExist 119 | _iwna=IfWinNotActive 120 | _iwne=IfWinNotExist 121 | _is=ImageSearch 122 | _id=IniDelete 123 | _ir=IniRead 124 | _iw=IniWrite 125 | _ipt=Input 126 | _ib=InputBox 127 | _kh=KeyHistory 128 | _kw=KeyWait 129 | _lh=ListHotkeys 130 | _ll=ListLines 131 | _lv=ListVars 132 | _lop=Loop 133 | _lf=Loop, FilePattern 134 | _lp=Loop, Parse 135 | _lr=Loop, Read 136 | _lreg=Loop, Reg 137 | _mnu=Menu 138 | _mc=MouseClick 139 | _mcd=MouseClickDrag 140 | _mgp=MouseGetPos 141 | _mm=MouseMove 142 | _mb=MsgBox 143 | _oe=OnExit 144 | _od=OutputDebug 145 | _p=Pause 146 | _pgc=PixelGetColor 147 | _ps=PixelSearch 148 | _pm=PostMessage 149 | _pcs=Process 150 | _pgs=Progress 151 | _rnd=Random 152 | _rd=RegDelete 153 | _rr=RegRead 154 | _rw=RegWrite 155 | _rel=Reload 156 | _rpt=Repeat 157 | _rtn=Return 158 | _run=Run 159 | _ras=RunAs 160 | _rw=RunWait 161 | _snd=Send 162 | _sevent=SendEvent 163 | _si=SendInput 164 | _smsg=SendMessage 165 | _smode=SendMode 166 | _sp=SendPlay 167 | _sr=SendRaw 168 | _sbl=SetBatchLines 169 | _scs=SetCapslockState 170 | _scd=SetControlDelay 171 | _sdms=SetDefaultMouseSpeed 172 | _senv=SetEnv 173 | _sf=SetFormat 174 | _skd=SetKeyDelay 175 | _smd=SetMouseDelay 176 | _sns=SetNumlockState 177 | _ssls=SetScrollLockState 178 | _sscm=SetStoreCapslockMode 179 | _st=SetTimer 180 | _stmm=SetTitleMatchMode 181 | _swd=SetWinDelay 182 | _swdir=SetWorkingDir 183 | _sdwn=Shutdown 184 | _slp=Sleep 185 | _srt=Sort 186 | _sb=SoundBeep 187 | _sget=SoundGet 188 | _sgwv=SoundGetWaveVolume 189 | _sp=SoundPlay 190 | _ss=SoundSet 191 | _sswv=SoundSetWaveVolume 192 | _simg=SplashImage 193 | _stoff=SplashTextOff 194 | _ston=SplashTextOn 195 | _sp=SplitPath 196 | _sbgt=StatusBarGetText 197 | _sbw=StatusBarWait 198 | _scsense=StringCaseSense 199 | _sgpos=StringGetPos 200 | _sleft=StringLeft 201 | _slen=StringLen 202 | _slower=StringLower 203 | _smid=StringMid 204 | _sreplace=StringReplace 205 | _sright=StringRight 206 | _ssplit=StringSplit 207 | _stleft=StringTrimLeft 208 | _stright=StringTrimRight 209 | _supper=StringUpper 210 | _spnd=Suspend 211 | _sysget=SysGet 212 | _thr=Thread 213 | _tt=ToolTip 214 | _tfm=Transform 215 | _ttip=TrayTip 216 | _udtf=URLDownloadToFile 217 | _wa=WinActivate 218 | _wab=WinActivateBottom 219 | _wc=WinClose 220 | _wg=WinGet 221 | _wgas=WinGetActiveStats 222 | _wgat=WinGetActiveTitle 223 | _wgc=WinGetClass 224 | _wgp=WinGetPos 225 | _wgtext=WinGetText 226 | _wgtitle=WinGetTitle 227 | _wh=WinHide 228 | _wk=WinKill 229 | _wmax=WinMaximize 230 | _wmsi=WinMenuSelectItem 231 | _wmin=WinMinimize 232 | _wma=WinMinimizeAll 233 | _wmau=WinMinimizeAllUndo 234 | _wm=WinMove 235 | _wr=WinRestore 236 | _ws=WinSet 237 | _wst=WinSetTitle 238 | _wshow=WinShow 239 | _ww=WinWait 240 | _wwa=WinWaitActive 241 | _wwc=WinWaitClose 242 | _wwna=WinWaitNotActive -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/ahk.keywords.properties: -------------------------------------------------------------------------------- 1 | # Keywords for AutoHotkey 2 | 3 | # Flow of control 4 | 5 | keywords.$(file.patterns.ahk)=\ 6 | break continue else exit exitapp gosub goto if ifequal ifexist ifgreater \ 7 | ifgreaterorequal ifinstring ifless iflessorequal ifmsgbox ifnotequal \ 8 | ifnotexist ifnotinstring ifwinactive ifwinexist ifwinnotactive ifwinnotexist \ 9 | loop onexit pause repeat return setbatchlines settimer sleep suspend \ 10 | static global local byref 11 | 12 | # Commands 13 | 14 | keywords2.$(file.patterns.ahk)=\ 15 | autotrim blockinput clipwait control controlclick controlfocus \ 16 | controlget controlgetfocus controlgetpos controlgettext controlmove \ 17 | controlsend controlsendraw controlsettext coordmode critical detecthiddentext \ 18 | detecthiddenwindows drive driveget drivespacefree edit endrepeat envadd \ 19 | envdiv envget envmult envset envsub envupdate fileappend filecopy \ 20 | filecopydir filecreatedir filecreateshortcut filedelete filegetattrib \ 21 | filegetshortcut filegetsize filegettime filegetversion fileinstall filemove \ 22 | filemovedir fileread filereadline filerecycle filerecycleempty fileremovedir \ 23 | fileselectfile fileselectfolder filesetattrib filesettime formattime \ 24 | getkeystate groupactivate groupadd groupclose groupdeactivate gui \ 25 | guicontrol guicontrolget hideautoitwin hotkey \ 26 | imagesearch inidelete iniread iniwrite input inputbox keyhistory keywait \ 27 | listhotkeys listlines listvars menu mouseclick mouseclickdrag mousegetpos \ 28 | mousemove msgbox outputdebug pixelgetcolor pixelsearch \ 29 | postmessage process progress random regdelete regread regwrite reload \ 30 | run runas runwait \ 31 | send sendevent sendinput sendmessage sendmode sendplay sendraw \ 32 | setcapslockstate setcontroldelay setdefaultmousespeed setenv setformat \ 33 | setkeydelay setmousedelay setnumlockstate setscrolllockstate \ 34 | setstorecapslockmode settitlematchmode setwindelay setworkingdir \ 35 | shutdown sort soundbeep soundget soundgetwavevolume soundplay soundset \ 36 | soundsetwavevolume splashimage splashtextoff splashtexton splitpath \ 37 | statusbargettext statusbarwait stringcasesense stringgetpos stringleft \ 38 | stringlen stringlower stringmid stringreplace stringright stringsplit \ 39 | stringtrimleft stringtrimright stringupper sysget thread tooltip \ 40 | transform traytip urldownloadtofile winactivate winactivatebottom winclose \ 41 | winget wingetactivestats wingetactivetitle wingetclass wingetpos wingettext \ 42 | wingettitle winhide winkill winmaximize winmenuselectitem winminimize \ 43 | winminimizeall winminimizeallundo winmove winrestore winset winsettitle \ 44 | winshow winwait winwaitactive winwaitclose winwaitnotactive 45 | 46 | # Functions 47 | 48 | keywords3.$(file.patterns.ahk)=\ 49 | abs acos asc asin atan ceil chr cos dllcall exp fileexist floor getkeystate \ 50 | il_add il_create il_destroy instr islabel ln log lv_add lv_delete lv_deletecol \ 51 | lv_getcount lv_getnext lv_gettext lv_insert lv_insertcol lv_modify \ 52 | lv_modifycol lv_setimagelist mod onmessage round \ 53 | regexmatch regexreplace \ 54 | sb_seticon sb_setparts sb_settext sin sqrt strlen substr tan \ 55 | tv_add tv_delete tv_getchild tv_getcount tv_getnext tv_get tv_getparent \ 56 | tv_getprev tv_getselection tv_gettext tv_modify \ 57 | varsetcapacity winactive winexist 58 | 59 | # Directives 60 | 61 | keywords4.$(file.patterns.ahk)=\ 62 | allowsamelinecomments clipboardtimeout commentflag errorstdout escapechar \ 63 | hotkeyinterval hotkeymodifiertimeout hotstring ifwinactive ifwinexist include \ 64 | includeagain installkeybdhook installmousehook keyhistory ltrim \ 65 | maxhotkeysperinterval maxmem maxthreads maxthreadsbuffer maxthreadsperhotkey \ 66 | noenv notrayicon persistent singleinstance usehook winactivateforce 67 | 68 | # Keys & buttons 69 | 70 | keywords5.$(file.patterns.ahk)=\ 71 | shift lshift rshift alt lalt ralt control lcontrol rcontrol \ 72 | ctrl lctrl rctrl lwin rwin appskey \ 73 | altdown altup shiftdown shiftup ctrldown ctrlup \ 74 | lwindown lwinup rwindown rwinup \ 75 | lbutton rbutton mbutton wheelup wheeldown xbutton1 xbutton2 \ 76 | joy1 joy2 joy3 joy4 joy5 joy6 joy7 joy8 joy9 joy10 joy11 joy12 joy13 joy14 \ 77 | joy15 joy16 joy17 joy18 joy19 joy20 joy21 joy22 joy23 joy24 joy25 joy26 joy27 \ 78 | joy28 joy29 joy30 joy31 joy32 \ 79 | joyx joyy joyz joyr joyu joyv joypov joyname joybuttons joyaxes joyinfo \ 80 | space tab enter escape esc backspace bs delete del insert ins pgup pgdn \ 81 | home end up down left right \ 82 | printscreen ctrlbreak pause scrolllock capslock numlock \ 83 | numpad0 numpad1 numpad2 numpad3 numpad4 numpad5 numpad6 numpad7 numpad8 numpad9 \ 84 | numpadmult numpadadd numpadsub numpaddiv numpaddot numpaddel numpadins \ 85 | numpadclear numpadup numpaddown numpadleft numpadright numpadhome numpadend \ 86 | numpadpgup numpadpgdn numpadenter \ 87 | f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 \ 88 | f13 f14 f15 f16 f17 f18 f19 f20 f21 f22 f23 f24 \ 89 | browser_back browser_forward browser_refresh browser_stop browser_search \ 90 | browser_favorites browser_home volume_mute volume_down volume_up \ 91 | media_next media_prev media_stop media_play_pause \ 92 | launch_mail launch_media launch_app1 launch_app2 \ 93 | blind click raw 94 | 95 | # Variables 96 | 97 | keywords6.$(file.patterns.ahk)=\ 98 | a_ahkpath a_ahkversion a_appdata a_appdatacommon a_autotrim a_batchlines \ 99 | a_caretx a_carety a_computername a_controldelay a_cursor \ 100 | a_dd a_ddd a_dddd a_defaultmousespeed a_desktop a_desktopcommon \ 101 | a_detecthiddentext a_detecthiddenwindows a_endchar \ 102 | a_eventinfo a_exitreason a_formatfloat a_formatinteger a_gui a_guievent \ 103 | a_guicontrol a_guicontrolevent a_guiheight a_guiwidth a_guix a_guiy a_hour \ 104 | a_iconfile a_iconhidden a_iconnumber a_icontip a_index \ 105 | a_ipaddress1 a_ipaddress2 a_ipaddress3 a_ipaddress4 a_isadmin a_iscompiled \ 106 | a_issuspended a_keydelay a_language a_lasterror a_linefile a_linenumber \ 107 | a_loopfield a_loopfileattrib a_loopfiledir a_loopfileext a_loopfilefullpath \ 108 | a_loopfilelongpath a_loopfilename a_loopfileshortname a_loopfileshortpath \ 109 | a_loopfilesize a_loopfilesizekb a_loopfilesizemb a_loopfiletimeaccessed \ 110 | a_loopfiletimecreated a_loopfiletimemodified a_loopreadline a_loopregkey \ 111 | a_loopregname a_loopregsubkey a_loopregtimemodified a_loopregtype \ 112 | a_mday a_min a_mm a_mmm a_mmmm a_mon a_mousedelay a_msec a_mydocuments \ 113 | a_now a_nowutc a_numbatchlines a_ostype a_osversion a_priorhotkey \ 114 | a_programfiles a_programs a_programscommon a_screenheight a_screenwidth \ 115 | a_scriptdir a_scriptfullpath a_scriptname a_sec a_space a_startmenu \ 116 | a_startmenucommon a_startup a_startupcommon a_stringcasesense a_tab a_temp \ 117 | a_thishotkey a_thismenu a_thismenuitem a_thismenuitempos a_tickcount \ 118 | a_timeidle a_timeidlephysical a_timesincepriorhotkey a_timesincethishotkey \ 119 | a_titlematchmode a_titlematchmodespeed a_username a_wday a_windelay a_windir \ 120 | a_workingdir a_yday a_year a_yweek a_yyyy \ 121 | clipboard clipboardall comspec errorlevel programfiles \ 122 | true false 123 | 124 | # "Keywords" (special parameters) 125 | 126 | keywords7.$(file.patterns.ahk)=\ 127 | ltrim rtrim join \ 128 | ahk_id ahk_pid ahk_class ahk_group \ 129 | processname minmax controllist statuscd filesystem setlabel \ 130 | alwaysontop mainwindow nomainwindow useerrorlevel \ 131 | altsubmit hscroll vscroll imagelist wantctrla wantf2 vis visfirst \ 132 | wantreturn backgroundtrans \ 133 | minimizebox maximizebox sysmenu toolwindow exstyle \ 134 | check3 checkedgray readonly notab \ 135 | lastfound lastfoundexist \ 136 | alttab shiftalttab alttabmenu alttabandmenu alttabmenudismiss \ 137 | controllisthwnd hwnd\ 138 | deref pow bitnot bitand bitor bitxor bitshiftleft bitshiftright \ 139 | sendandmouse mousemove mousemouveoff \ 140 | hkey_local_machine hkey_users hkey_current_user hkey_classes_root \ 141 | hkey_current_config hklm hku hkcu hkcr hkcc \ 142 | reg_sz reg_expand_sz reg_multi_sz reg_dword reg_qword reg_binary \ 143 | reg_link reg_resource_list reg_full_resource_descriptor \ 144 | reg_resource_requirements_list reg_dword_big_endian \ 145 | regex \ 146 | pixel mouse screen relative rgb \ 147 | low belownormal normal abovenormal high realtime \ 148 | between contains in is integer float number digit xdigit \ 149 | alpha upper lower alnum time date \ 150 | not or and \ 151 | topmost top bottom transparent transcolor redraw region id idlast \ 152 | count list capacity eject lock unlock \ 153 | label serial type status \ 154 | seconds minutes hours days \ 155 | read parse \ 156 | logoff close error single shutdown menu exit reload \ 157 | tray add rename check uncheck togglecheck enable disable toggleenable default \ 158 | nodefault standard nostandard color delete deleteall icon noicon tip click \ 159 | show \ 160 | edit progress hotkey text picture pic groupbox button \ 161 | checkbox radio dropdownlist ddl combobox statusbar treeview \ 162 | listbox listview datetime monthcal updown slider tab \ 163 | iconsmall tile report sortdesc nosort nosorthdr grid hdr autosize range \ 164 | xm ym ys xs xp yp \ 165 | font resize owner submit nohide minimize maximize restore noactivate na \ 166 | cancel destroy center \ 167 | margin owndialogs guiescape guiclose guisize guicontextmenu guidropfiles \ 168 | tabstop section wrap border top bottom buttons \ 169 | expand first lines \ 170 | number uppercase lowercase limit password multi group background \ 171 | bold italic strike underline norm theme caption delimiter \ 172 | flash style checked \ 173 | password hidden left right center section move \ 174 | focus hide choose choosestring text pos enabled disabled visible \ 175 | notimers interrupt priority waitclose unicode \ 176 | yes no ok cancel abort retry ignore \ 177 | on off all send -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/ahk.lua: -------------------------------------------------------------------------------- 1 | -- ahk.lua 2 | -- ========== 3 | -- Part of SciTE4AutoHotkey 4 | -- This file just implements AutoIndent and Abbreviations for AutoHotkey files 5 | -- and some LUA functions for AutoHotkey scripting 6 | 7 | -- Functions: 8 | -- AutoIndent 9 | -- Abbreviation expand 10 | -- Indentation checker and fixer 11 | 12 | -- ======================= -- 13 | -- Read abbreviations file -- 14 | -- ======================= -- 15 | 16 | local abbrevs = {} 17 | local abbnum = 0 18 | 19 | local f = io.open(props['SciteDefaultHome'] .. "\\ahk.abbrev.properties") 20 | if f ~= nil then 21 | while true do 22 | local readline = f:read("*l") 23 | if readline == nil then 24 | break 25 | end 26 | abbnum = abbnum + 1 27 | abbrevs[abbnum] = readline 28 | end 29 | f:close() 30 | end 31 | 32 | -- =================================================================== -- 33 | -- OnChar event -- need to execute AutoIndent and expand abbreviations -- 34 | -- =================================================================== -- 35 | 36 | function OnChar(curChar) 37 | -- this script only works on AHK lexer 38 | -- check for new line 39 | if curChar == "\n" then 40 | -- then execute AutoIndent 41 | AutoIndent() 42 | end 43 | -- check for space 44 | if curChar == " " then 45 | -- then expand abbreviations 46 | Abbreviations() 47 | end 48 | return false 49 | end 50 | 51 | -- =================== -- 52 | -- AutoIndent function -- 53 | -- =================== -- 54 | 55 | -- this function implements AutoIndent for AutoHotkey 56 | 57 | function AutoIndent() 58 | -- get info 59 | local prevPos = editor:LineFromPosition(editor.CurrentPos) - 1 60 | local prevLine = editor:GetLine(prevPos) 61 | local curPos = prevPos + 1 62 | local curLine = editor:GetLine(curPos) 63 | 64 | -- check for comment 65 | if string.find(prevLine, "^%s*;") ~= nil then 66 | return false 67 | end 68 | 69 | -- check for if is neccesary indent current line 70 | if ((string.find(prevLine, "^%s*{") ~= nil) or (string.find(prevLine, "^.*{") ~= nil)) then 71 | editor.CurrentPos = editor:PositionFromLine(curPos) 72 | editor:LineEnd() 73 | editor:Tab() 74 | end 75 | 76 | -- check for if is neccesary deindent previous line 77 | if (string.find(prevLine, "^%s*}") ~= nil) then 78 | editor.CurrentPos = editor:PositionFromLine(prevPos) 79 | -- deindent only if there are tabs 80 | if (string.find(prevLine, "%s-.*") ~= nil) then 81 | editor:Home() 82 | editor:BackTab() 83 | -- and deindent current line 84 | editor.CurrentPos = editor:PositionFromLine(curPos) 85 | editor:Home() 86 | editor:BackTab() 87 | end 88 | end 89 | 90 | -- go to current line 91 | editor.CurrentPos = editor:PositionFromLine(curPos) 92 | editor:LineEnd() 93 | 94 | return false 95 | end 96 | 97 | -- ====================== -- 98 | -- Abbreviations function -- 99 | -- ====================== -- 100 | 101 | -- this function implements an abbreviation system for AutoHotkey 102 | 103 | function Abbreviations() 104 | -- get info 105 | local curLine = editor:GetLine(editor:LineFromPosition(editor.CurrentPos)) 106 | local from = editor:WordStartPosition(editor.CurrentPos-2) 107 | local to = editor:WordEndPosition(editor.CurrentPos-2) 108 | local curword = editor:textrange(from, to) 109 | curword = string.sub(curword, 1, string.len(curword)) 110 | -- proccess abbreviations table & expand abbreviation if is neccesary 111 | for i = 1, abbnum, 1 do 112 | local readline = abbrevs[i] 113 | local posi = string.find(readline, "=") 114 | local abbrev = "" 115 | local expand = "" 116 | if posi ~= nil then 117 | abbrev = string.sub(readline, 1, posi-1) 118 | expand = string.sub(readline, posi+1) 119 | end 120 | if abbrev ~= "" or expand ~= "" then 121 | -- check for word 122 | if curword == abbrev then 123 | -- expand abbreviation if is neccesary 124 | local found = string.find(curLine, "%s*" .. curword .. ".*") 125 | if found ~= nil then 126 | -- check for start 127 | if found == 1 then 128 | editor:SetSel(from, to) 129 | editor:ReplaceSel(expand .. ",") 130 | -- and go to end of line 131 | editor:LineEnd() 132 | end 133 | end 134 | end 135 | end 136 | end 137 | return false 138 | end 139 | 140 | -- ==================================== -- 141 | -- Indentation checker & fixer function -- 142 | -- ==================================== -- 143 | 144 | -- this function checks the indentation of the script and if neccesary fixes it 145 | 146 | function IndentationChecker() 147 | local tabs = 0 148 | local lineIndent = 0 149 | local curLine = "" 150 | -- local indent_size = props['indent.size.*.ahk'] 151 | -- local tab_size = props['tab.size.*.ahk'] 152 | -- local use_tabs = props['use.tabs.*.ahk'] 153 | -- loop for all lines 154 | local i = 0 155 | while true do 156 | i = i + 1 157 | -- get current line 158 | curLine = editor:GetLine(i) 159 | if curLine == nil then 160 | break 161 | end 162 | -- check for comment 163 | if string.find(curLine, "^%s*;") == nil then 164 | -- go to line 165 | editor.CurrentPos = editor:PositionFromLine(i) 166 | editor:Home() 167 | -- get line indentation 168 | lineIndent = editor.LineIndentation[i] 169 | -- deindent line if neccesary 170 | if lineIndent ~= 0 then 171 | for j = 1, lineIndent, 1 do 172 | editor:BackTab() 173 | end 174 | end 175 | -- set indentation settings 176 | -- props['indent.size.*.ahk'] = indent_size 177 | -- props['tab.size.*.ahk'] = tab_size 178 | -- props['use.tabs.*.ahk'] = use_tabs 179 | -- and indent line if neccesary 180 | if tabs ~= 0 then 181 | for j = 1, tabs, 1 do 182 | editor:Tab() 183 | end 184 | end 185 | -- and fix indentation 186 | -- indent "next" line if is neccesary 187 | if ((string.find(curLine, "^%s*{") ~= nil) or (string.find(curLine, "^.*{") ~= nil)) then 188 | tabs = tabs + 1 189 | end 190 | -- deindent current line if is neccesary 191 | if (string.find(curLine, "^%s*}") ~= nil) then 192 | editor:Home() 193 | if (string.find(curLine, "%s-.*") ~= nil) then 194 | tabs = tabs - 1 195 | editor:BackTab() 196 | end 197 | end 198 | end 199 | -- go to end of line 200 | editor:LineEnd() 201 | end 202 | end -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/ahk.properties: -------------------------------------------------------------------------------- 1 | # SciTE settings for AutoHotkey files 2 | # 3 | # March 29, 2007 - Fincs 4 | # 5 | # 6 | 7 | # Set default AutoHotkey path 8 | 9 | AutoHotkeyDir=c:\Program Files\AutoHotkey\ 10 | 11 | # General settings 12 | 13 | file.patterns.ahk=*.ahk 14 | default.file.ext=.ahk 15 | filter.ahk=AutoHotkey (ahk)|$(file.patterns.ahk)| 16 | lexer.$(file.patterns.ahk)=ahk1 17 | 18 | # Import keywords 19 | 20 | import ahk.keywords 21 | 22 | # Autocomplete and call tip settings 23 | 24 | api.$(file.patterns.ahk)=$(SciteDefaultHome)\api\ahk.api 25 | calltip.ahk1.word.characters=#$(chars.alpha)$(chars.numeric)$(chars.accented) 26 | calltip.ahk1.ignorecase=1 27 | calltip.ahk1.parameters.start= ( , 28 | calltip.ahk1.parameters.end= ) 29 | calltip.ahk1.parameters.separator= , 30 | autocomplete.ahk1.ignorecase=1 31 | autocomplete.ahk1.start.characters=$(chars.alpha)$(chars.numeric)$_@# 32 | word.characters.$(file.patterns.ahk)=$(chars.alpha)$(chars.numeric)$(chars.accented).$_@# 33 | 34 | # Lua extension definition - script for AutoIndent, Abbreviation support and Indentation checker 35 | 36 | extension.$(file.patterns.ahk)=$(SciteDefaultHome)\ahk.lua 37 | 38 | # Indentation settings 39 | 40 | indent.maintain.$(file.patterns.ahk)=0 41 | indent.size.$(file.patterns.ahk)=4 42 | tab.size.$(file.patterns.ahk)=4 43 | use.tabs.$(file.patterns.ahk)=1 44 | 45 | # Comments functions definition 46 | 47 | comment.block.ahk1=;~ 48 | comment.block.at.line.start.ahk1=1 49 | comment.stream.start.ahk1=/* 50 | comment.stream.end.ahk1=*/ 51 | comment.box.start.ahk1=/* 52 | comment.box.end.ahk1= */ 53 | 54 | # Some fold settings 55 | 56 | fold.at.else=1 57 | 58 | # Backup function 59 | 60 | make.backup=1 61 | 62 | # AutoHotkey Style 63 | 64 | # Base (background, base font) 65 | style.ahk1.32= 66 | 67 | # Default (everything not below: spaces, untyped parameters) 68 | style.ahk1.0=fore:#FBFBFB 69 | 70 | # Line comment (; syntax) 71 | style.ahk1.1=fore:#80A0FF,#italics 72 | 73 | # Block comment (/*...*/ syntax) 74 | style.ahk1.2=fore:#80A0FF 75 | 76 | # Escape (`x) 77 | style.ahk1.3=fore:#FFA500,bold,back:#0D0D0D 78 | 79 | # Syntax operator 80 | style.ahk1.4=fore:#00C800,bold 81 | 82 | # Expression operator 83 | style.ahk1.5=fore:#FF0000,bold 84 | 85 | # String 86 | style.ahk1.6=fore:#C0C0C0,bold 87 | 88 | # Number 89 | style.ahk1.7=fore:#FFFF80,bold 90 | 91 | # Identifier (variable & function call) 92 | style.ahk1.8=fore:#FBFBFB 93 | 94 | # Variable dereferencing %varName% 95 | style.ahk1.9=$(style.ahk1.8),back:#0D0D0D,bold 96 | 97 | # Label, Hotkeys & Hotstrings (& Function definition?) 98 | style.ahk1.10=fore:#FFE6CC,#back:#000011,bold 99 | 100 | # Keyword - Flow of control 101 | style.ahk1.11=fore:#FFFF60,bold 102 | 103 | # Keyword - Commands 104 | style.ahk1.12=fore:#80FF00,bold 105 | 106 | # Keyword - Functions 107 | style.ahk1.13=fore:#C0DCC0, 108 | 109 | # Keyword - Directives 110 | style.ahk1.14=fore:#FF80FF,bold 111 | 112 | # Keyword - Keys & buttons 113 | style.ahk1.15=fore:#FFA5FF,bold 114 | 115 | # Keyword - Built-in Variables 116 | style.ahk1.16=fore:#FF8000,bold 117 | 118 | # Keyword - special parameters ("Keywords") 119 | style.ahk1.17=$(style.ahk1.13),bold 120 | 121 | # Keyword - User defined 122 | style.ahk1.18=fore:#800020,bold 123 | 124 | # Variable keyword (built-in) dereferencing %A_xxx% 125 | style.ahk1.19=$(style.ahk1.16),back:#166826 126 | 127 | # Error (unclosed string, unknown operator, invalid dereferencing, etc.) 128 | style.ahk1.20=back:#FFC0C0 129 | 130 | # Command to run script (F5) 131 | 132 | command.go.$(file.patterns.ahk)="$(AutoHotkeyDir)\AutoHotkey.exe" /ErrorStdOut "$(FileNameExt)" 133 | 134 | # Commands to compile script (F7 & Ctrl+F7) 135 | 136 | command.compile.*.ahk=$(AutoHotkeyDir)\Compiler\Ahk2Exe.exe /in "$(FilePath)" 137 | command.build.*.ahk="$(AutoHotkeyDir)\Compiler\Ahk2Exe.exe" /in "$(FilePath)" 138 | 139 | # Help on keywords (F1) 140 | 141 | command.help.*.ahk=$(CurrentWord)!$(AutoHotkeyDir)\AutoHotkey.chm 142 | command.help.subsystem.*.ahk=4 143 | 144 | # Active window info tool 145 | 146 | command.name.1.*.ahk=AU3_Spy 147 | command.1.*.ahk=$(AutoHotkeyDir)\AU3_Spy.exe 148 | command.save.before.1.*.ahk=1 149 | command.subsystem.1.$(file.patterns.ahk)=1 150 | 151 | # SmartGUI 4 SciTE 152 | 153 | command.name.2.*.ahk=SmartGUI 154 | command.2.*.ahk=$(AutoHotkeyDir)\smartgui\SmartGUI.exe 155 | command.save.before.2.*.ahk=1 156 | command.subsystem.2.$(file.patterns.ahk)=2 157 | 158 | # Indentation checker 159 | 160 | command.name.3.*.ahk=Indentation checker 161 | command.mode.3.*.ahk=subsystem:lua,savebefore:no 162 | command.3.*.ahk=IndentationChecker 163 | 164 | # Scriptlet Library 165 | 166 | command.name.4.*.ahk=Scriptlet Library 167 | command.4.*.ahk=$(SciteDefaultHome)\tools\Scriptlet Library.exe 168 | command.save.before.4.*.ahk=1 169 | command.subsystem.4.$(file.patterns.ahk)=2 170 | 171 | # VisualIni 172 | 173 | command.name.5.*.ahk=VisualIni 174 | command.5.*.ahk=$(SciteDefaultHome)\tools\VisualIni.exe 175 | command.save.before.5.*.ahk=1 176 | command.subsystem.5.$(file.patterns.ahk)=2 177 | 178 | # MsgBox Creator 179 | 180 | command.name.6.*.ahk=MsgBox Creator 181 | command.6.*.ahk=$(SciteDefaultHome)\tools\MsgBox Creator.exe 182 | command.save.before.6.*.ahk=1 183 | command.subsystem.6.$(file.patterns.ahk)=2 184 | 185 | # SplashImage Maker 186 | 187 | command.name.7.*.ahk=SplashImage Maker 188 | command.7.*.ahk=$(SciteDefaultHome)\tools\SplashImage Maker.exe 189 | command.save.before.7.*.ahk=1 190 | command.subsystem.7.$(file.patterns.ahk)=2 191 | 192 | # Progress Maker (source taken from SplashImage Maker) 193 | 194 | command.name.8.*.ahk=Progress Maker 195 | command.8.*.ahk=$(SciteDefaultHome)\tools\Progress Maker.exe 196 | command.save.before.8.*.ahk=1 197 | command.subsystem.8.$(file.patterns.ahk)=2 -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/api/ahk.api: -------------------------------------------------------------------------------- 1 | #AllowSameLineComments 2 | #ClipboardTimeout milliseconds 3 | #CommentFlag NewString 4 | #ErrorStdOut 5 | #EscapeChar NewChar 6 | #HotkeyInterval Value 7 | #HotkeyModifierTimeout milliseconds 8 | #Hotstring NewOptions 9 | #IfWinActive [, WinTitle, WinText] 10 | #IfWinExist [, WinTitle, WinText] 11 | #IfWinNotActive [, WinTitle, WinText] 12 | #IfWinNotExist [, WinTitle, WinText] 13 | #Include FileName 14 | #IncludeAgain FileName 15 | #InstallKeybdHook 16 | #InstallMouseHook 17 | #KeyHistory MaxEvents 18 | #LTrim On|Off 19 | #MaxHotkeysPerInterval Value 20 | #MaxMem ValueInMegabytes 21 | #MaxThreads Value 22 | #MaxThreadsBuffer On|Off 23 | #MaxThreadsPerHotkey Value 24 | #NoEnv 25 | #NoTrayIcon 26 | #Persistent 27 | #SingleInstance [force|ignore|off] 28 | #UseHook [On|Off] 29 | #WinActivateForce 30 | 31 | AutoTrim , On|Off 32 | BlockInput , On|Off|Send|Mouse|SendAndMouse|Default|MouseMove|MouseMoveOff 33 | Break 34 | Click 35 | ClipWait [, SecondsToWait, 1] 36 | Continue 37 | Control , Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 38 | ControlClick [, Control-or-Pos, WinTitle, WinText, WhichButton, ClickCount, Options, ExcludeTitle, ExcludeText] 39 | ControlFocus [, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 40 | ControlGet , OutputVar, Cmd [, Value, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 41 | ControlGetFocus , OutputVar [WinTitle, WinText, ExcludeTitle, ExcludeText] 42 | ControlGetPos [, X, Y, Width, Height, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 43 | ControlGetText , OutputVar [, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 44 | ControlMove , Control, X, Y, Width, Height [, WinTitle, WinText, ExcludeTitle, ExcludeText] 45 | ControlSend [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText] 46 | ControlSendRaw [, Control, Keys, WinTitle, WinText, ExcludeTitle, ExcludeText] 47 | ControlSetText , Control, NewText [, WinTitle, WinText, ExcludeTitle, ExcludeText] 48 | CoordMode , ToolTip|Pixel|Mouse [, Screen|Relative] 49 | Critical [, Off] 50 | DetectHiddenText , On|Off 51 | DetectHiddenWindows , On|Off 52 | Drive , Sub-command [, Drive , Value] 53 | DriveGet , OutputVar, Cmd [, Value] 54 | DriveSpaceFree , OutputVar, Drive 55 | Edit 56 | Else 57 | EnvAdd , Var, Value [, TimeUnits] 58 | EnvDiv , Var, Value 59 | EnvGet , OutputVar, EnvVarName 60 | EnvMult , Var, Value 61 | EnvSet , EnvVar, Value 62 | EnvSub , Var, Value [, TimeUnits] 63 | EnvUpdate 64 | Exit [, ExitCode] 65 | ExitApp [, ExitCode] 66 | FileAppend [, Text, Filename] 67 | FileCopy , Source, Dest [, Flag (1 = overwrite)] 68 | FileCopyDir , Source, Dest [, Flag] 69 | FileCreateDir , Path 70 | FileCreateShortcut , Target, Shortcut [, WorkingDir, Args, Description, IconFile, ShortcutKey, IconNumber, RunState] 71 | FileDelete , FilePattern 72 | FileGetAttrib , OutputVar(RASHNDOCT) [, Filename] 73 | FileGetShortcut , LinkFile [, OutTarget, OutDir, OutArgs, OutDescription, OutIcon, OutIconNum, OutRunState] 74 | FileGetSize , OutputVar [, Filename, Units] 75 | FileGetTime , OutputVar [, Filename, WhichTime (M, C, or A -- default is M)] 76 | FileGetVersion , OutputVar [, Filename] 77 | FileInstall , Source, Dest [, Flag (1 = overwrite)] 78 | FileMove , Source, Dest [, Flag (1 = overwrite)] 79 | FileMoveDir , Source, Dest [, Flag (2 = overwrite)] 80 | FileRead , OutputVar, Filename 81 | FileReadLine , OutputVar, Filename, LineNum 82 | FileRecycle , FilePattern 83 | FileRecycleEmpty [, Drive] 84 | FileRemoveDir , Path [, Recurse? (1 = yes)] 85 | FileSelectFile , OutputVar [, Options, RootDir[\DefaultFilename], Prompt, Filter] 86 | FileSelectFolder , OutputVar [, *StartingFolder, Options, Prompt] 87 | FileSetAttrib , Attributes(+-^RASHNOT) [, FilePattern, OperateOnFolders?, Recurse?] 88 | FileSetTime [, YYYYMMDDHH24MISS, FilePattern, WhichTime (M|C|A), OperateOnFolders?, Recurse?] 89 | FormatTime , OutputVar [, YYYYMMDDHH24MISS, Format] 90 | GetKeyState , OutputVar, WhichKey [, Mode (P|T)] 91 | Gosub , Label 92 | Goto , Label 93 | GroupActivate , GroupName [, R] 94 | GroupAdd , GroupName, WinTitle [, WinText, Label, ExcludeTitle, ExcludeText] 95 | GroupClose , GroupName [, A|R] 96 | GroupDeactivate , GroupName [, R] 97 | Gui , sub-command [, Param2, Param3, Param4] 98 | GuiControl , Sub-command, ControlID [, Param3] 99 | GuiControlGet , OutputVar [, Sub-command, ControlID, Param4] 100 | Hotkey , KeyName [, Label, Options] 101 | If ( expression ) 102 | If Var [not] between Low and High 103 | If Var [not] contains value1,value2,... 104 | If Var [not] in value1,value2,... 105 | If Var is [not] integer|float|number|digit|xdigit|alpha|upper|lower|alnum|space|time 106 | IfEqual , var, value 107 | IfExist , File|Dir|Pattern 108 | IfGreater , var, value 109 | IfGreaterOrEqual , var, value 110 | IfInString , Var, SearchString 111 | IfLess , var, value 112 | IfLessOrEqual , var, value 113 | IfMsgBox , Yes|No|OK|Cancel|Abort|Ignore|Retry|Timeout 114 | IfNotEqual , var, value 115 | IfNotExist , File|Dir|Pattern 116 | IfNotInString , Var, SearchString 117 | IfWinActive [, WinTitle, WinText, ExcludeTitle, ExcludeText] 118 | IfWinExist [, WinTitle, WinText, ExcludeTitle, ExcludeText] 119 | IfWinNotActive [, WinTitle, WinText, ExcludeTitle, ExcludeText] 120 | IfWinNotExist [, WinTitle, WinText, ExcludeTitle, ExcludeText] 121 | ImageSearch , OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile 122 | IniDelete , Filename, Section [, Key] 123 | IniRead , OutputVar, Filename, Section, Key [, Default] 124 | IniWrite , Value, Filename, Section, Key 125 | Input [, OutputVar, Options, EndKeys, MatchList] 126 | InputBox , OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default] 127 | KeyHistory 128 | KeyWait , KeyName [, Options] 129 | ListHotkeys 130 | ListLines 131 | ListVars 132 | Loop [, Count] 133 | Loop,FilePattern [, IncludeFolders?, Recurse?] 134 | Loop,Parse , InputVar [, Delimiters|CSV, OmitChars] 135 | Loop,Read , InputFile [, OutputFile] 136 | Loop,HKLM|HKU|HKCU|HKCR|HKCC [, Key, IncludeSubkeys?, Recurse?] 137 | Menu , MenuName, Cmd [, P3, P4, P5] 138 | MouseClick , WhichButton [, X, Y, ClickCount, Speed, D|U, R] 139 | MouseClickDrag , WhichButton, X1, Y1, X2, Y2 [, Speed, R] 140 | MouseGetPos [, OutputVarX, OutputVarY, OutputVarWin, OutputVarControl, 1|2|3] 141 | MouseMove , X, Y [, Speed, R] 142 | MsgBox [, Options, Title, Text, Timeout] 143 | OnExit [, Label] 144 | OutputDebug , Text 145 | Pause [, On|Off|Toggle, OperateOnUnderlyingThread?] 146 | PixelGetColor , OutputVar, X, Y [, Alt|Slow|RGB] 147 | PixelSearch , OutputVarX, OutputVarY, X1, Y1, X2, Y2, ColorID [, Variation, Fast|RGB] 148 | PostMessage , Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 149 | Process , Cmd, PID-or-Name [, Param3] 150 | Progress , Param1 [, SubText, MainText, WinTitle, FontName] 151 | Random , OutputVar [, Min, Max] 152 | RegDelete , HKLM|HKU|HKCU|HKCR|HKCC, SubKey [, ValueName] 153 | RegRead , OutputVar, HKLM|HKU|HKCU|HKCR|HKCC, SubKey [, ValueName] 154 | RegWrite , REG_SZ|REG_EXPAND_SZ|REG_MULTI_SZ|REG_DWORD|REG_BINARY, HKLM|HKU|HKCU|HKCR|HKCC, SubKey [, ValueName, Value] 155 | Reload 156 | Repeat 157 | Return [, Expression] 158 | Run , Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID] 159 | RunAs [, User, Password, Domain] 160 | RunWait , Target [, WorkingDir, Max|Min|Hide|UseErrorLevel, OutputVarPID] 161 | Send , Keys 162 | SendEvent , Keys 163 | SendInput , Keys 164 | SendMessage , Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText] 165 | SendMode , Event|Play|Input|InputThenPlay 166 | SendPlay , Keys 167 | SendRaw , Keys 168 | SetBatchLines , -1 | 20ms | LineCount 169 | SetCapsLockState , On|Off|AlwaysOn|AlwaysOff 170 | SetControlDelay , Delay 171 | SetDefaultMouseSpeed , Speed 172 | SetEnv , Var, Value 173 | SetFormat , float|integer, TotalWidth.DecimalPlaces|hex|d 174 | SetKeyDelay [, Delay, PressDuration] 175 | SetMouseDelay , Delay 176 | SetNumLockState , On|Off|AlwaysOn|AlwaysOff 177 | SetScrollLockState , On|Off|AlwaysOn|AlwaysOff 178 | SetStoreCapslockMode , On|Off 179 | SetTimer , Label [, Period|On|Off] 180 | SetTitleMatchMode , Fast|Slow|RegEx|1|2|3 181 | SetWinDelay , Delay 182 | SetWorkingDir , DirName 183 | Shutdown , Code 184 | Sleep , Delay 185 | Sort , VarName [, Options] 186 | SoundBeep [, Frequency, Duration] 187 | SoundGet , OutputVar [, ComponentType, ControlType, DeviceNumber] 188 | SoundGetWaveVolume , OutputVar [, DeviceNumber] 189 | SoundPlay , Filename [, wait] 190 | SoundSet , NewSetting [, ComponentType, ControlType, DeviceNumber] 191 | SoundSetWaveVolume , Percent [, DeviceNumber] 192 | SplashImage [, ImageFile, Options, SubText, MainText, WinTitle, FontName] 193 | SplashTextOff 194 | SplashTextOn [, Width, Height, Title, Text] 195 | SplitPath , InputVar [, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive] 196 | StatusBarGetText , OutputVar [, Part#, WinTitle, WinText, ExcludeTitle, ExcludeText] 197 | StatusBarWait [, BarText, Seconds, Part#, WinTitle, WinText, Interval, ExcludeTitle, ExcludeText] 198 | StringCaseSense , On|Off|Locale 199 | StringGetPos , OutputVar, InputVar, SearchText [, L#|R#, Offset] 200 | StringLeft , OutputVar, InputVar, Count 201 | StringLen , OutputVar, InputVar 202 | StringLower , OutputVar, InputVar [, T] 203 | StringMid , OutputVar, InputVar, StartChar [, Count, L] 204 | StringReplace , OutputVar, InputVar, SearchText [, ReplaceText, All] 205 | StringRight , OutputVar, InputVar, Count 206 | StringSplit , OutputArray, InputVar [, Delimiters, OmitChars] 207 | StringTrimLeft , OutputVar, InputVar, Count 208 | StringTrimRight , OutputVar, InputVar, Count 209 | StringUpper , OutputVar, InputVar [, T] 210 | Suspend [, On|Off|Toggle|Permit] 211 | SysGet , OutputVar, Sub-command [, Param3] 212 | Thread , Setting, P2 [, P3] 213 | ToolTip [, Text, X, Y, WhichToolTip] 214 | Transform , OutputVar, Cmd, Value1 [, Value2] 215 | TrayTip [, Title, Text, Seconds, Options] 216 | URLDownloadToFile , URL, Filename 217 | WinActivate [, WinTitle, WinText, ExcludeTitle, ExcludeText] 218 | WinActivateBottom [, WinTitle, WinText, ExcludeTitle, ExcludeText] 219 | WinClose [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText] 220 | WinGet , OutputVar [, Cmd, WinTitle, WinText, ExcludeTitle, ExcludeText] 221 | WinGetActiveStats , Title, Width, Height, X, Y 222 | WinGetActiveTitle , OutputVar 223 | WinGetClass , OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText] 224 | WinGetPos [, X, Y, Width, Height, WinTitle, WinText, ExcludeTitle, ExcludeText] 225 | WinGetText , OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText] 226 | WinGetTitle , OutputVar [, WinTitle, WinText, ExcludeTitle, ExcludeText] 227 | WinHide [, WinTitle, WinText, ExcludeTitle, ExcludeText] 228 | WinKill [, WinTitle, WinText, SecondsToWait, ExcludeTitle, ExcludeText] 229 | WinMaximize [, WinTitle, WinText, ExcludeTitle, ExcludeText] 230 | WinMenuSelectItem , WinTitle, WinText, Menu [, SubMenu1, SubMenu2, SubMenu3, SubMenu4, SubMenu5, SubMenu6, ExcludeTitle, ExcludeText] 231 | WinMinimize [, WinTitle, WinText, ExcludeTitle, ExcludeText] 232 | WinMinimizeAll 233 | WinMinimizeAllUndo 234 | WinMove , WinTitle, WinText, X, Y [, Width, Height, ExcludeTitle, ExcludeText] 235 | WinRestore [, WinTitle, WinText, ExcludeTitle, ExcludeText] 236 | WinSet , AlwaysOnTop|Trans, On|Off|Toggle|Value(0-255) [, WinTitle, WinText, ExcludeTitle, ExcludeText] 237 | WinSetTitle , WinTitle, WinText, NewTitle [, ExcludeTitle, ExcludeText] 238 | WinShow [, WinTitle, WinText, ExcludeTitle, ExcludeText] 239 | WinWait , WinTitle, WinText, Seconds [, ExcludeTitle, ExcludeText] 240 | WinWaitActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText] 241 | WinWaitClose , WinTitle, WinText, Seconds [, ExcludeTitle, ExcludeText] 242 | WinWaitNotActive [, WinTitle, WinText, Seconds, ExcludeTitle, ExcludeText] 243 | 244 | Abs (Number) 245 | ACos (Number) 246 | Asc (String) 247 | ASin (Number) 248 | ATan (Number) 249 | Ceil (Number) 250 | Chr (Number) 251 | Cos (Number) 252 | DllCall ("[DllFile\]Function" [, Type1, Arg1, Type2, Arg2, "Cdecl ReturnType"]) 253 | Exp (Number) 254 | FileExist ("FilePattern") 255 | Floor (Number) 256 | GetKeyState (KeyName [, "P" or "T"]) 257 | IL_Add (ImageListID, Filename [, IconNumber, ResizeNonIcon?]) 258 | IL_Create ([InitialCount, GrowCount, LargeIcons?]) 259 | IL_Destroy (ImageListID) 260 | InStr (Haystack, Needle [, CaseSensitive?, StartingPos]) 261 | IsLabel (LabelName) 262 | Ln (Number) 263 | Log (Number) 264 | LV_Add ([Options, Col1, Col2, ...]) 265 | LV_Delete ([RowNumber]) 266 | LV_DeleteCol (ColumnNumber) 267 | LV_GetCount (["S"]) 268 | LV_GetNext ([StartingRowNumber, "C|F"]) 269 | LV_GetText (OutputVar, RowNumber [, ColumnNumber]) 270 | LV_Insert (RowNumber [, Options, Col1, Col2, ...]) 271 | LV_InsertCol (ColumnNumber [, Options, ColumnTitle]) 272 | LV_Modify (RowNumber, Options [, NewCol1, NewCol2, ...]) 273 | LV_ModifyCol ([ColumnNumber, Options, ColumnTitle]) 274 | LV_SetImageList (ImageListID [, 0|1|2]) 275 | Mod (Dividend, Divisor) 276 | OnMessage (MsgNumber [, "FunctionName"]) 277 | RegExMatch (Haystack, NeedleRegEx [, UnquotedOutputVar = "", StartingPos = 1]) 278 | RegExReplace (Haystack, NeedleRegEx [, Replacement = "", OutputVarCount = "", Limit = -1, StartingPos = 1]) 279 | Round (Number [, Places]) 280 | SB_SetIcon (Filename [, IconNumber, PartNumber]) 281 | SB_SetParts ([Width1, Width2, ... Width255]) 282 | SB_SetText (NewText [, PartNumber, Style]) 283 | Sin (Number) 284 | Sqrt (Number) 285 | StrLen (String) 286 | SubStr (String, StartingPos [, Length]) 287 | Tan (Number) 288 | TV_Add (Name, [ParentItemID, Options]) 289 | TV_Delete ([ItemID]) 290 | TV_GetChild (ParentItemID) 291 | TV_GetCount () 292 | TV_GetNext ([ItemID, "Checked | Full"]) 293 | TV_Get (ItemID, "Expand | Check | Bold") 294 | TV_GetParent (ItemID) 295 | TV_GetPrev (ItemID) 296 | TV_GetSelection () 297 | TV_GetText (OutputVar, ItemID) 298 | TV_Modify (ItemID [, Options, NewName]) 299 | VarSetCapacity (Var [, RequestedCapacity, FillByte]) 300 | WinActive ("WinTitle" [, "WinText", "ExcludeTitle", "ExcludeText"]) 301 | WinExist ("WinTitle" [, "WinText", "ExcludeTitle", "ExcludeText"]) 302 | 303 | Pixel 304 | Mouse 305 | Screen 306 | Relative 307 | RGB 308 | LTrim 309 | RTrim 310 | Join 311 | Low 312 | BelowNormal 313 | Normal 314 | AboveNormal 315 | High 316 | Realtime 317 | ahk_id 318 | ahk_pid 319 | ahk_class 320 | ahk_group 321 | Between 322 | Contains 323 | In 324 | Is 325 | Integer 326 | Float 327 | Number 328 | Digit 329 | Xdigit 330 | Alpha 331 | Upper 332 | Lower 333 | Alnum 334 | Time 335 | Date 336 | Not 337 | Or 338 | And 339 | AlwaysOnTop 340 | Topmost 341 | Top 342 | Bottom 343 | Transparent 344 | TransColor 345 | Redraw 346 | Region 347 | ID 348 | IDLast 349 | ProcessName 350 | MinMax 351 | ControlList 352 | Count 353 | List 354 | Capacity 355 | StatusCD 356 | Eject 357 | Lock 358 | Unlock 359 | Label 360 | FileSystem 361 | Label 362 | SetLabel 363 | Serial 364 | Type 365 | Status 366 | static 367 | global 368 | local 369 | ByRef 370 | Seconds 371 | Minutes 372 | Hours 373 | Days 374 | Read 375 | Parse 376 | Logoff 377 | Close 378 | Error 379 | Single 380 | Tray 381 | Add 382 | Rename 383 | Check 384 | UnCheck 385 | ToggleCheck 386 | Enable 387 | Disable 388 | ToggleEnable 389 | Default 390 | NoDefault 391 | Standard 392 | NoStandard 393 | Color 394 | Delete 395 | DeleteAll 396 | Icon 397 | NoIcon 398 | Tip 399 | Click 400 | Show 401 | MainWindow 402 | NoMainWindow 403 | UseErrorLevel 404 | Text 405 | Picture 406 | Pic 407 | GroupBox 408 | Button 409 | Checkbox 410 | Radio 411 | DropDownList 412 | DDL 413 | ComboBox 414 | ListBox 415 | ListView 416 | DateTime 417 | MonthCal 418 | Slider 419 | StatusBar 420 | Tab 421 | TreeView 422 | UpDown 423 | IconSmall 424 | Tile 425 | Report 426 | SortDesc 427 | NoSort 428 | NoSortHdr 429 | Grid 430 | Hdr 431 | AutoSize 432 | Range 433 | xm 434 | ym 435 | ys 436 | xs 437 | xp 438 | yp 439 | Font 440 | Resize 441 | Owner 442 | Submit 443 | NoHide 444 | Minimize 445 | Maximize 446 | Restore 447 | NoActivate 448 | NA 449 | Cancel 450 | Destroy 451 | Center 452 | Margin 453 | MaxSize 454 | MinSize 455 | OwnDialogs 456 | GuiEscape 457 | GuiClose 458 | GuiSize 459 | GuiContextMenu 460 | GuiDropFiles 461 | TabStop 462 | Section 463 | AltSubmit 464 | Wrap 465 | HScroll 466 | VScroll 467 | Border 468 | Top 469 | Bottom 470 | Buttons 471 | Expand 472 | First 473 | ImageList 474 | Lines 475 | WantCtrlA 476 | WantF2 477 | Vis 478 | VisFirst 479 | Number 480 | Uppercase 481 | Lowercase 482 | Limit 483 | Password 484 | Multi 485 | WantReturn 486 | Group 487 | Background 488 | bold 489 | italic 490 | strike 491 | underline 492 | norm 493 | BackgroundTrans 494 | Theme 495 | Caption 496 | Delimiter 497 | MinimizeBox 498 | MaximizeBox 499 | SysMenu 500 | ToolWindow 501 | Flash 502 | Style 503 | ExStyle 504 | Check3 505 | Checked 506 | CheckedGray 507 | ReadOnly 508 | Password 509 | Hidden 510 | Left 511 | Right 512 | Center 513 | NoTab 514 | Section 515 | Move 516 | Focus 517 | Hide 518 | Choose 519 | ChooseString 520 | Text 521 | Pos 522 | Enabled 523 | Disabled 524 | Visible 525 | LastFound 526 | LastFoundExist 527 | AltTab 528 | ShiftAltTab 529 | AltTabMenu 530 | AltTabAndMenu 531 | AltTabMenuDismiss 532 | NoTimers 533 | Interrupt 534 | Priority 535 | WaitClose 536 | Wait 537 | Exist 538 | Close 539 | {Blind} 540 | {Click} 541 | {Raw} 542 | {AltDown} 543 | {AltUp} 544 | {ShiftDown} 545 | {ShiftUp} 546 | {CtrlDown} 547 | {CtrlUp} 548 | {LWinDown} 549 | {LWinUp} 550 | {RWinDown} 551 | {RWinUp} 552 | Unicode 553 | Asc 554 | Chr 555 | Deref 556 | Mod 557 | Pow 558 | Exp 559 | Sqrt 560 | Log 561 | Ln 562 | Round 563 | Ceil 564 | Floor 565 | Abs 566 | Sin 567 | Cos 568 | Tan 569 | ASin 570 | ACos 571 | ATan 572 | BitNot 573 | BitAnd 574 | BitOr 575 | BitXOr 576 | BitShiftLeft 577 | BitShiftRight 578 | Yes 579 | No 580 | Ok 581 | Cancel 582 | Abort 583 | Retry 584 | Ignore 585 | TryAgain 586 | On 587 | Off 588 | All 589 | HKEY_LOCAL_MACHINE 590 | HKEY_USERS 591 | HKEY_CURRENT_USER 592 | HKEY_CLASSES_ROOT 593 | HKEY_CURRENT_CONFIG 594 | HKLM 595 | HKU 596 | HKCU 597 | HKCR 598 | HKCC 599 | REG_SZ 600 | REG_EXPAND_SZ 601 | REG_MULTI_SZ 602 | REG_DWORD 603 | REG_BINARY 604 | 605 | ^ 606 | + 607 | ! 608 | # 609 | ~ 610 | $ 611 | ` 612 | Shift 613 | LShift 614 | RShift 615 | Alt 616 | LAlt 617 | RAlt 618 | Control 619 | LControl 620 | RControl 621 | Ctrl 622 | LCtrl 623 | RCtrl 624 | LWin 625 | RWin 626 | AppsKey 627 | AltDown 628 | AltUp 629 | ShiftDown 630 | ShiftUp 631 | CtrlDown 632 | CtrlUp 633 | LWinDown 634 | LWinUp 635 | RWinDown 636 | RWinUp 637 | LButton 638 | RButton 639 | MButton 640 | WheelUp 641 | WheelDown 642 | XButton1 643 | XButton2 644 | Joy1 645 | Joy2 646 | Joy3 647 | Joy4 648 | Joy5 649 | Joy6 650 | Joy7 651 | Joy8 652 | Joy9 653 | Joy10 654 | Joy11 655 | Joy12 656 | Joy13 657 | Joy14 658 | Joy15 659 | Joy16 660 | Joy17 661 | Joy18 662 | Joy19 663 | Joy20 664 | Joy21 665 | Joy22 666 | Joy23 667 | Joy24 668 | Joy25 669 | Joy26 670 | Joy27 671 | Joy28 672 | Joy29 673 | Joy30 674 | Joy31 675 | Joy32 676 | JoyX 677 | JoyY 678 | JoyZ 679 | JoyR 680 | JoyU 681 | JoyV 682 | JoyPOV 683 | JoyName 684 | JoyButtons 685 | JoyAxes 686 | JoyInfo 687 | Space 688 | Tab 689 | Enter 690 | Escape 691 | Esc 692 | BackSpace 693 | BS 694 | Delete 695 | Del 696 | Insert 697 | Ins 698 | PGUP 699 | PGDN 700 | Home 701 | End 702 | Up 703 | Down 704 | Left 705 | Right 706 | PrintScreen 707 | CtrlBreak 708 | Pause 709 | ScrollLock 710 | CapsLock 711 | NumLock 712 | Numpad0 713 | Numpad1 714 | Numpad2 715 | Numpad3 716 | Numpad4 717 | Numpad5 718 | Numpad6 719 | Numpad7 720 | Numpad8 721 | Numpad9 722 | NumpadMult 723 | NumpadAdd 724 | NumpadSub 725 | NumpadDiv 726 | NumpadDot 727 | NumpadDel 728 | NumpadIns 729 | NumpadClear 730 | NumpadUp 731 | NumpadDown 732 | NumpadLeft 733 | NumpadRight 734 | NumpadHome 735 | NumpadEnd 736 | NumpadPgup 737 | NumpadPgdn 738 | NumpadEnter 739 | F1 740 | F2 741 | F3 742 | F4 743 | F5 744 | F6 745 | F7 746 | F8 747 | F9 748 | F10 749 | F11 750 | F12 751 | F13 752 | F14 753 | F15 754 | F16 755 | F17 756 | F18 757 | F19 758 | F20 759 | F21 760 | F22 761 | F23 762 | F24 763 | Browser_Back 764 | Browser_Forward 765 | Browser_Refresh 766 | Browser_Stop 767 | Browser_Search 768 | Browser_Favorites 769 | Browser_Home 770 | Volume_Mute 771 | Volume_Down 772 | Volume_Up 773 | Media_Next 774 | Media_Prev 775 | Media_Stop 776 | Media_Play_Pause 777 | Launch_Mail 778 | Launch_Media 779 | Launch_App1 780 | Launch_App2 781 | 782 | A_AhkPath 783 | A_AhkVersion 784 | A_AppData 785 | A_AppDataCommon 786 | A_AutoTrim 787 | A_BatchLines 788 | A_CaretX 789 | A_CaretY 790 | A_ComputerName 791 | A_ControlDelay 792 | A_Cursor 793 | A_DD 794 | A_DDD 795 | A_DDDD 796 | A_DefaultMouseSpeed 797 | A_Desktop 798 | A_DesktopCommon 799 | A_DetectHiddenText 800 | A_DetectHiddenWindows 801 | A_EndChar 802 | A_EventInfo 803 | A_ExitReason 804 | A_FormatFloat 805 | A_FormatInteger 806 | A_Gui 807 | A_GuiEvent 808 | A_GuiControl 809 | A_GuiControlEvent 810 | A_GuiHeight 811 | A_GuiWidth 812 | A_GuiX 813 | A_GuiY 814 | A_Hour 815 | A_IconFile 816 | A_IconHidden 817 | A_IconNumber 818 | A_IconTip 819 | A_Index 820 | A_IPAddress1 821 | A_IPAddress2 822 | A_IPAddress3 823 | A_IPAddress4 824 | A_ISAdmin 825 | A_IsCompiled 826 | A_IsSuspended 827 | A_KeyDelay 828 | A_Language 829 | A_LastError 830 | A_LineFile 831 | A_LineNumber 832 | A_LoopField 833 | A_LoopFileAttrib 834 | A_LoopFileDir 835 | A_LoopFileExt 836 | A_LoopFileFullPath 837 | A_LoopFileLongPath 838 | A_LoopFileName 839 | A_LoopFileShortName 840 | A_LoopFileShortPath 841 | A_LoopFileSize 842 | A_LoopFileSizeKB 843 | A_LoopFileSizeMB 844 | A_LoopFileTimeAccessed 845 | A_LoopFileTimeCreated 846 | A_LoopFileTimeModified 847 | A_LoopReadLine 848 | A_LoopRegKey 849 | A_LoopRegName 850 | A_LoopRegSubkey 851 | A_LoopRegTimeModified 852 | A_LoopRegType 853 | A_MDAY 854 | A_Min 855 | A_MM 856 | A_MMM 857 | A_MMMM 858 | A_Mon 859 | A_MouseDelay 860 | A_MSec 861 | A_MyDocuments 862 | A_Now 863 | A_NowUTC 864 | A_NumBatchLines 865 | A_OSType 866 | A_OSVersion 867 | A_PriorHotkey 868 | A_ProgramFiles 869 | A_Programs 870 | A_ProgramsCommon 871 | A_ScreenHeight 872 | A_ScreenWidth 873 | A_ScriptDir 874 | A_ScriptFullPath 875 | A_ScriptName 876 | A_Sec 877 | A_Space 878 | A_StartMenu 879 | A_StartMenuCommon 880 | A_Startup 881 | A_StartupCommon 882 | A_StringCaseSense 883 | A_Tab 884 | A_Temp 885 | A_ThisHotkey 886 | A_ThisMenu 887 | A_ThisMenuItem 888 | A_ThisMenuItemPos 889 | A_TickCount 890 | A_TimeIdle 891 | A_TimeIdlePhysical 892 | A_TimeSincePriorHotkey 893 | A_TimeSinceThisHotkey 894 | A_TitleMatchMode 895 | A_TitleMatchModeSpeed 896 | A_UserName 897 | A_WDay 898 | A_WinDelay 899 | A_WinDir 900 | A_WorkingDir 901 | A_YDay 902 | A_YEAR 903 | A_YWeek 904 | A_YYYY 905 | Clipboard 906 | ClipboardAll 907 | ComSpec 908 | ErrorLevel 909 | ProgramFiles 910 | True 911 | False -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/api/ahk.user.calltips.api: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/api/ahk.user.calltips.api -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/locale.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/locale.properties -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/tools/MsgBox Creator.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/tools/MsgBox Creator.exe -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/tools/Progress Maker.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/tools/Progress Maker.exe -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/tools/Scriptlet Library.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/tools/Scriptlet Library.exe -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/tools/SplashImage Maker.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/tools/SplashImage Maker.exe -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/tools/VisualIni.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/tools/VisualIni.exe -------------------------------------------------------------------------------- /tools/SciTE4AutoHotkey/请先看这里.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FreemanZY/AutoHotKey/8664064e948b6f24a600defce73c6566d8e954e9/tools/SciTE4AutoHotkey/请先看这里.txt --------------------------------------------------------------------------------