├── .gitattributes ├── .gitignore ├── LICENSE ├── LOGO.clip ├── LOGO.ico ├── LOGO.png ├── 全屏识别.png ├── 取色环.clip ├── 取色环.png ├── 右箭头.png ├── 左箭头.png ├── 德芙色轮.ahk ├── 隐藏工具栏.png └── 隐藏菜单.png /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.exe 3 | *.7z 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 黑钨 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LOGO.clip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/LOGO.clip -------------------------------------------------------------------------------- /LOGO.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/LOGO.ico -------------------------------------------------------------------------------- /LOGO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/LOGO.png -------------------------------------------------------------------------------- /全屏识别.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/全屏识别.png -------------------------------------------------------------------------------- /取色环.clip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/取色环.clip -------------------------------------------------------------------------------- /取色环.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/取色环.png -------------------------------------------------------------------------------- /右箭头.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/右箭头.png -------------------------------------------------------------------------------- /左箭头.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/左箭头.png -------------------------------------------------------------------------------- /德芙色轮.ahk: -------------------------------------------------------------------------------- 1 | full_command_line := DllCall("GetCommandLine", "str") 2 | 3 | if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)")) 4 | { 5 | try 6 | { 7 | if A_IsCompiled 8 | Run *RunAs "%A_ScriptFullPath%" /restart 9 | else 10 | Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%" 11 | } 12 | ExitApp 13 | } 14 | 15 | Process, Priority, , Realtime 16 | #MenuMaskKey vkE8 17 | #WinActivateForce 18 | #InstallKeybdHook 19 | #InstallMouseHook 20 | #Persistent 21 | #NoEnv 22 | #SingleInstance Force 23 | #MaxHotkeysPerInterval 2000 24 | #KeyHistory 2000 25 | SendMode Input 26 | SetBatchLines -1 27 | SetKeyDelay -1, 1 28 | SetWorkingDir %A_ScriptDir% 29 | 30 | Menu, Tray, Icon, %A_ScriptDir%\LOGO.ico 31 | Menu, Tray, NoStandard ;不显示默认的AHK右键菜单 32 | Menu, Tray, Add, 使用教程, 使用教程 ;添加新的右键菜单 33 | Menu, Tray, Add, 视频教程, 视频教程 ;添加新的右键菜单 34 | Menu, Tray, Add, 软件更新, 软件更新 ;添加新的右键菜单 35 | Menu, Tray, Add 36 | Menu, Tray, Add, 简体中文, 语言设置 ;添加新的右键菜单 37 | Menu, Tray, Add, 穿透设置, 穿透设置 ;添加新的右键菜单 38 | Menu, Tray, Add, 画布设置, 画布设置 ;添加新的右键菜单 39 | Menu, Tray, Add, 快捷设置, 快捷设置 ;添加新的右键菜单 40 | Menu, Tray, Add, 色环矫正, 色环矫正 ;添加新的右键菜单 41 | Menu, Tray, Add, 重置设置, 重置设置 ;添加新的右键菜单 42 | Menu, Tray, Add 43 | Menu, Tray, Add, 中键呼出, 中键呼出 ;添加新的右键菜单 44 | Menu, Tray, Add, 记忆模式, 记忆模式 ;添加新的右键菜单 45 | Menu, Tray, Add, 开机自启, 开机自启 ;添加新的右键菜单 46 | Menu, Tray, Add 47 | Menu, Tray, Add, 重启软件, 重启软件 ;添加新的右键菜单 48 | Menu, Tray, Add, 退出软件, 退出软件 ;添加新的右键菜单 49 | 50 | 色轮:=0 ;色轮是否打开 51 | 调色盘:=0 ;调色盘是否打开 52 | 取色位置Y:=477 53 | 色板位置:=1 54 | 色环矫正:=0 55 | 色相慢左旋:=0 56 | 色相慢右旋:=0 57 | 菜单隐藏:=0 58 | 延迟执行:=0 59 | 面板自动展开:=0 60 | 软件Class名:=0 61 | 计时器:=0 62 | 导航穿透:=0 63 | 摸鱼穿透:=0 64 | 65 | if (A_ScreenHeight<1440) 66 | { 67 | 屏幕高度:=1080 68 | } 69 | else if (A_ScreenHeight>=2160) 70 | { 71 | 屏幕高度:=2160 72 | } 73 | else 74 | { 75 | 屏幕高度:=1440 76 | } 77 | 78 | autostartLnk:=A_StartupCommon . "\HighEfficiencyColorWheelForCSPv2.lnk" ;开机启动文件的路径 79 | IfExist, % autostartLnk ;检查开机启动的文件是否存在 80 | { 81 | FileGetShortcut, %autostartLnk%, lnkTarget ;获取开机启动文件的信息 82 | if (lnkTarget!=A_ScriptFullPath) ;如果启动文件执行的路径和当前脚本的完整路径不一致 83 | { 84 | FileCreateShortcut, %A_ScriptFullPath%, %autostartLnk%, %A_WorkingDir% ;将启动文件执行的路径改成和当前脚本的完整路径一致 85 | } 86 | 87 | autostart:=1 88 | Menu, Tray, Check, 开机自启 ;右键菜单打勾 89 | } 90 | else 91 | { 92 | autostart:=0 93 | Menu, Tray, UnCheck, 开机自启 ;右键菜单不打勾 94 | } 95 | 96 | IfExist, %A_ScriptDir%\色轮设置.ini ;如果配置文件存在则读取 97 | { 98 | IniRead, 色轮到笔刷距离, 色轮设置.ini, 设置, 色轮到笔刷距离 99 | IniRead, 鼠标在色轮位置X1, 色轮设置.ini, 设置, 鼠标在色轮位置X1 100 | IniRead, 鼠标在色轮位置Y1, 色轮设置.ini, 设置, 鼠标在色轮位置Y1 101 | IniRead, 鼠标在色轮位置X2, 色轮设置.ini, 设置, 鼠标在色轮位置X2 102 | IniRead, 鼠标在色轮位置Y2, 色轮设置.ini, 设置, 鼠标在色轮位置Y2 103 | IniRead, 色板1色相角度, 色轮设置.ini, 设置, 色板1色相角度 104 | IniRead, 色板2色相角度, 色轮设置.ini, 设置, 色板2色相角度 105 | IniRead, 色轮宽度W, 色轮设置.ini, 设置, 色轮宽度W 106 | IniRead, 色轮高度H, 色轮设置.ini, 设置, 色轮高度H 107 | 色轮目标边长:=Round(256/1080*屏幕高度) 108 | 调色盘按键Y:=Round(480/495*色轮高度H) 109 | 色轮方块XL边界:=Round(104/465*色轮宽度W) 110 | 色轮方块XR边界:=Round(360/465*色轮宽度W) 111 | 色轮方块YU边界:=Round(118/495*色轮高度H) 112 | 色轮方块YD边界:=Round(374/495*色轮高度H) 113 | 圆心坐标X:=Round(色轮宽度W/2) 114 | 圆心坐标Y:=Round(色轮宽度W/2+12/1080*屏幕高度) 115 | 圆的半径:=Round(色轮宽度W/2-10/1080*屏幕高度) 116 | IniRead, 全屏色轮位置X补偿, 色轮设置.ini, 设置, 全屏色轮位置X补偿 117 | IniRead, 全屏色轮位置Y补偿, 色轮设置.ini, 设置, 全屏色轮位置Y补偿 118 | IniRead, 色轮位置X补偿, 色轮设置.ini, 设置, 色轮位置X补偿 119 | IniRead, 色轮位置Y补偿, 色轮设置.ini, 设置, 色轮位置Y补偿 120 | IniRead, 画布左上角X, 色轮设置.ini, 设置, 画布左上角X 121 | IniRead, 画布左上角Y, 色轮设置.ini, 设置, 画布左上角Y 122 | IniRead, 画布右下角X, 色轮设置.ini, 设置, 画布右下角X 123 | IniRead, 画布右下角Y, 色轮设置.ini, 设置, 画布右下角Y 124 | IniRead, 色板1取色颜色, 色轮设置.ini, 设置, 色板1取色颜色 125 | IniRead, 色板2取色颜色, 色轮设置.ini, 设置, 色板2取色颜色 126 | IniRead, 调色盘笔刷样式, 色轮设置.ini, 设置, 调色盘笔刷样式 127 | IniRead, 调色盘笔刷大小, 色轮设置.ini, 设置, 调色盘笔刷大小 128 | IniRead, 面板展开, 色轮设置.ini, 设置, 面板展开 129 | IniRead, 软件Class名, 色轮设置.ini, 设置, 软件Class名 130 | ; IniRead, PSwinclass, 色轮设置.ini, 设置, PS取色窗口 131 | if (软件Class名!=0) 132 | { 133 | SetTimer, 自动隐藏菜单, 200 134 | } 135 | IniRead, 色轮呼出快捷键, 色轮设置.ini, 设置, 色轮呼出快捷键 136 | 快捷键1:=色轮呼出快捷键 137 | Ctrl键1:=InStr(快捷键1, "^") 138 | Shift键1:=InStr(快捷键1, "+") 139 | Alt键1:=InStr(快捷键1, "!") 140 | 快捷键1:=StrReplace(快捷键1,"^") 141 | 快捷键1:=StrReplace(快捷键1,"+") 142 | 快捷键1:=StrReplace(快捷键1,"!") 143 | 144 | IniRead, 调色盘呼出快捷键, 色轮设置.ini, 设置, 调色盘呼出快捷键 145 | 快捷键2:=调色盘呼出快捷键 146 | Ctrl键2:=InStr(快捷键2, "^") 147 | Shift键2:=InStr(快捷键2, "+") 148 | Alt键2:=InStr(快捷键2, "!") 149 | 快捷键2:=StrReplace(快捷键2,"^") 150 | 快捷键2:=StrReplace(快捷键2,"+") 151 | 快捷键2:=StrReplace(快捷键2,"!") 152 | 153 | IniRead, 导航器呼出快捷键, 色轮设置.ini, 设置, 导航器呼出快捷键 ;写入设置到ini文件 154 | ; Hotkey, %导航器呼出快捷键%, 导航器呼出快捷键, On 155 | 快捷键3:=导航器呼出快捷键 156 | Ctrl键3:=InStr(快捷键3, "^") 157 | Shift键3:=InStr(快捷键3, "+") 158 | Alt键3:=InStr(快捷键3, "!") 159 | 快捷键3:=StrReplace(快捷键3,"^") 160 | 快捷键3:=StrReplace(快捷键3,"+") 161 | 快捷键3:=StrReplace(快捷键3,"!") 162 | 163 | IniRead, 导航器透明度, 色轮设置.ini, 设置, 导航器透明度 ;写入设置到ini文件 164 | IniRead, 摸鱼窗口, 色轮设置.ini, 设置, 摸鱼窗口 ;写入设置到ini文件 165 | IniRead, 摸鱼窗口透明度, 色轮设置.ini, 设置, 摸鱼窗口透明度 ;写入设置到ini文件 166 | 167 | IniRead, 简体中文, 色轮设置.ini, 设置, 简体中文 168 | if (简体中文=1) 169 | { 170 | IniRead, 排除标题, 色轮设置.ini, 设置, 简体中文排除标题 171 | Menu, Tray, Check, 简体中文 ;右键菜单打勾 172 | } 173 | else 174 | { 175 | IniRead, 排除标题, 色轮设置.ini, 设置, 繁体中文排除标题 176 | } 177 | 排除名单:=StrSplit(排除标题, "|") 178 | 名单数量:=排除名单.Count() 179 | ; MsgBox %名单数量% 180 | /* 181 | 字符数量:=StrLen(排除标题) 182 | 名单数量:=1 183 | loop %字符数量% length 184 | { 185 | if (A_Index>字符数量) 186 | { 187 | break 188 | } 189 | else 190 | { 191 | if (SubStr(排除标题, A_Index, 1)="|") 192 | { 193 | 名单数量:=名单数量+1 194 | } 195 | } 196 | } 197 | */ 198 | 199 | IniRead, 记忆模式, 色轮设置.ini, 设置, 记忆模式 200 | if (记忆模式=1) 201 | { 202 | Menu, Tray, Check, 记忆模式 ;右键菜单打勾 203 | } 204 | IniRead, 初始设置, 色轮设置.ini, 设置, 初始设置 205 | IniRead, 中键呼出, 色轮设置.ini, 设置, 中键呼出 206 | Hotkey, $MButton, 中键 207 | Hotkey, $WheelUp, 滚轮上 208 | Hotkey, $WheelDown, 滚轮下 209 | if (中键呼出=1) 210 | { 211 | Menu, Tray, Check, 中键呼出 ;右键菜单打勾 212 | IniWrite, %中键呼出%, 色轮设置.ini, 设置, 中键呼出 213 | Hotkey, MButton, On 214 | Hotkey, $WheelUp, On 215 | Hotkey, $WheelDown, On 216 | } 217 | else 218 | { 219 | Menu, Tray, UnCheck, 中键呼出 ;右键菜单不打勾 220 | IniWrite, %中键呼出%, 色轮设置.ini, 设置, 中键呼出 221 | Hotkey, MButton, Off 222 | Hotkey, $WheelUp, Off 223 | Hotkey, $WheelDown, Off 224 | } 225 | 226 | Hotkey, Up, 上 227 | Hotkey, Up, Off 228 | Hotkey, Down, 下 229 | Hotkey, Down, Off 230 | Hotkey, Left, 左 231 | Hotkey, Left, Off 232 | Hotkey, Right, 右 233 | Hotkey, Right, Off 234 | } 235 | else 236 | { 237 | 色轮到笔刷距离:=Round(200/1080*屏幕高度) 238 | IniWrite, %色轮到笔刷距离%, 色轮设置.ini, 设置, 色轮到笔刷距离 239 | 鼠标在色轮位置X1:=104 240 | IniWrite, %鼠标在色轮位置X1%, 色轮设置.ini, 设置, 鼠标在色轮位置X1 241 | 鼠标在色轮位置Y1:=118 242 | IniWrite, %鼠标在色轮位置Y1%, 色轮设置.ini, 设置, 鼠标在色轮位置Y1 243 | 鼠标在色轮位置X2:=104 244 | IniWrite, %鼠标在色轮位置X2%, 色轮设置.ini, 设置, 鼠标在色轮位置X2 245 | 鼠标在色轮位置Y2:=118 246 | IniWrite, %鼠标在色轮位置Y2%, 色轮设置.ini, 设置, 鼠标在色轮位置Y2 247 | 色板1色相角度:=0 248 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 249 | 色板2色相角度:=0 250 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 251 | 色轮宽度W:=Round(屏幕高度*(465/1080)) 252 | 色轮高度H:=Round(屏幕高度*(495/1080)) 253 | IniWrite, %色轮宽度W%, 色轮设置.ini, 设置, 色轮宽度W 254 | IniWrite, %色轮高度H%, 色轮设置.ini, 设置, 色轮高度H 255 | 色轮目标边长:=Round(256/1080*屏幕高度) 256 | 调色盘按键Y:=Round(480/495*色轮高度H) 257 | 色轮方块XL边界:=Round(104/465*色轮宽度W) 258 | 色轮方块XR边界:=Round(360/465*色轮宽度W) 259 | 色轮方块YU边界:=Round(118/495*色轮高度H) 260 | 色轮方块YD边界:=Round(374/495*色轮高度H) 261 | 圆心坐标X:=Round(色轮宽度W/2) 262 | 圆心坐标Y:=Round(色轮宽度W/2+12/1080*屏幕高度) 263 | 圆的半径:=Round(色轮宽度W/2-10/1080*屏幕高度) 264 | 全屏色轮位置X补偿:=0 265 | 全屏色轮位置Y补偿:=0 266 | IniWrite, %全屏色轮位置X补偿%, 色轮设置.ini, 设置, 全屏色轮位置X补偿 267 | IniWrite, %全屏色轮位置Y补偿%, 色轮设置.ini, 设置, 全屏色轮位置Y补偿 268 | 色轮位置X补偿:=0 269 | 色轮位置Y补偿:=0 270 | IniWrite, %色轮位置X补偿%, 色轮设置.ini, 设置, 色轮位置X补偿 271 | IniWrite, %色轮位置Y补偿%, 色轮设置.ini, 设置, 色轮位置Y补偿 272 | 画布左上角X:=Round(A_ScreenWidth/8) 273 | 画布左上角Y:=0 274 | 画布右下角X:=A_ScreenWidth-Round(A_ScreenWidth/8) 275 | 画布右下角Y:=屏幕高度 276 | IniWrite, %画布左上角X%, 色轮设置.ini, 设置, 画布左上角X 277 | IniWrite, %画布左上角Y%, 色轮设置.ini, 设置, 画布左上角Y 278 | IniWrite, %画布右下角X%, 色轮设置.ini, 设置, 画布右下角X 279 | IniWrite, %画布右下角Y%, 色轮设置.ini, 设置, 画布右下角Y 280 | 色板1取色颜色:=0xFFFFFF 281 | 色板2取色颜色:=0xFFFFFF 282 | IniWrite, %色板1取色颜色%, 色轮设置.ini, 设置, 色板1取色颜色 283 | IniWrite, %色板2取色颜色%, 色轮设置.ini, 设置, 色板2取色颜色 284 | 记忆模式:=0 285 | IniWrite, %记忆模式%, 色轮设置.ini, 设置, 记忆模式 286 | 调色盘笔刷样式:=0 287 | IniWrite, %调色盘笔刷样式%, 色轮设置.ini, 设置, 调色盘笔刷样式 288 | 调色盘笔刷大小:=0 289 | IniWrite, %调色盘笔刷大小%, 色轮设置.ini, 设置, 调色盘笔刷大小 290 | 软件Class名:=0 291 | IniWrite, %软件Class名%, 色轮设置.ini, 设置, 软件Class名 292 | 中键呼出:=0 293 | IniWrite, %中键呼出%, 色轮设置.ini, 设置, 中键呼出 294 | 简体中文排除标题:="画布大小|插入区域|删除区域|自动阴影|高斯模糊|顏色设置" 295 | IniWrite, %简体中文排除标题%, 色轮设置.ini, 设置, 简体中文排除标题 296 | 繁体中文排除标题:="變更畫布尺寸|插入畫布的區域|刪除畫布的區域|自動陰影|高斯模糊|顏色設定" 297 | IniWrite, %繁体中文排除标题%, 色轮设置.ini, 设置, 繁体中文排除标题 298 | 导航器透明度:=200 299 | IniWrite, %导航器透明度%, 色轮设置.ini, 设置, 导航器透明度 ;写入设置到ini文件 300 | 摸鱼窗口:=0 301 | IniWrite, %摸鱼窗口%, 色轮设置.ini, 设置, 摸鱼窗口 ;写入设置到ini文件 302 | 摸鱼窗口透明度:=200 303 | IniWrite, %摸鱼窗口透明度%, 色轮设置.ini, 设置, 摸鱼窗口透明度 ;写入设置到ini文件 304 | ; PSwinclass:="ahk_class OWL.Dock" 305 | ; IniWrite, %PSwinclass%, 色轮设置.ini, 设置, PS取色窗口 306 | goto 初始设置 307 | } 308 | return 309 | 310 | ;========== 下面是类和函数 ========== 311 | Class 后台 { 312 | ;-- 类开始,使用类的命名空间可防止变量名、函数名污染 313 | 获取控件句柄(WinTitle, Control="") { 314 | tmm:=A_TitleMatchMode, dhw:=A_DetectHiddenWindows 315 | SetTitleMatchMode, 2 316 | DetectHiddenWindows, On 317 | ControlGet, hwnd, Hwnd,, %Control%, %WinTitle% 318 | DetectHiddenWindows, %dhw% 319 | SetTitleMatchMode, %tmm% 320 | return, hwnd 321 | } 322 | 点击左键(hwnd, x, y) { 323 | return, this.Click_PostMessage(hwnd, x, y, "L") 324 | } 325 | 点击右键(hwnd, x, y) { 326 | return, this.Click_PostMessage(hwnd, x, y, "R") 327 | } 328 | 移动鼠标(hwnd, x, y) { 329 | return, this.Click_PostMessage(hwnd, x, y, 0) 330 | } 331 | Click_PostMessage(hwnd, x, y, flag="L") { 332 | static WM_MOUSEMOVE:=0x200 333 | , WM_LBUTTONDOWN:=0x201, WM_LBUTTONUP:=0x202 334 | , WM_RBUTTONDOWN:=0x204, WM_RBUTTONUP:=0x205 335 | ;--------------------- 336 | VarSetCapacity(pt,16,0), DllCall("GetWindowRect", "ptr",hwnd, "ptr",&pt) 337 | , ScreenX:=x+NumGet(pt,"int"), ScreenY:=y+NumGet(pt,4,"int") 338 | Loop { 339 | NumPut(ScreenX,pt,"int"), NumPut(ScreenY,pt,4,"int") 340 | , DllCall("ScreenToClient", "ptr",hwnd, "ptr",&pt) 341 | , x:=NumGet(pt,"int"), y:=NumGet(pt,4,"int") 342 | , id:=DllCall("ChildWindowFromPoint", "ptr",hwnd, "int64",y<<32|x, "ptr") 343 | if (id=hwnd or !id) 344 | Break 345 | else hwnd:=id 346 | } 347 | ;--------------------- 348 | if (flag=0) 349 | PostMessage, WM_MOUSEMOVE, 0, (y<<16)|x,, ahk_id %hwnd% 350 | else if InStr(flag,"L")=1 351 | { 352 | PostMessage, WM_LBUTTONDOWN, 0, (y<<16)|x,, ahk_id %hwnd% 353 | PostMessage, WM_LBUTTONUP, 0, (y<<16)|x,, ahk_id %hwnd% 354 | } 355 | else if InStr(flag,"R")=1 356 | { 357 | PostMessage, WM_RBUTTONDOWN, 0, (y<<16)|x,, ahk_id %hwnd% 358 | PostMessage, WM_RBUTTONUP, 0, (y<<16)|x,, ahk_id %hwnd% 359 | } 360 | } 361 | 发送按键(hwnd, key) { 362 | static WM_KEYDOWN:=0x100, WM_KEYUP:=0x101 363 | , WM_SYSKEYDOWN:=0x104, WM_SYSKEYUP:=0x105, KEYEVENTF_KEYUP:=0x2 364 | Alt:=Ctrl:=Shift:=0 365 | if InStr(key,"!") 366 | Alt:=1, key:=StrReplace(key,"!") 367 | if InStr(key,"^") 368 | { 369 | Ctrl:=1, key:=StrReplace(key,"^") 370 | this.Send_keybd_event("Ctrl") 371 | Sleep, 100 372 | } 373 | if InStr(key,"+") 374 | { 375 | Shift:=1, key:=StrReplace(key,"+") 376 | this.Send_keybd_event("Shift") 377 | Sleep, 100 378 | } 379 | this.Send_PostMessage(hwnd, Alt=1 ? WM_SYSKEYDOWN : WM_KEYDOWN, key) 380 | Sleep, 100 381 | this.Send_PostMessage(hwnd, Alt=1 ? WM_SYSKEYUP : WM_KEYUP, key) 382 | if (Shift=1) 383 | this.Send_keybd_event("Shift", KEYEVENTF_KEYUP) 384 | if (Ctrl=1) 385 | this.Send_keybd_event("Ctrl", KEYEVENTF_KEYUP) 386 | } 387 | Send_PostMessage(hwnd, msg, key) { 388 | static WM_KEYDOWN:=0x100, WM_KEYUP:=0x101 389 | , WM_SYSKEYDOWN:=0x104, WM_SYSKEYUP:=0x105 390 | VK:=GetKeyVK(Key), SC:=GetKeySC(Key) 391 | flag:=msg=WM_KEYDOWN ? 0 392 | : msg=WM_KEYUP ? 0xC0 393 | : msg=WM_SYSKEYDOWN ? 0x20 394 | : msg=WM_SYSKEYUP ? 0xE0 : 0 395 | PostMessage, msg, VK, (count:=1)|(SC<<16)|(flag<<24),, ahk_id %hwnd% 396 | } 397 | Send_keybd_event(key, msg=0) { 398 | static KEYEVENTF_KEYUP:=0x2 399 | VK:=GetKeyVK(Key), SC:=GetKeySC(Key) 400 | DllCall("keybd_event", "int",VK, "int",SC, "int",msg, "int",0) 401 | } 402 | ;-- 类结束 403 | } 404 | 405 | 窗口检定(){ 406 | global 407 | 408 | 排除:=0 409 | loop %名单数量% 410 | { 411 | 当前标题:=排除名单[A_Index] 412 | ; ToolTip %A_Index% %当前标题% 413 | ; sleep 400 414 | 检定ID:=WinActive(当前标题) 415 | if !(WinActive(当前标题)=0) 416 | { 417 | 排除:=1 418 | ; ToolTip %当前标题% %检定ID% 已激活 419 | return 420 | } 421 | } 422 | return 423 | } 424 | 425 | ~lbutton:: 426 | MouseGetPos, , , WinID 427 | WinGet, ExeName, ProcessName, ahk_id %WinID% ;ahk_exe CLIPStudioPaint.exe 428 | WinGetTitle, WinTitle, ahk_id %WinID% 429 | WinGetClass, WinClass, ahk_id %WinID% 430 | if (WinTitle="CLIP STUDIO PAINT") or (WinTitle="導航器") or (WinTitle="色環") or (WinTitle="色彩混合") or (WinClass="Photoshop") or (WinClass="OWL.Dock") or (WinClass="PSFloatC") 431 | { 432 | ToolTip 433 | return 434 | } 435 | else 436 | { 437 | if (ExeName!="CLIPStudioPaint.exe") 438 | { 439 | return 440 | } 441 | else 442 | { 443 | if (InStr(排除标题, WinTitle)=0) 444 | { 445 | if (简体中文=1) 446 | { 447 | 排除标题.=| 448 | 排除标题.=WinTitle 449 | IniWrite, %排除标题%, 色轮设置.ini, 设置, 简体中文排除标题 450 | 排除名单:=StrSplit(排除标题, "|") 451 | 名单数量:=排除名单.Count() 452 | } 453 | else 454 | { 455 | 排除标题.="|" 456 | 排除标题.=WinTitle 457 | IniWrite, %排除标题%, 色轮设置.ini, 设置, 繁体中文排除标题 458 | 排除名单:=StrSplit(排除标题, "|") 459 | 名单数量:=排除名单.Count() 460 | } 461 | ToolTip 当前窗口标题 %WinTitle% 未在排除列表内 已经自动为您添加`n%排除标题% 462 | } 463 | SetTimer, 重新检定, -300 464 | } 465 | } 466 | return 467 | 468 | 重新检定: 469 | 窗口检定() 470 | return 471 | 472 | 自动隐藏菜单: 473 | ; ToolTip %排除%, , , 2 474 | MouseGetPos, , , WinID 475 | WinGetClass, 当前界面Class名, ahk_id %WinID% 476 | if GetKeyState("LButton", "P") or GetKeyState("Tab", "P") or GetKeyState("Ctrl", "P") or GetKeyState("Shift", "P") or GetKeyState("Alt", "P") or GetKeyState("1", "P") or GetKeyState("2", "P") or GetKeyState("3", "P") or GetKeyState("4", "P") or (色轮=1) or (当前界面Class名!=软件Class名) 477 | { 478 | return 479 | } 480 | ; Hotkey, $Tab, Off 481 | 软件前台:=WinActive("ahk_exe CLIPStudioPaint.exe") 482 | if (软件前台!=0x0) 483 | { 484 | 窗口检定() 485 | CoordMode, Mouse, Screen 486 | CoordMode, Pixel, Screen 487 | MouseGetPos, MX, MY, WinID 488 | if (计时器!=0) and (MY<=屏幕高度/30) and (排除=0) 489 | { 490 | 耗时:=A_TickCount-计时器 491 | } 492 | else if (MY>屏幕高度/20) 493 | { 494 | 计时器:=0 495 | } 496 | 497 | if (MY<=屏幕高度/30) and (菜单隐藏=1) and (计时器=0) and (排除=0) 498 | { 499 | 计时器:=A_TickCount 500 | } 501 | else if (MY<=屏幕高度/30) and (菜单隐藏=1) and (耗时>300) and (排除=0) 502 | { 503 | Send {Shift Down} 504 | Sleep 100 505 | loop 506 | { 507 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度/10, *10 %A_ScriptDir%\隐藏菜单.png 508 | ; ToolTip 显示%ErrorLevel% 509 | if (ErrorLevel=1) ;隐藏 510 | { 511 | Send {Tab Down} 512 | Sleep 50 513 | Send {Tab Up} 514 | Sleep 150 515 | } 516 | if (ErrorLevel=0) ;显示 517 | { 518 | Send {Tab Down} 519 | Sleep 50 520 | Send {Tab Up} 521 | break 522 | } 523 | } 524 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度/10, *10 %A_ScriptDir%\隐藏工具栏.png 525 | if (ErrorLevel=1) ;隐藏 526 | { 527 | Send {F3 Down} 528 | Sleep 50 529 | Send {F3 Up} 530 | } 531 | Send {Shift Up} 532 | 菜单隐藏:=0 533 | 延迟执行:=1 534 | loop 535 | { 536 | CoordMode, Mouse, Screen 537 | MouseGetPos, , MY 538 | if GetKeyState("LButton", "P") 539 | { 540 | loop 541 | { 542 | MouseGetPos, , , WinID 543 | WinGetClass, 当前界面Class名, ahk_id %WinID% 544 | if (当前界面Class名!=软件Class名) 545 | { 546 | break 547 | } 548 | } 549 | } 550 | else if (MY>屏幕高度/20) 551 | { 552 | break 553 | } 554 | } 555 | loop 556 | { 557 | ; WinGetClass, classid, A 558 | ; ToolTip %classid% 559 | MouseGetPos, , , WinID 560 | WinGetClass, 当前界面Class名, ahk_id %WinID% 561 | if (当前界面Class名=软件Class名) 562 | { 563 | if (简体中文=1) 564 | { 565 | if (排除=1) 566 | { 567 | 延迟执行:=1 568 | } 569 | else 570 | { 571 | 延迟执行:=延迟执行+1 572 | } 573 | } 574 | else 575 | { 576 | if (排除=1) 577 | { 578 | 延迟执行:=1 579 | } 580 | else 581 | { 582 | 延迟执行:=延迟执行+1 583 | } 584 | } 585 | 586 | if (延迟执行>35) 587 | { 588 | break 589 | } 590 | } 591 | else 592 | { 593 | 延迟执行:=1 594 | } 595 | Sleep 100 596 | } 597 | 延迟执行:=0 598 | } 599 | else if (MY>屏幕高度/20) and (菜单隐藏=0) and (延迟执行=0) and (排除=0) 600 | { 601 | 计时器:=0 602 | Send {Shift Down} 603 | loop 604 | { 605 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度/10, *10 %A_ScriptDir%\隐藏菜单.png 606 | ; ToolTip 隐藏%ErrorLevel% 607 | if (ErrorLevel=0) ;显示 608 | { 609 | Send {Tab Down} 610 | Sleep 50 611 | Send {Tab Up} 612 | Sleep 150 613 | } 614 | if (ErrorLevel=1) ;隐藏 615 | { 616 | break 617 | } 618 | } 619 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度/10, *10 %A_ScriptDir%\隐藏工具栏.png 620 | if (ErrorLevel=0) ;显示 621 | { 622 | Send {F3 Down} 623 | Sleep 50 624 | Send {F3 Up} 625 | } 626 | Send {Shift Up} 627 | 菜单隐藏:=1 628 | } 629 | ; Hotkey, $Tab, On 630 | 631 | if (面板展开=0) and (MY>屏幕高度/20) 632 | { 633 | if (MX<=A_ScreenWidth/30) or (MX>=A_ScreenWidth-A_ScreenWidth/30) and (排除=0) ;展开面板 634 | { 635 | loop 636 | { 637 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度, *10 %A_ScriptDir%\全屏识别.png 638 | if (ErrorLevel=1) 639 | { 640 | Send {Tab Down} 641 | Sleep 50 642 | Send {Tab Up} 643 | Sleep 250 644 | } 645 | else if (ErrorLevel=0) 646 | { 647 | break 648 | } 649 | } 650 | 面板自动展开:=1 651 | 652 | ;自动识别面板位置 653 | CoordMode, Pixel, Screen 654 | ImageSearch, 隐藏面板XL1, , A_ScreenWidth/15, 0, A_ScreenWidth/2, 屏幕高度/10, *10 %A_ScriptDir%\全屏识别.png 655 | if (ErrorLevel=1) 656 | { 657 | 隐藏面板XL1:=Round(A_ScreenWidth/15) 658 | } 659 | else if (ErrorLevel=0) 660 | { 661 | 隐藏面板XL1:=隐藏面板XL1+Round(23/1080*屏幕高度) 662 | } 663 | 664 | ImageSearch, 隐藏面板XL2, , A_ScreenWidth/15, 0, A_ScreenWidth/2, 屏幕高度/10, *10 %A_ScriptDir%\右箭头.png 665 | if (ErrorLevel=1) 666 | { 667 | 隐藏面板XL2:=Round(A_ScreenWidth/15) 668 | } 669 | else if (ErrorLevel=0) 670 | { 671 | 隐藏面板XL2:=隐藏面板XL2+Round(20/1080*屏幕高度) 672 | } 673 | 674 | if (隐藏面板XL1<隐藏面板XL2) 675 | { 676 | 隐藏面板XL:=Round(隐藏面板XL2) 677 | } 678 | else 679 | { 680 | 隐藏面板XL:=Round(隐藏面板XL1) 681 | } 682 | 683 | ImageSearch, 隐藏面板XR1, , A_ScreenWidth/2, 0, A_ScreenWidth-A_ScreenWidth/15, 屏幕高度/10, *10 %A_ScriptDir%\全屏识别.png 684 | if (ErrorLevel=1) 685 | { 686 | 隐藏面板XR1:=Round(A_ScreenWidth-A_ScreenWidth/15) 687 | } 688 | else if (ErrorLevel=0) 689 | { 690 | 隐藏面板XR1:=隐藏面板XR1-Round(18/1080*屏幕高度) 691 | } 692 | 693 | ImageSearch, 隐藏面板XR2, , A_ScreenWidth/2, 0, A_ScreenWidth-A_ScreenWidth/15, 屏幕高度/10, *10 %A_ScriptDir%\左箭头.png 694 | if (ErrorLevel=1) 695 | { 696 | 隐藏面板XR2:=Round(A_ScreenWidth-A_ScreenWidth/15) 697 | } 698 | else if (ErrorLevel=0) 699 | { 700 | 隐藏面板XR2:=隐藏面板XR2-Round(18/1080*屏幕高度) 701 | } 702 | 703 | if (隐藏面板XR1>隐藏面板XR2) 704 | { 705 | 隐藏面板XR:=Round(隐藏面板XR2) 706 | } 707 | else 708 | { 709 | 隐藏面板XR:=Round(隐藏面板XR1) 710 | } 711 | 712 | ; ToolTip 隐藏面板XL%隐藏面板XL% MX%MX% 隐藏面板XR%隐藏面板XR%`n隐藏面板XL1 %隐藏面板XL1% 隐藏面板XL2 %隐藏面板XL2%`n隐藏面板XR1 %隐藏面板XR1% 隐藏面板XR2 %隐藏面板XR2% 713 | 714 | if (简体中文=1) 715 | { 716 | if !(WinActive("导航器")=0) 717 | { 718 | 导航器:=1 719 | } 720 | else 721 | { 722 | 导航器:=0 723 | } 724 | } 725 | else if (简体中文!=1) 726 | { 727 | if !(WinActive("導航器")=0) 728 | { 729 | 导航器:=1 730 | } 731 | else 732 | { 733 | 导航器:=0 734 | } 735 | } 736 | 737 | if (导航器=1) 738 | { 739 | if (简体中文=1) 740 | { 741 | 导航器ID:=WinActive("导航器") 742 | ; ToolTip 导航器ID%导航器ID% 743 | WinGetPos, 导航器X, 导航器Y, 导航器W, 导航器H, ahk_id %导航器ID% 744 | if (导航器X<隐藏面板XL) and (导航器防遮挡=0) 745 | { 746 | 导航器防遮挡:=1 747 | WinMove, ahk_id %导航器ID%, , 隐藏面板XL+A_ScreenWidth/100, 导航器Y 748 | } 749 | else if (导航器X+导航器W>隐藏面板XR) and (导航器防遮挡=0) 750 | { 751 | 导航器防遮挡:=1 752 | WinMove, ahk_id %导航器ID%, , 隐藏面板XR-导航器W-A_ScreenWidth/100, 导航器Y 753 | } 754 | else 755 | { 756 | 导航器防遮挡:=0 757 | } 758 | } 759 | else if (简体中文!=1) 760 | { 761 | 导航器ID:=WinActive("導航器") 762 | WinGetPos, 导航器X, 导航器Y, 导航器W, 导航器H, ahk_id %导航器ID% 763 | if (导航器X<隐藏面板XL) and (导航器防遮挡!=1) 764 | { 765 | 导航器防遮挡:=1 766 | 原始导航器X:=导航器X 767 | 原始导航器Y:=导航器Y 768 | WinMove, ahk_id %导航器ID%, , 隐藏面板XL+A_ScreenWidth/100, 导航器Y 769 | } 770 | else if (导航器X+导航器W>隐藏面板XR) and (导航器防遮挡!=1) 771 | { 772 | 导航器防遮挡:=1 773 | 原始导航器X:=导航器X 774 | 原始导航器Y:=导航器Y 775 | WinMove, ahk_id %导航器ID%, , 隐藏面板XR-导航器W-A_ScreenWidth/100, 导航器Y 776 | } 777 | ; ToolTip 导航器ID%导航器ID% 导航器防遮挡%导航器防遮挡% 778 | } 779 | } 780 | } 781 | else if (MX>=隐藏面板XL) and (MX<=隐藏面板XR) and (排除=0) ;隐藏面板 782 | { 783 | loop 784 | { 785 | ImageSearch, , , A_ScreenWidth/20, 0, A_ScreenWidth-A_ScreenWidth/20, 屏幕高度/10, *10 %A_ScriptDir%\全屏识别.png 786 | if (ErrorLevel=0) 787 | { 788 | Send {Tab Down} 789 | Sleep 50 790 | Send {Tab Up} 791 | Sleep 250 792 | } 793 | else if (ErrorLevel=1) 794 | { 795 | break 796 | } 797 | } 798 | 面板自动展开:=0 799 | 800 | ; ToolTip %导航器% 801 | if (导航器=1) 802 | { 803 | loop 804 | { 805 | if (Ctrl键3!=0) 806 | { 807 | Send {Ctrl Down} 808 | Sleep 10 809 | } 810 | if (Shift键3!=0) 811 | { 812 | Send {Shift Down} 813 | Sleep 10 814 | } 815 | if (Alt键3!=0) 816 | { 817 | Send {Alt Down} 818 | Sleep 10 819 | } 820 | Send {%快捷键3% Down} ;打开色轮 821 | Sleep 50 822 | Send {%快捷键3% Up} 823 | if (Ctrl键3!=0) 824 | { 825 | Send {Ctrl Up} 826 | } 827 | if (Shift键3!=0) 828 | { 829 | Send {Shift Up} 830 | } 831 | if (Alt键3!=0) 832 | { 833 | Send {Alt Up} 834 | } 835 | Sleep 150 836 | 837 | if (简体中文=1) 838 | { 839 | if (WinExist("导航器")!=0) 840 | { 841 | 导航器:=0 842 | 843 | if (导航器防遮挡=1) 844 | { 845 | WinMove, ahk_id %导航器ID%, , 原始导航器X, 原始导航器Y 846 | 导航器防遮挡:=0 847 | } 848 | break 849 | } 850 | } 851 | else if (简体中文!=1) 852 | { 853 | if (WinExist("導航器")!=0) 854 | { 855 | 导航器:=0 856 | 857 | if (导航器防遮挡=1) 858 | { 859 | WinMove, ahk_id %导航器ID%, , 原始导航器X, 原始导航器Y 860 | 导航器防遮挡:=0 861 | } 862 | break 863 | } 864 | } 865 | } 866 | } 867 | } 868 | } 869 | } 870 | return 871 | 872 | 穿透设置: 873 | SetTimer, 自动隐藏菜单, Delete 874 | if (WinExist("穿透设置")!=0) 875 | { 876 | WinActivate, 穿透设置 877 | return 878 | } 879 | ; MsgBox, %导航器透明度% %摸鱼窗口透明度% 880 | Gui 穿透设置:+DPIScale -MinimizeBox -MaximizeBox -Resize -SysMenu +AlwaysOnTop 881 | Gui 穿透设置:Font, s9, Segoe UI 882 | 883 | Gui 穿透设置:Add, Text, x20 y25 w120 h23 +0x200, 导航器透明度 884 | Gui 穿透设置:Add, CheckBox, x215 y25 w120 h23 G导航器穿透切换 Checked%导航穿透%, 窗口穿透 885 | Gui 穿透设置:Add, Slider, x13 y55 w278 h32 AltSubmit G导航器透明度调整 Range1-100 TickInterval5 ToolTip v导航器透明度, %导航器透明度% 886 | 887 | Gui 穿透设置:Add, Text, x20 y115 w120 h23 +0x200, 摸鱼窗口透明度 888 | Gui 穿透设置:Add, CheckBox, x215 y115 w120 h23 G摸鱼窗口穿透切换 Checked%摸鱼穿透%, 窗口穿透 889 | Gui 穿透设置:Add, Slider, x13 y145 w278 h32 AltSubmit G摸鱼窗口透明度调整 Range1-100 TickInterval5 ToolTip v摸鱼窗口透明度, %摸鱼窗口透明度% 890 | 891 | Gui 穿透设置:Add, Button, x206 y200 w80 h27 GButton确认2, &确认 892 | Gui 穿透设置:Add, Button, x20 y200 w120 h27 G设置摸鱼窗口, &设置摸鱼窗口 893 | 894 | Gui 穿透设置:Show, w303 h240, 穿透设置 895 | ; SetTimer, 窗口调整, 100 896 | return 897 | 898 | 导航器透明度调整: 899 | ; ToolTip 导航器透明度%导航器透明度% 900 | IniWrite, %导航器透明度%, 色轮设置.ini, 设置, 导航器透明度 901 | 导航器透明度转换:=Ceil(255*(导航器透明度/100)) 902 | if (简体中文=1) 903 | { 904 | if (WinExist("导航器")!=0) 905 | { 906 | 导航器ID:=WinExist("导航器") 907 | WinSet, Transparent, %导航器透明度转换%, ahk_id %导航器ID% 908 | } 909 | } 910 | else if (简体中文!=1) 911 | { 912 | if (WinExist("導航器")!=0) 913 | { 914 | 导航器ID:=WinExist("導航器") 915 | WinSet, Transparent, %导航器透明度转换%, ahk_id %导航器ID% 916 | } 917 | } 918 | return 919 | 920 | 导航器穿透切换: 921 | 导航器透明度转换:=Ceil(255*(导航器透明度/100)) 922 | if (简体中文=1) 923 | { 924 | if (WinExist("导航器")!=0) 925 | { 926 | 导航器ID:=WinExist("导航器") 927 | if (导航穿透=0) 928 | { 929 | 导航穿透:=1 930 | WinSet, Transparent, %导航器透明度转换%, ahk_id %导航器ID% 931 | WinSet, ExStyle, +0x20, ahk_id %导航器ID% 932 | } 933 | else ;if (导航穿透=1) 934 | { 935 | 导航穿透:=0 936 | WinSet, Transparent, 255, ahk_id %导航器ID% 937 | WinSet, ExStyle, -0x20, ahk_id %导航器ID% 938 | } 939 | } 940 | } 941 | else if (简体中文!=1) 942 | { 943 | if (WinExist("導航器")!=0) 944 | { 945 | 导航器ID:=WinExist("導航器") 946 | if (导航穿透=0) 947 | { 948 | 导航穿透:=1 949 | WinSet, Transparent, %导航器透明度转换%, ahk_id %导航器ID% 950 | WinSet, ExStyle, +0x20, ahk_id %导航器ID% 951 | } 952 | else ;if (导航穿透=1) 953 | { 954 | 导航穿透:=0 955 | WinSet, Transparent, 255, ahk_id %导航器ID% 956 | WinSet, ExStyle, -0x20, ahk_id %导航器ID% 957 | } 958 | } 959 | } 960 | ; ToolTip, 导航穿透%导航穿透% 961 | return 962 | 963 | 摸鱼窗口透明度调整: 964 | IniWrite, %摸鱼窗口透明度%, 色轮设置.ini, 设置, 摸鱼窗口透明度 965 | 摸鱼窗口透明度转换:=Ceil(255*(摸鱼窗口透明度/100)) 966 | if (WinExist(ahk_class %摸鱼窗口%)!=0) 967 | { 968 | 摸鱼窗口ID:=WinExist(ahk_class %摸鱼窗口%) 969 | WinSet, Transparent, %摸鱼窗口透明度转换%, ahk_class %摸鱼窗口% 970 | } 971 | return 972 | 973 | 摸鱼窗口穿透切换: 974 | 摸鱼窗口透明度转换:=Ceil(255*(摸鱼窗口透明度/100)) 975 | if (WinExist(ahk_class %摸鱼窗口%)!=0) 976 | { 977 | 摸鱼窗口ID:=WinExist(ahk_class %摸鱼窗口%) 978 | if (摸鱼穿透=0) 979 | { 980 | 摸鱼穿透:=1 981 | WinSet, AlwaysOnTop, On, ahk_class %摸鱼窗口% 982 | WinSet, Transparent, %摸鱼窗口透明度转换%, ahk_class %摸鱼窗口% 983 | WinSet, ExStyle, +0x20, ahk_class %摸鱼窗口% 984 | } 985 | else ;if (导航穿透=1) 986 | { 987 | 摸鱼穿透:=0 988 | WinSet, AlwaysOnTop, Off, ahk_class %摸鱼窗口% 989 | WinSet, Transparent, 255, ahk_class %摸鱼窗口% 990 | WinSet, ExStyle, -0x20, ahk_class %摸鱼窗口% 991 | } 992 | } 993 | return 994 | 995 | 设置摸鱼窗口: 996 | loop 997 | { 998 | ToolTip 点击摸鱼窗口以绑定 999 | if GetKeyState("LButton", "P") 1000 | { 1001 | break 1002 | } 1003 | Sleep 30 1004 | } 1005 | MouseGetPos, , ,摸鱼窗口ID 1006 | WinGetClass, 摸鱼窗口, ahk_id %摸鱼窗口ID% 1007 | IniWrite, %摸鱼窗口%, 色轮设置.ini, 设置, 摸鱼窗口 ;写入设置到ini文件 1008 | loop 90 1009 | { 1010 | ToolTip 已绑定%摸鱼窗口%窗口 1011 | Sleep 30 1012 | } 1013 | ToolTip 1014 | return 1015 | 1016 | Button确认2: 1017 | Gui, 穿透设置:Submit, NoHide 1018 | Gui, 穿透设置:Destroy 1019 | Sleep 300 1020 | SetTimer, 自动隐藏菜单, 200 1021 | ; SetTimer, 窗口调整, Delete 1022 | return 1023 | 1024 | 初始设置: 1025 | 初始设置:=0 1026 | IniWrite, %初始设置%, 色轮设置.ini, 设置, 初始设置 1027 | MsgBox 0, 初始设置, 很高兴见到你嗷OwO`~我是CSP色轮小管家.`n检测到是初次使用`,请根我的据提示完成初始设置`! 1028 | MsgBox 4, 初始设置, 请问CSP的界面语言是否是繁体中文嗷`?`-w`- 1029 | IfMsgBox No 1030 | { 1031 | 简体中文:=1 1032 | Menu, Tray, Check, 简体中文 ;右键菜单打勾 1033 | IniWrite, %简体中文%, 色轮设置.ini, 设置, 简体中文 1034 | } 1035 | else 1036 | { 1037 | 简体中文:=0 1038 | IniWrite, %简体中文%, 色轮设置.ini, 设置, 简体中文 1039 | } 1040 | MsgBox 4, 初始设置, 接下来要设置在画布的多大范围内按下Tab才能呼出色轮嗷`!`n如果不知道这项设置是什么`,可以点击否先使用默认设置`,以后右键状态栏中可以再找到画布设置`. 1041 | IfMsgBox Yes 1042 | { 1043 | goto 画布设置 1044 | } 1045 | goto 快捷设置 1046 | return 1047 | 1048 | 重置设置: 1049 | FileDelete %A_ScriptDir%\色轮设置.ini 1050 | Reload 1051 | 1052 | 语言设置: 1053 | if (简体中文=0) 1054 | { 1055 | 简体中文:=1 1056 | Menu, Tray, Check, 简体中文 ;右键菜单打勾 1057 | IniWrite, %简体中文%, 色轮设置.ini, 设置, 简体中文 1058 | } 1059 | else 1060 | { 1061 | 简体中文:=0 1062 | Menu, Tray, UnCheck, 简体中文 ;右键菜单不打勾 1063 | IniWrite, %简体中文%, 色轮设置.ini, 设置, 简体中文 1064 | } 1065 | return 1066 | 1067 | 记忆模式: 1068 | if (记忆模式=0) 1069 | { 1070 | 记忆模式:=1 1071 | Menu, Tray, Check, 记忆模式 ;右键菜单打勾 1072 | IniWrite, %记忆模式%, 色轮设置.ini, 设置, 记忆模式 1073 | if GetKeyState("s", "P") 1074 | { 1075 | loop 100 1076 | { 1077 | ToolTip 记忆模式已开启 1078 | if !GetKeyState("Tab", "P") 1079 | { 1080 | break 1081 | } 1082 | Sleep 15 1083 | } 1084 | } 1085 | ToolTip 1086 | } 1087 | else 1088 | { 1089 | 记忆模式:=0 1090 | Menu, Tray, UnCheck, 记忆模式 ;右键菜单不打勾 1091 | IniWrite, %记忆模式%, 色轮设置.ini, 设置, 记忆模式 1092 | if GetKeyState("s", "P") 1093 | { 1094 | loop 100 1095 | { 1096 | ToolTip 记忆模式已关闭 1097 | if !GetKeyState("Tab", "P") 1098 | { 1099 | break 1100 | } 1101 | Sleep 15 1102 | } 1103 | } 1104 | ToolTip 1105 | } 1106 | return 1107 | 1108 | 画布设置: 1109 | KeyWait, LButton 1110 | CoordMode, Mouse, Screen 1111 | loop 1112 | { 1113 | WinActivate, ahk_exe CLIPStudioPaint.exe ;窗口置于顶层 1114 | Sleep 100 1115 | IfWinActive, ahk_exe CLIPStudioPaint.exe ;窗口坐标获取 1116 | { 1117 | loop 1118 | { 1119 | ToolTip 按住鼠标左键拖拽框选画布范围 1120 | if GetKeyState("LButton", "P") 1121 | { 1122 | ToolTip 1123 | MouseGetPos, 画布对角1X, 画布对角1Y 1124 | break 1125 | } 1126 | Sleep 30 1127 | } 1128 | 1129 | Gui 画布范围:New, -DPIScale -MinimizeBox -MaximizeBox -SysMenu AlwaysOnTop, 画布范围 1130 | Gui 画布范围:Show, W24 H11 X-50 Y-50, 画布范围 1131 | WinSet, Style, -0xC00000, 画布范围 ;去除标题 1132 | WinSet, Transparent, 100, 画布范围 ;透明度0-255 1133 | loop 1134 | { 1135 | MouseGetPos, 画布对角2X, 画布对角2Y 1136 | 画布宽度:=Abs(画布对角1X-画布对角2X) 1137 | 画布高度:=Abs(画布对角1Y-画布对角2Y) 1138 | 1139 | if (画布对角2X>画布对角1X) 1140 | { 1141 | 范围显示X:=画布对角1X 1142 | } 1143 | else 1144 | { 1145 | 范围显示X:=画布对角2X 1146 | } 1147 | 1148 | if (画布对角2Y>画布对角1Y) 1149 | { 1150 | 范围显示Y:=画布对角1Y 1151 | } 1152 | else 1153 | { 1154 | 范围显示Y:=画布对角2Y 1155 | } 1156 | 1157 | WinMove, 画布范围, ,范围显示X, 范围显示Y, 画布宽度, 画布高度 1158 | 1159 | if !GetKeyState("LButton", "P") 1160 | { 1161 | Gui 画布范围:Destroy 1162 | break, 2 1163 | } 1164 | } 1165 | } 1166 | } 1167 | 1168 | if (画布对角2X>画布对角1X) 1169 | { 1170 | 画布左上角X:=画布对角1X 1171 | 画布右下角X:=画布对角2X 1172 | } 1173 | else 1174 | { 1175 | 画布左上角X:=画布对角2X 1176 | 画布右下角X:=画布对角1X 1177 | } 1178 | 1179 | if (画布对角2Y>画布对角1Y) 1180 | { 1181 | 画布左上角Y:=画布对角1Y 1182 | 画布右下角Y:=画布对角2Y 1183 | } 1184 | else 1185 | { 1186 | 画布左上角Y:=画布对角2Y 1187 | 画布右下角Y:=画布对角1Y 1188 | } 1189 | IniWrite, %画布左上角X%, 色轮设置.ini, 设置, 画布左上角X 1190 | IniWrite, %画布左上角Y%, 色轮设置.ini, 设置, 画布左上角Y 1191 | IniWrite, %画布右下角X%, 色轮设置.ini, 设置, 画布右下角X 1192 | IniWrite, %画布右下角Y%, 色轮设置.ini, 设置, 画布右下角Y 1193 | 1194 | loop 100 1195 | { 1196 | ToolTip, 画布范围设置完成`n画布左上角 X%画布左上角X% Y%画布左上角Y%`n画布右下角 X%画布右下角X% %画布右下角Y% 1197 | Sleep 30 1198 | } 1199 | 1200 | ToolTip 1201 | if (初始设置=0) 1202 | { 1203 | goto 快捷设置 1204 | } 1205 | return 1206 | 1207 | PS取色: 1208 | loop 1209 | { 1210 | ToolTip 请中键点击PS取色窗口 1211 | if GetKeyState("MButton", "P") 1212 | { 1213 | MouseGetPos, , , PSwinid 1214 | WinGetClass, PSwinclass, ahk_id %PSwinid% 1215 | IniWrite, %PSwinclass%, 色轮设置.ini, 设置, PS取色窗口 1216 | break 1217 | } 1218 | Sleep 30 1219 | } 1220 | loop 30 1221 | { 1222 | ToolTip 已获取PS取色窗口 %PSwinclass% 1223 | Sleep 30 1224 | } 1225 | ToolTip 1226 | return 1227 | 1228 | 使用教程: 1229 | MsgBox, , 德芙色轮, 黑钨重工出品 免费开源 请勿商用 侵权必究`n更多免费软件教程尽在QQ群 1群763625227 2群643763519`n`n默认使用的是1080P屏幕 100`%缩放的设置`n如果是其他分辨率请自己设置或导入设置包`n`nCSP需要设置的内容`:`n请使用HSV色彩空间 在色轮左上角三条横线处点击即可设置`n画布设置的意思是 画布的多大范围内按下Tab或者中键才能呼出色轮`n呼出色轮的快捷键`n设置的位置在 文件`-快捷键设置`-主菜单`-窗口`-色環/色轮`n呼出调色盘的快捷键`n设置的位置在 文件`-快捷键设置`-主菜单`-窗口`-色彩混合/混色`n自动隐藏需要设置命令列的快捷键为Shift`+F3`nCtrl`+Enter键 短按打开自动隐藏功能 长按关闭自动隐藏功能`n`nPS需要设置的内容`:`n呼出前景色拾色器的快捷键为N`n设置的位置在 工具`-前景色拾色器`n`n数位板相关设置`:`n数位板属性中 关闭Windows Ink功能`nCSP环境设置中 绘图板`-要使用的绘图板服务`-Wintab`n`n按住Tab键 或 鼠标中键 触发德芙色轮`n如果取色环显示位置不准 请打开色环矫正后 使用上下左右箭头修正`nW 切换色板`nQ和E 或者 滚轮 控制色相慢速左旋和右旋`nA和D 控制色相快速左旋和右旋`nS 打开或关闭记忆模式`n每次打开色轮使用上次在色轮中取的色而不使用在画布上取的颜色`n松开Tab 或 鼠标中键 完成取色`n`n色轮打开后右移动即可打开调色盘`n当打开调色盘时使用以下快捷键操作`n重音符波浪号 清空调色盘`n数字1 短按撤回 长按还原`n数字2 和 数字3 控制笔刷大小`n数字4 切换笔刷样式`n`n其他功能`:`nAlt`+A`/D 切换上一个下一个画布`n导航器穿透 打开后会以半透明显示 可以穿过导航器画画`n以亮度为基准黑白显示需要系统设置`-轻松使用`-颜色滤镜`-允许使用快捷键打开滤镜`n双击空格 在亮度基准显示和正常显示之间切换`nPgUp`+PgDn 强制重启 Home`+End 强制退出`n`n更新后无法运行请删除ini文件后重新运行本软件`n如果仍然使用不了请私聊我付费远程调试服务 1230 | return 1231 | 1232 | 视频教程: 1233 | Run https://space.bilibili.com/52593606/channel/collectiondetail?sid=1814250 1234 | return 1235 | 1236 | 软件更新: 1237 | Run https://github.com/Furtory/HighEfficiencyColorWheelForCSPv2 1238 | return 1239 | 1240 | 快捷设置: 1241 | if (WinExist("快捷键设置")!=0) 1242 | { 1243 | WinActivate, 快捷键设置 1244 | return 1245 | } 1246 | if (初始设置=0) 1247 | { 1248 | MsgBox 0, 初始设置, 咱要知道CSP设置中呼出色轮和调色盘的快捷键是什么才能运行嗷`~如果没有设置请现在设置一个才能运行哦`!`n设置的位置在`:文件`-快捷键设置`-主菜单`-窗口`-色環/色轮 色彩混合/混色 1249 | } 1250 | 旧色轮呼出快捷键:=色轮呼出快捷键 1251 | 旧调色盘呼出快捷键:=调色盘呼出快捷键 1252 | 旧导航器呼出快捷键:=导航器呼出快捷键 1253 | Gui 快捷键:+DPIScale -MinimizeBox -MaximizeBox -Resize -SysMenu 1254 | Gui 快捷键:Font, s9, Segoe UI 1255 | Gui 快捷键:Add, Text, x9 y7 w157 h20, 色轮呼出快捷键 1256 | Gui 快捷键:Add, Hotkey, x9 y31 w157 h25 v色轮呼出快捷键, %色轮呼出快捷键% 1257 | Gui 快捷键:Add, Text, x9 y68 w157 h20, 调色盘呼出快捷键 1258 | Gui 快捷键:Add, Hotkey, x9 y92 w157 h25 v调色盘呼出快捷键, %调色盘呼出快捷键% 1259 | Gui 快捷键:Add, Text, x9 y129 w157 h20, 导航器呼出快捷键 1260 | Gui 快捷键:Add, Hotkey, x9 y153 w157 h25 v导航器呼出快捷键, %导航器呼出快捷键% 1261 | Gui 快捷键:Add, Button, x9 y187 w80 h23 GButton确认, &确认 1262 | Gui 快捷键:Add, Button, x89 y187 w80 h23 GButton取消, &取消 1263 | Gui 快捷键:Show, w174 h237, 快捷键设置 1264 | return 1265 | 1266 | Button确认: 1267 | Gui, 快捷键:Submit, NoHide 1268 | Gui, 快捷键:Destroy 1269 | IniWrite, %色轮呼出快捷键%, 色轮设置.ini, 设置, 色轮呼出快捷键 ;写入设置到ini文件 1270 | 快捷键1:=色轮呼出快捷键 1271 | Ctrl键1:=InStr(快捷键1, "^") 1272 | Shift键1:=InStr(快捷键1, "+") 1273 | Alt键1:=InStr(快捷键1, "!") 1274 | 快捷键1:=StrReplace(快捷键1,"^") 1275 | 快捷键1:=StrReplace(快捷键1,"+") 1276 | 快捷键1:=StrReplace(快捷键1,"!") 1277 | 1278 | IniWrite, %调色盘呼出快捷键%, 色轮设置.ini, 设置, 调色盘呼出快捷键 ;写入设置到ini文件 1279 | 快捷键2:=调色盘呼出快捷键 1280 | Ctrl键2:=InStr(快捷键2, "^") 1281 | Shift键2:=InStr(快捷键2, "+") 1282 | Alt键2:=InStr(快捷键2, "!") 1283 | 快捷键2:=StrReplace(快捷键2,"^") 1284 | 快捷键2:=StrReplace(快捷键2,"+") 1285 | 快捷键2:=StrReplace(快捷键2,"!") 1286 | 1287 | IniWrite, %导航器呼出快捷键%, 色轮设置.ini, 设置, 导航器呼出快捷键 ;写入设置到ini文件 1288 | 快捷键3:=导航器呼出快捷键 1289 | Ctrl键3:=InStr(快捷键3, "^") 1290 | Shift键3:=InStr(快捷键3, "+") 1291 | Alt键3:=InStr(快捷键3, "!") 1292 | 快捷键3:=StrReplace(快捷键3,"^") 1293 | 快捷键3:=StrReplace(快捷键3,"+") 1294 | 快捷键3:=StrReplace(快捷键3,"!") 1295 | 1296 | if (初始设置=0) 1297 | { 1298 | 初始设置:=1 1299 | IniWrite, %初始设置%, 色轮设置.ini, 设置, 初始设置 1300 | goto 使用教程 1301 | } 1302 | return 1303 | 1304 | Button取消: 1305 | 色轮呼出快捷键:=旧色轮呼出快捷键 1306 | 调色盘呼出快捷键:=旧调色盘呼出快捷键 1307 | 导航器呼出快捷键:=旧导航器呼出快捷键 1308 | Gui, 快捷键:Destroy 1309 | return 1310 | 1311 | 开机自启: ;模式切换 1312 | Critical, On 1313 | if (autostart=1) ;关闭开机自启动 1314 | { 1315 | IfExist, % autostartLnk ;如果开机启动的文件存在 1316 | { 1317 | FileDelete, %autostartLnk% ;删除开机启动的文件 1318 | } 1319 | 1320 | autostart:=0 1321 | Menu, Tray, UnCheck, 开机自启 ;右键菜单不打勾 1322 | } 1323 | else ;开启开机自启动 1324 | { 1325 | IfExist, % autostartLnk ;如果开机启动的文件存在 1326 | { 1327 | FileGetShortcut, %autostartLnk%, lnkTarget ;获取开机启动文件的信息 1328 | if (lnkTarget!=A_ScriptFullPath) ;如果启动文件执行的路径和当前脚本的完整路径不一致 1329 | { 1330 | FileCreateShortcut, %A_ScriptFullPath%, %autostartLnk%, %A_WorkingDir% ;将启动文件执行的路径改成和当前脚本的完整路径一致 1331 | } 1332 | } 1333 | else ;如果开机启动的文件不存在 1334 | { 1335 | FileCreateShortcut, %A_ScriptFullPath%, %autostartLnk%, %A_WorkingDir% ;创建和当前脚本的完整路径一致的启动文件 1336 | } 1337 | 1338 | autostart:=1 1339 | Menu, Tray, Check, 开机自启 ;右键菜单打勾 1340 | } 1341 | Critical, Off 1342 | return 1343 | 1344 | PgUp & PgDn::Reload 1345 | 重启软件: 1346 | Reload 1347 | 1348 | Home & End::ExitApp 1349 | 退出软件: 1350 | ExitApp 1351 | 1352 | 中键呼出: 1353 | if (中键呼出=0) 1354 | { 1355 | Menu, Tray, Check, 中键呼出 ;右键菜单打勾 1356 | 中键呼出:=1 1357 | IniWrite, %中键呼出%, 色轮设置.ini, 设置, 中键呼出 1358 | Hotkey, MButton, On 1359 | Hotkey, $WheelUp, On 1360 | Hotkey, $WheelDown, On 1361 | } 1362 | else 1363 | { 1364 | Menu, Tray, UnCheck, 中键呼出 ;右键菜单不打勾 1365 | 中键呼出:=0 1366 | IniWrite, %中键呼出%, 色轮设置.ini, 设置, 中键呼出 1367 | Hotkey, MButton, Off 1368 | Hotkey, $WheelUp, Off 1369 | Hotkey, $WheelDown, Off 1370 | } 1371 | return 1372 | 1373 | 色环矫正: 1374 | if (色环矫正=0) 1375 | { 1376 | Menu, Tray, Check, 色环矫正 ;右键菜单打勾 1377 | 色环矫正:=1 1378 | Hotkey, Up, On 1379 | Hotkey, Down, On 1380 | Hotkey, Left, On 1381 | Hotkey, Right, On 1382 | } 1383 | else 1384 | { 1385 | Menu, Tray, UnCheck, 色环矫正 ;右键菜单不打勾 1386 | 色环矫正:=0 1387 | Hotkey, Up, Off 1388 | Hotkey, Down, Off 1389 | Hotkey, Left, Off 1390 | Hotkey, Right, Off 1391 | } 1392 | return 1393 | 1394 | 上: 1395 | if (色轮=1) 1396 | { 1397 | if (全屏=1) 1398 | { 1399 | 全屏色轮位置Y补偿:=全屏色轮位置Y补偿-1 1400 | IniWrite, %全屏色轮位置Y补偿%, 色轮设置.ini, 设置, 全屏色轮位置Y补偿 1401 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+全屏色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+全屏色轮位置Y补偿 1402 | } 1403 | else 1404 | { 1405 | 色轮位置Y补偿:=色轮位置Y补偿-1 1406 | IniWrite, %色轮位置Y补偿%, 色轮设置.ini, 设置, 色轮位置Y补偿 1407 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+色轮位置Y补偿 1408 | } 1409 | } 1410 | return 1411 | 1412 | 下: 1413 | if (色轮=1) 1414 | { 1415 | if (全屏=1) 1416 | { 1417 | 全屏色轮位置Y补偿:=全屏色轮位置Y补偿+1 1418 | IniWrite, %全屏色轮位置Y补偿%, 色轮设置.ini, 设置, 全屏色轮位置Y补偿 1419 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+全屏色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+全屏色轮位置Y补偿 1420 | } 1421 | else 1422 | { 1423 | 色轮位置Y补偿:=色轮位置Y补偿+1 1424 | IniWrite, %色轮位置Y补偿%, 色轮设置.ini, 设置, 色轮位置Y补偿 1425 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+色轮位置Y补偿 1426 | } 1427 | } 1428 | return 1429 | 1430 | 左: 1431 | if (色轮=1) 1432 | { 1433 | if (全屏=1) 1434 | { 1435 | 全屏色轮位置X补偿:=全屏色轮位置X补偿-1 1436 | IniWrite, %全屏色轮位置X补偿%, 色轮设置.ini, 设置, 全屏色轮位置X补偿 1437 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+全屏色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+全屏色轮位置Y补偿 1438 | } 1439 | else 1440 | { 1441 | 色轮位置X补偿:=色轮位置X补偿-1 1442 | IniWrite, %色轮位置X补偿%, 色轮设置.ini, 设置, 色轮位置X补偿 1443 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+色轮位置Y补偿 1444 | } 1445 | } 1446 | return 1447 | 1448 | 右: 1449 | if (色轮=1) 1450 | { 1451 | if (全屏=1) 1452 | { 1453 | 全屏色轮位置X补偿:=全屏色轮位置X补偿+1 1454 | IniWrite, %全屏色轮位置X补偿%, 色轮设置.ini, 设置, 全屏色轮位置X补偿 1455 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+全屏色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+全屏色轮位置Y补偿 1456 | } 1457 | else 1458 | { 1459 | 色轮位置X补偿:=色轮位置X补偿+1 1460 | IniWrite, %色轮位置X补偿%, 色轮设置.ini, 设置, 色轮位置X补偿 1461 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+色轮位置Y补偿 1462 | } 1463 | } 1464 | return 1465 | 1466 | ToBase(n,b){ 1467 | return (n < b ? "" : ToBase(n//b,b)) . ((d:=Mod(n,b)) < 10 ? d : Chr(d+55)) 1468 | } 1469 | 1470 | 中键: 1471 | $Tab:: ;Tab键 1472 | CoordMode, Mouse, Screen 1473 | MouseGetPos, 鼠标在屏幕位置X, 鼠标在屏幕位置Y, CSP检测 1474 | WinGet, 软件EXE名, ProcessName, ahk_id %CSP检测% 1475 | 最近按键:=StrReplace(A_ThisHotkey, "$") 1476 | ; ToolTip %软件EXE名% %最近按键% 1477 | if (软件EXE名!="CLIPStudioPaint.exe") 1478 | { 1479 | Send {%最近按键% Down} 1480 | KeyWait, %最近按键% 1481 | Send {%最近按键% Up} 1482 | return 1483 | } 1484 | Send {Tab Up} 1485 | ;检测鼠标是否在画布范围 1486 | if (鼠标在屏幕位置X<画布左上角X) or (鼠标在屏幕位置X>画布右下角X) or (鼠标在屏幕位置Y<画布左上角Y) or (鼠标在屏幕位置Y>画布右下角Y) ;不在画布范围内 1487 | { 1488 | if (面板自动展开=1) 1489 | { 1490 | 面板展开:=1 1491 | 面板自动展开:=0 1492 | IniWrite, %面板展开%, 色轮设置.ini, 设置, 面板展开 1493 | return 1494 | } 1495 | Send {Tab Down} 1496 | KeyWait, Tab 1497 | Send {Tab Up} 1498 | Sleep 50 1499 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度, *10 %A_ScriptDir%\全屏识别.png 1500 | if (ErrorLevel=0) ;是全屏 1501 | { 1502 | 面板展开:=1 1503 | IniWrite, %面板展开%, 色轮设置.ini, 设置, 面板展开 1504 | } 1505 | else 1506 | { 1507 | 面板展开:=0 1508 | IniWrite, %面板展开%, 色轮设置.ini, 设置, 面板展开 1509 | } 1510 | return 1511 | } 1512 | 1513 | ;在画布范围 1514 | WinActivate, ahk_exe CLIPStudioPaint.exe ;窗口置于顶层 1515 | BlockInput, On 1516 | CoordMode, Pixel, Screen 1517 | 1518 | ;识别是否全屏 1519 | ImageSearch, , , 0, 0, A_ScreenWidth, 屏幕高度, *10 %A_ScriptDir%\全屏识别.png 1520 | if (ErrorLevel=0) ;是全屏 1521 | { 1522 | Send {Tab} ;进入全屏 1523 | 全屏:=1 1524 | } 1525 | else 1526 | { 1527 | 全屏:=0 1528 | } 1529 | 1530 | ;向左移动画布 1531 | Send {space Down} 1532 | Sleep 10 1533 | Send {LButton Down} 1534 | CoordMode, Mouse, Screen 1535 | if (色板位置=1) 1536 | { 1537 | 移动画布距离:=0+色轮到笔刷距离+鼠标在色轮位置X1 1538 | } 1539 | else if (色板位置=2) 1540 | { 1541 | 移动画布距离:=0+色轮到笔刷距离+鼠标在色轮位置X2 1542 | } 1543 | MouseMove, -移动画布距离, 0, 0, R 1544 | Sleep 10 1545 | Send {LButton Up} 1546 | Send {space Up} 1547 | MouseMove, 移动画布距离, 0, 0, R 1548 | 1549 | ;打开色轮并检测是否打开 1550 | if (Ctrl键1!=0) 1551 | { 1552 | Send {Ctrl Down} 1553 | Sleep 10 1554 | } 1555 | if (Shift键1!=0) 1556 | { 1557 | Send {Shift Down} 1558 | Sleep 10 1559 | } 1560 | if (Alt键1!=0) 1561 | { 1562 | Send {Alt Down} 1563 | Sleep 10 1564 | } 1565 | Send {%快捷键1% Down} ;打开色轮 1566 | Sleep 50 1567 | Send {%快捷键1% Up} 1568 | if (Ctrl键1!=0) 1569 | { 1570 | Send {Ctrl Up} 1571 | } 1572 | if (Shift键1!=0) 1573 | { 1574 | Send {Shift Up} 1575 | } 1576 | if (Alt键1!=0) 1577 | { 1578 | Send {Alt Up} 1579 | } 1580 | 开始计时:=A_TickCount 1581 | if (简体中文=1) 1582 | { 1583 | loop ;寻找色轮 1584 | { 1585 | 寻找耗时:=A_TickCount-开始计时 1586 | ; ToolTip 寻找色轮中%寻找耗时%ms 1587 | if !(WinExist("色轮")=0) ;""内填窗口名称 1588 | { 1589 | 色轮:=1 1590 | 色轮窗口ID:=WinExist("色轮") ;""内填窗口名称 1591 | ; ToolTip 已找到色轮 1592 | BlockInput, Off 1593 | break 1594 | } 1595 | else 1596 | { 1597 | if (寻找耗时>3000) 1598 | { 1599 | 色轮:=0 1600 | Sleep 10 1601 | Send {space Down} 1602 | Send {LButton Down} 1603 | CoordMode, Mouse, Screen 1604 | MouseMove, 移动画布距离, 0, 0, R 1605 | Sleep 10 1606 | Send {LButton Up} 1607 | Send {space Up} 1608 | if (全屏=1) ;如果之前进入了全屏则退出全屏 1609 | { 1610 | Send {Tab} 1611 | 全屏:=0 1612 | } 1613 | MouseMove, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 1614 | BlockInput, Off 1615 | loop 100 1616 | { 1617 | ToolTip 未找到色轮 请检查呼出色轮快捷键设置是否正确 1618 | Sleep 30 1619 | } 1620 | ToolTip 1621 | return 1622 | } 1623 | 1624 | if (Ctrl键1!=0) 1625 | { 1626 | Send {Ctrl Down} 1627 | Sleep 10 1628 | } 1629 | if (Shift键1!=0) 1630 | { 1631 | Send {Shift Down} 1632 | Sleep 10 1633 | } 1634 | if (Alt键1!=0) 1635 | { 1636 | Send {Alt Down} 1637 | Sleep 10 1638 | } 1639 | Send {%快捷键1% Down} ;打开色轮 1640 | Sleep 50 1641 | Send {%快捷键1% Up} 1642 | if (Ctrl键1!=0) 1643 | { 1644 | Send {Ctrl Up} 1645 | } 1646 | if (Shift键1!=0) 1647 | { 1648 | Send {Shift Up} 1649 | } 1650 | if (Alt键1!=0) 1651 | { 1652 | Send {Alt Up} 1653 | } 1654 | Sleep 300 1655 | } 1656 | } 1657 | } 1658 | else 1659 | { 1660 | loop ;寻找色轮 1661 | { 1662 | 寻找耗时:=A_TickCount-开始计时 1663 | ; ToolTip 寻找色轮中%寻找耗时%ms 1664 | if !(WinExist("色環")=0) ;""内填窗口名称 1665 | { 1666 | 色轮:=1 1667 | 色轮窗口ID:=WinExist("色環") ;""内填窗口名称 1668 | ; ToolTip 已找到色轮 1669 | BlockInput, Off 1670 | break 1671 | } 1672 | else 1673 | { 1674 | if (寻找耗时>3000) 1675 | { 1676 | 色轮:=0 1677 | Sleep 10 1678 | Send {space Down} 1679 | Send {LButton Down} 1680 | CoordMode, Mouse, Screen 1681 | MouseMove, 移动画布距离, 0, 0, R 1682 | Sleep 10 1683 | Send {LButton Up} 1684 | Send {space Up} 1685 | if (全屏=1) ;如果之前进入了全屏则退出全屏 1686 | { 1687 | Send {Tab} 1688 | 全屏:=0 1689 | } 1690 | MouseMove, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 1691 | BlockInput, Off 1692 | loop 100 1693 | { 1694 | ToolTip 未找到色轮 请检查呼出色轮快捷键设置是否正确 1695 | Sleep 30 1696 | } 1697 | ToolTip 1698 | return 1699 | } 1700 | 1701 | if (Ctrl键1!=0) 1702 | { 1703 | Send {Ctrl Down} 1704 | Sleep 10 1705 | } 1706 | if (Shift键1!=0) 1707 | { 1708 | Send {Shift Down} 1709 | Sleep 10 1710 | } 1711 | if (Alt键1!=0) 1712 | { 1713 | Send {Alt Down} 1714 | Sleep 10 1715 | } 1716 | Send {%快捷键1% Down} ;打开色轮 1717 | Sleep 50 1718 | Send {%快捷键1% Up} 1719 | if (Ctrl键1!=0) 1720 | { 1721 | Send {Ctrl Up} 1722 | } 1723 | if (Shift键1!=0) 1724 | { 1725 | Send {Shift Up} 1726 | } 1727 | if (Alt键1!=0) 1728 | { 1729 | Send {Alt Up} 1730 | } 1731 | Sleep 300 1732 | } 1733 | } 1734 | } 1735 | 1736 | ;加载取色环 1737 | Gui 取色环:New, -DPIScale -MinimizeBox -MaximizeBox -SysMenu AlwaysOnTop, 取色环 1738 | Gui 取色环:Show, W117 H50 X0 Y0, 取色环 ;宽30(-6) 高40(+29) 1739 | WinSet, Transparent, 255, 取色环 ;透明度0-255 1740 | WinSet, Style, -0xC00000, 取色环 ;去除标题 1741 | WinSet, Region, 25-0 W74 H74 E, 取色环 ;圆形窗口 1742 | Gui, 取色环:Add, Picture, X25 Y0 BackgroundTrans, %A_ScriptDir%\取色环.png 1743 | WinSet, TransColor, cccccc, 取色环 ;透明化 1744 | if (全屏=1) 1745 | { 1746 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+全屏色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+全屏色轮位置Y补偿 1747 | } 1748 | else ;if (全屏=0) 1749 | { 1750 | WinMove 取色环, , 鼠标在屏幕位置X-Round(61/1080*屏幕高度)-移动画布距离+色轮位置X补偿, 鼠标在屏幕位置Y-Round(36/1080*屏幕高度)+色轮位置Y补偿 1751 | } 1752 | ; Gui, 取色环:Color, 0xffffff ;色环颜色 1753 | 1754 | ;查看正在使用哪个色板 1755 | if (简体中文=1) 1756 | { 1757 | WinActivate 色轮 1758 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色轮 1759 | } 1760 | else 1761 | { 1762 | WinActivate 色環 1763 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色環 1764 | } 1765 | CoordMode Pixel, Window 1766 | PixelSearch, 色板位置X, , 0, Round(467/1080*屏幕高度), Round(126/1080*屏幕高度), Round(469/1080*屏幕高度), 0x7D8EB3, 10, Fast RGB 1767 | if (色板位置XRound(45/1080*屏幕高度)) and (色板位置X=Round(35/1080*屏幕高度)) and (鼠标在拾色器位置Y<=Round(75/1080*屏幕高度)) and (鼠标在拾色器位置X>=Round(425/1080*屏幕高度)) ;确定 1917 | { 1918 | KeyWait, LButton 1919 | CoordMode, Pixel, Screen 1920 | PixelGetColor, 取色颜色, 拾色器窗口X+Round(351/1080*屏幕高度), 拾色器窗口Y+Round(95/1080*屏幕高度), RGB 1921 | Gui, 取色环:Color, %取色颜色% ;色环颜色 1922 | loop 50 1923 | { 1924 | if (WinExist("ahk_class PSFloatC")=0x0) 1925 | { 1926 | 在CSP取色颜色:=取色颜色 1927 | gosub PS到CSP色彩更新 1928 | break 1929 | } 1930 | Sleep 10 1931 | } 1932 | } 1933 | else 1934 | { 1935 | ; ToolTip, e 1936 | loop 1937 | { 1938 | CoordMode, Pixel, Screen 1939 | PixelGetColor, 取色颜色, 拾色器窗口X+Round(350/1080*屏幕高度), 拾色器窗口Y+Round(95/1080*屏幕高度), RGB 1940 | Gui, 取色环:Color, %取色颜色% ;色环颜色 1941 | ; ToolTip, 鼠标在拾色器位置X%鼠标在拾色器位置X% 鼠标在拾色器位置Y%鼠标在拾色器位置Y% 取色颜色%取色颜色% 1942 | if !GetKeyState("LButton", "P") 1943 | { 1944 | break 1945 | } 1946 | } 1947 | if (LButton_presses > 0) ; SetTimer 已经启动, 所以我们记录键击. 1948 | { 1949 | LButton_presses += 1 1950 | } 1951 | else 1952 | { 1953 | LButton_presses := 1 1954 | SetTimer, KeyLButton, -400 ; 在 400 毫秒内等待更多的键击. 1955 | } 1956 | } 1957 | } 1958 | } 1959 | else if (当前界面winclass="OWL.Dock") and GetKeyState("LButton", "P") 1960 | { 1961 | IfWinNotActive, ahk_class OWL.Dock 1962 | { 1963 | BlockInput, Send 1964 | ; Send {Tab Up} 1965 | WinActivate, ahk_class OWL.Dock 1966 | Send {LButton Up} 1967 | Sleep 10 1968 | Send {LButton Down} 1969 | BlockInput, Default 1970 | } 1971 | 1972 | 在PS取色:=1 1973 | loop 1974 | { 1975 | PixelGetColor, 取色颜色, 色轮位置X+Round(20/1080*屏幕高度), 色轮位置Y+色轮高度H+Round(62/1080*屏幕高度), RGB 1976 | ; 旧在PS取色:=取色颜色 1977 | Gui, 取色环:Color, %取色颜色% ;色环颜色 1978 | if !GetKeyState("LButton", "P") 1979 | { 1980 | gosub PS到CSP色彩更新 1981 | Sleep 50 1982 | if (WinExist("ahk_class PSFloatC")!=0x0) ;""内填窗口名称 1983 | { 1984 | BlockInput, On 1985 | CoordMode, Mouse, Screen 1986 | WinActivate, ahk_class PSFloatC 1987 | WinGetPos, 拾色器窗口X, 拾色器窗口Y 1988 | 1989 | if (拾色器窗口X!=色轮位置X+Round(40/1080*屏幕高度)) or (拾色器窗口Y!=色轮位置Y+色轮高度H) 1990 | { 1991 | MouseMove, 拾色器窗口X+Round(15/1080*屏幕高度), 拾色器窗口Y+Round(5/1080*屏幕高度), 0 1992 | Send {LButton Down} 1993 | MouseMove, 色轮位置X+Round(55/1080*屏幕高度), 色轮位置Y+色轮高度H+Round(5/1080*屏幕高度), 0 1994 | Sleep 10 1995 | Send {LButton Up} 1996 | } 1997 | 1998 | if (记忆模式=0) and (在CSP取色颜色!=取色颜色) 1999 | { 2000 | 在CSP取色颜色:=StrReplace(在CSP取色颜色,"0x") 2001 | Clipboard:=在CSP取色颜色 2002 | Sleep 10 2003 | Send {Ctrl Down} 2004 | Sleep 50 2005 | Send {v Down} 2006 | Sleep 50 2007 | Send {v Up} 2008 | Send {Ctrl Up} 2009 | Sleep 50 2010 | } 2011 | 2012 | BlockInput Off 2013 | } 2014 | break 2015 | } 2016 | } 2017 | } 2018 | else 2019 | { 2020 | 在PS取色:=0 2021 | loop 2022 | { 2023 | PixelGetColor, 取色颜色, 色轮位置X+取色位置X, 色轮位置Y+取色位置Y, RGB 2024 | 在CSP取色颜色:=取色颜色 2025 | Gui, 取色环:Color, %取色颜色% ;色环颜色 2026 | if !GetKeyState("LButton", "P") 2027 | { 2028 | break 2029 | } 2030 | } 2031 | } 2032 | } 2033 | else if (调色盘检测X>色轮位置X+(色轮宽度W-色轮目标边长)/2+色轮目标边长+Round(20/1080*屏幕高度)) and (调色盘!=1) and (呼出调色盘!=1) 2034 | { 2035 | if (手动取色=0) 2036 | { 2037 | 取色颜色:=旧取色颜色 2038 | gosub 调色模式 2039 | 后台.点击左键(色轮窗口ID, 鼠标取色位置X, 鼠标取色位置Y) 2040 | } 2041 | else 2042 | { 2043 | gosub 调色模式 2044 | } 2045 | } 2046 | else if (调色盘检测Y>色轮位置Y+色轮高度H) and (呼出PS取色!=1) 2047 | { 2048 | 呼出PS取色:=1 2049 | if (手动取色=0) 2050 | { 2051 | 取色颜色:=旧取色颜色 2052 | gosub 调色模式 2053 | 后台.点击左键(色轮窗口ID, 鼠标取色位置X, 鼠标取色位置Y) 2054 | } 2055 | else 2056 | { 2057 | gosub 调色模式 2058 | } 2059 | } 2060 | else if !GetKeyState("Tab", "P") and !GetKeyState("MButton", "P") 2061 | { 2062 | PixelGetColor, 取色颜色, 色轮位置X+取色位置X, 色轮位置Y+取色位置Y, RGB 2063 | break 2064 | } 2065 | else if GetKeyState("w", "P") 2066 | { 2067 | gosub 切换色板 2068 | } 2069 | else if GetKeyState("s", "P") 2070 | { 2071 | gosub 记忆模式 2072 | } 2073 | else if GetKeyState("q", "P") or (色相慢左旋=1) 2074 | { 2075 | gosub 色相慢左旋 2076 | } 2077 | else if GetKeyState("e", "P") or (色相慢右旋=1) 2078 | { 2079 | gosub 色相慢右旋 2080 | } 2081 | else if GetKeyState("a", "P") 2082 | { 2083 | gosub 色相快左旋 2084 | } 2085 | else if GetKeyState("d", "P") 2086 | { 2087 | gosub 色相快右旋 2088 | } 2089 | else if (调色盘=1) 2090 | { 2091 | if GetKeyState("``", "P") 2092 | { 2093 | gosub 清除调色盘 2094 | } 2095 | else if GetKeyState("1", "P") 2096 | { 2097 | gosub 撤回还原调色盘 2098 | } 2099 | else if GetKeyState("2", "P") 2100 | { 2101 | gosub 调色盘笔刷变小 2102 | } 2103 | else if GetKeyState("3", "P") 2104 | { 2105 | gosub 调色盘笔刷变大 2106 | } 2107 | else if GetKeyState("4", "P") 2108 | { 2109 | gosub 切换调色盘笔刷样式 2110 | } 2111 | } 2112 | 2113 | if (在PS取色=0) 2114 | { 2115 | PixelGetColor, 取色颜色, 色轮位置X+取色位置X, 色轮位置Y+取色位置Y, RGB 2116 | 在CSP取色颜色:=取色颜色 2117 | } 2118 | else 2119 | { 2120 | if (WinExist("ahk_class PSFloatC")!=0x0) ;""内填窗口名称 2121 | { 2122 | PixelGetColor, 取色颜色, 拾色器窗口X+Round(350/1080*屏幕高度), 拾色器窗口Y+Round(95/1080*屏幕高度), RGB 2123 | } 2124 | else 2125 | { 2126 | PixelGetColor, 取色颜色, 色轮位置X+Round(20/1080*屏幕高度), 色轮位置Y+色轮高度H+Round(62/1080*屏幕高度), RGB 2127 | } 2128 | } 2129 | Gui, 取色环:Color, %取色颜色% ;色环颜色 2130 | Sleep 10 2131 | } 2132 | 2133 | if (WinExist("ahk_class PSFloatC")!=0x0) ;""内填窗口名称 2134 | { 2135 | WinActivate, ahk_class PSFloatC 2136 | Send {Enter Down} 2137 | Sleep 50 2138 | Send {Enter Up} 2139 | } 2140 | 2141 | ;抬起热键关闭取色环 2142 | Gui, 取色环:Destroy 2143 | WinSet, AlwaysOnTop, Off, ahk_class Photoshop 2144 | WinActivate, ahk_exe CLIPStudioPaint.exe ;窗口置于顶层 2145 | CoordMode, Mouse, Window 2146 | MouseGetPos, 鼠标在色轮位置X, 鼠标在色轮位置Y 2147 | 2148 | ;记录取色位置到配置文件 2149 | if (调色盘=1) 2150 | { 2151 | if (色板位置=1) 2152 | { 2153 | gosub 更新色板位置 2154 | 鼠标在色轮位置X1:=鼠标在色轮位置X 2155 | 鼠标在色轮位置Y1:=鼠标在色轮位置Y 2156 | 色板1色相角度:=色相角度 2157 | 2158 | IniWrite, %鼠标在色轮位置X1%, 色轮设置.ini, 设置, 鼠标在色轮位置X1 2159 | IniWrite, %鼠标在色轮位置Y1%, 色轮设置.ini, 设置, 鼠标在色轮位置Y1 2160 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 2161 | IniWrite, %取色颜色%, 色轮设置.ini, 设置, 色板1取色颜色 2162 | } 2163 | else if (色板位置=2) 2164 | { 2165 | gosub 更新色板位置 2166 | 鼠标在色轮位置X2:=鼠标在色轮位置X 2167 | 鼠标在色轮位置Y2:=鼠标在色轮位置Y 2168 | 色板2色相角度:=色相角度 2169 | 2170 | IniWrite, %鼠标在色轮位置X2%, 色轮设置.ini, 设置, 鼠标在色轮位置X2 2171 | IniWrite, %鼠标在色轮位置Y2%, 色轮设置.ini, 设置, 鼠标在色轮位置Y2 2172 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 2173 | IniWrite, %取色颜色%, 色轮设置.ini, 设置, 色板2取色颜色 2174 | } 2175 | } 2176 | if (色板位置=1) 2177 | { 2178 | 鼠标在色轮位置X1:=鼠标在色轮位置X 2179 | 鼠标在色轮位置Y1:=鼠标在色轮位置Y 2180 | if (鼠标在色轮位置X1<色轮方块XL边界) 2181 | { 2182 | 鼠标在色轮位置X1:=色轮方块XL边界 2183 | } 2184 | else if (鼠标在色轮位置X1>色轮方块XR边界) 2185 | { 2186 | 鼠标在色轮位置X1:=色轮方块XR边界 2187 | } 2188 | if (鼠标在色轮位置Y1<色轮方块YU边界) 2189 | { 2190 | 鼠标在色轮位置Y1:=色轮方块YU边界 2191 | } 2192 | else if (鼠标在色轮位置Y1>色轮方块YD边界) 2193 | { 2194 | 鼠标在色轮位置Y1:=色轮方块YD边界 2195 | } 2196 | IniWrite, %鼠标在色轮位置X1%, 色轮设置.ini, 设置, 鼠标在色轮位置X1 2197 | IniWrite, %鼠标在色轮位置Y1%, 色轮设置.ini, 设置, 鼠标在色轮位置Y1 2198 | 色板1取色颜色:=取色颜色 2199 | IniWrite, %取色颜色%, 色轮设置.ini, 设置, 色板1取色颜色 2200 | } 2201 | else if (色板位置=2) 2202 | { 2203 | 鼠标在色轮位置X2:=鼠标在色轮位置X 2204 | 鼠标在色轮位置Y2:=鼠标在色轮位置Y 2205 | if (鼠标在色轮位置X1<色轮方块XL边界) 2206 | { 2207 | 鼠标在色轮位置X1:=色轮方块XL边界 2208 | } 2209 | else if (鼠标在色轮位置X1>色轮方块XR边界) 2210 | { 2211 | 鼠标在色轮位置X1:=色轮方块XR边界 2212 | } 2213 | if (鼠标在色轮位置Y1<色轮方块YU边界) 2214 | { 2215 | 鼠标在色轮位置Y1:=色轮方块YU边界 2216 | } 2217 | else if (鼠标在色轮位置Y1>色轮方块YD边界) 2218 | { 2219 | 鼠标在色轮位置Y1:=色轮方块YD边界 2220 | } 2221 | IniWrite, %鼠标在色轮位置X2%, 色轮设置.ini, 设置, 鼠标在色轮位置X2 2222 | IniWrite, %鼠标在色轮位置Y2%, 色轮设置.ini, 设置, 鼠标在色轮位置Y2 2223 | 色板2取色颜色:=取色颜色 2224 | IniWrite, %取色颜色%, 色轮设置.ini, 设置, 色板2取色颜色 2225 | } 2226 | 2227 | ;关闭色轮并移动画布至原始位置 2228 | CoordMode, Mouse, Screen 2229 | MouseGetPos, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 2230 | WinActivate, ahk_exe CLIPStudioPaint.exe ;窗口置于顶层 2231 | BlockInput, On 2232 | BlockInput, MouseMove 2233 | Send {LButton Up} ;结束取色 2234 | if (调色盘=1) 2235 | { 2236 | if !(WinExist("混色")=0) or !(WinExist("色彩混合")=0) 2237 | { 2238 | 调色盘:=0 2239 | if (Ctrl键2!=0) 2240 | { 2241 | Send {Ctrl Down} 2242 | Sleep 10 2243 | } 2244 | if (Shift键2!=0) 2245 | { 2246 | Send {Shift Down} 2247 | Sleep 10 2248 | } 2249 | if (Alt键2!=0) 2250 | { 2251 | Send {Alt Down} 2252 | Sleep 10 2253 | } 2254 | Send {%快捷键2% Down} ;打开色轮 2255 | Sleep 50 2256 | Send {%快捷键2% Up} 2257 | if (Ctrl键2!=0) 2258 | { 2259 | Send {Ctrl Up} 2260 | } 2261 | if (Shift键2!=0) 2262 | { 2263 | Send {Shift Up} 2264 | } 2265 | if (Alt键2!=0) 2266 | { 2267 | Send {Alt Up} 2268 | } 2269 | } 2270 | } 2271 | if !(WinExist("色轮")=0) or !(WinExist("色環")=0) 2272 | { 2273 | if (Ctrl键1!=0) 2274 | { 2275 | Send {Ctrl Down} 2276 | Sleep 10 2277 | } 2278 | if (Shift键1!=0) 2279 | { 2280 | Send {Shift Down} 2281 | Sleep 10 2282 | } 2283 | if (Alt键1!=0) 2284 | { 2285 | Send {Alt Down} 2286 | Sleep 10 2287 | } 2288 | Send {%快捷键1% Down} ;打开色轮 2289 | Sleep 50 2290 | Send {%快捷键1% Up} 2291 | if (Ctrl键1!=0) 2292 | { 2293 | Send {Ctrl Up} 2294 | } 2295 | if (Shift键1!=0) 2296 | { 2297 | Send {Shift Up} 2298 | } 2299 | if (Alt键1!=0) 2300 | { 2301 | Send {Alt Up} 2302 | } 2303 | } 2304 | Sleep 10 2305 | Send {space Down} 2306 | Send {LButton Down} 2307 | CoordMode, Mouse, Screen 2308 | MouseMove, 移动画布距离, 0, 0, R 2309 | Sleep 10 2310 | Send {LButton Up} 2311 | Send {space Up} 2312 | if (全屏=1) ;如果之前进入了全屏则退出全屏 2313 | { 2314 | Send {Tab} 2315 | 全屏:=0 2316 | } 2317 | MouseMove, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 2318 | 色轮:=0 2319 | BlockInput, Off 2320 | BlockInput, MouseMoveOff 2321 | return 2322 | 2323 | PS到CSP色彩更新: 2324 | if (色板位置=1) 2325 | { 2326 | gosub 更新色板位置 2327 | 鼠标在色轮位置X1:=鼠标在色轮位置X 2328 | 鼠标在色轮位置Y1:=鼠标在色轮位置Y 2329 | 色板1色相角度:=色相角度 2330 | 2331 | IniWrite, %鼠标在色轮位置X1%, 色轮设置.ini, 设置, 鼠标在色轮位置X1 2332 | IniWrite, %鼠标在色轮位置Y1%, 色轮设置.ini, 设置, 鼠标在色轮位置Y1 2333 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 2334 | IniWrite, %取色颜色%, 色轮设置.ini, 设置, 色板1取色颜色 2335 | 2336 | BlockInput, On 2337 | BlockInput, MouseMove 2338 | if (简体中文=1) 2339 | { 2340 | WinActivate, 色轮 2341 | } 2342 | else 2343 | { 2344 | WinActivate, 色環 2345 | } 2346 | 后台.点击左键(色轮窗口ID, 鼠标在色轮位置X1, 鼠标在色轮位置Y1) 2347 | gosub 色相偏移 2348 | ; ToolTip %色相角度% %绘制坐标X% %绘制坐标Y% 2349 | BlockInput, MouseMoveOff 2350 | BlockInput, Off 2351 | } 2352 | else if (色板位置=2) 2353 | { 2354 | gosub 更新色板位置 2355 | 鼠标在色轮位置X2:=鼠标在色轮位置X 2356 | 鼠标在色轮位置Y2:=鼠标在色轮位置Y 2357 | 色板2色相角度:=色相角度 2358 | 2359 | IniWrite, %鼠标在色轮位置X2%, 色轮设置.ini, 设置, 鼠标在色轮位置X2 2360 | IniWrite, %鼠标在色轮位置Y2%, 色轮设置.ini, 设置, 鼠标在色轮位置Y2 2361 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 2362 | IniWrite, %取色颜色%, 色轮设置.ini, 设置, 色板2取色颜色 2363 | 2364 | BlockInput, On 2365 | BlockInput, MouseMove 2366 | if (简体中文=1) 2367 | { 2368 | WinActivate, 色轮 2369 | } 2370 | else 2371 | { 2372 | WinActivate, 色環 2373 | } 2374 | 后台.点击左键(色轮窗口ID, 鼠标在色轮位置X2, 鼠标在色轮位置Y2) 2375 | gosub 色相偏移 2376 | ; ToolTip %色相角度% %绘制坐标X% %绘制坐标Y% 2377 | BlockInput, MouseMoveOff 2378 | BlockInput, Off 2379 | } 2380 | return 2381 | 2382 | 更新色板位置: 2383 | rgbArray1:="0x" 2384 | rgbArray1.=SubStr(取色颜色, 3, 2) 2385 | rgbArray1:=ToBase(rgbArray1,10) 2386 | 2387 | rgbArray2:="0x" 2388 | rgbArray2.=SubStr(取色颜色, 5, 2) 2389 | rgbArray2:=ToBase(rgbArray2,10) 2390 | 2391 | rgbArray3:="0x" 2392 | rgbArray3.=SubStr(取色颜色, 7, 2) 2393 | rgbArray3:=ToBase(rgbArray3,10) 2394 | 2395 | r :=rgbArray1 / 255 2396 | g :=rgbArray2 / 255 2397 | b :=rgbArray3 / 255 2398 | 2399 | max := Max(r, g, b) 2400 | min := Min(r, g, b) 2401 | delta := max - min 2402 | 2403 | if (delta = 0) { 2404 | h := 0 2405 | } else if (max = r) { 2406 | h := 60 * Mod(((g - b) / delta), 6) 2407 | } else if (max = g) { 2408 | h := 60 * (((b - r) / delta) + 2) 2409 | } else if (max = b) { 2410 | h := 60 * (((r - g) / delta) + 4) 2411 | } 2412 | 2413 | if (h < 0) 2414 | { 2415 | h := 300 + (60 - Abs(h)) 2416 | } 2417 | 2418 | if (max = 0) { 2419 | s := 0 2420 | } else { 2421 | s := delta / max 2422 | } 2423 | 2424 | v := max 2425 | 2426 | 色相角度:=Floor((6.283*((h-60)/360))/0.00515)*0.00515 2427 | if (色相角度<0) 2428 | { 2429 | 色相角度:=6.283+色相角度 2430 | } 2431 | 鼠标在色轮位置X:=色轮方块XL边界+Round(s*色轮目标边长) 2432 | 鼠标在色轮位置Y:=色轮方块YU边界+色轮目标边长-Round(v*色轮目标边长) 2433 | return 2434 | 2435 | 切换色板: 2436 | BlockInput, On 2437 | BlockInput, MouseMove 2438 | Send {LButton Up} ;结束取色 2439 | CoordMode, Mouse, Window 2440 | MouseGetPos, 鼠标在色轮位置X, 鼠标在色轮位置Y 2441 | 2442 | if (色板位置=1) ;记录鼠标位置并限制在方框内 2443 | { 2444 | 鼠标在色轮位置X1:=鼠标在色轮位置X 2445 | 鼠标在色轮位置Y1:=鼠标在色轮位置Y 2446 | if (鼠标在色轮位置X1<色轮方块XL边界) 2447 | { 2448 | 鼠标在色轮位置X1:=色轮方块XL边界 2449 | } 2450 | else if (鼠标在色轮位置X1>色轮方块XR边界) 2451 | { 2452 | 鼠标在色轮位置X1:=色轮方块XR边界 2453 | } 2454 | if (鼠标在色轮位置Y1<色轮方块YU边界) 2455 | { 2456 | 鼠标在色轮位置Y1:=色轮方块YU边界 2457 | } 2458 | else if (鼠标在色轮位置Y1>色轮方块YD边界) 2459 | { 2460 | 鼠标在色轮位置Y1:=色轮方块YD边界 2461 | } 2462 | IniWrite, %鼠标在色轮位置X1%, 色轮设置.ini, 设置, 鼠标在色轮位置X1 2463 | IniWrite, %鼠标在色轮位置Y1%, 色轮设置.ini, 设置, 鼠标在色轮位置Y1 2464 | } 2465 | else if (色板位置=2) 2466 | { 2467 | 鼠标在色轮位置X2:=鼠标在色轮位置X 2468 | 鼠标在色轮位置Y2:=鼠标在色轮位置Y 2469 | if (鼠标在色轮位置X1<色轮方块XL边界) 2470 | { 2471 | 鼠标在色轮位置X1:=色轮方块XL边界 2472 | } 2473 | else if (鼠标在色轮位置X1>色轮方块XR边界) 2474 | { 2475 | 鼠标在色轮位置X1:=色轮方块XR边界 2476 | } 2477 | if (鼠标在色轮位置Y1<色轮方块YU边界) 2478 | { 2479 | 鼠标在色轮位置Y1:=色轮方块YU边界 2480 | } 2481 | else if (鼠标在色轮位置Y1>色轮方块YD边界) 2482 | { 2483 | 鼠标在色轮位置Y1:=色轮方块YD边界 2484 | } 2485 | IniWrite, %鼠标在色轮位置X2%, 色轮设置.ini, 设置, 鼠标在色轮位置X2 2486 | IniWrite, %鼠标在色轮位置Y2%, 色轮设置.ini, 设置, 鼠标在色轮位置Y2 2487 | } 2488 | 2489 | CoordMode, Mouse, Screen 2490 | MouseGetPos, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 2491 | if (简体中文=1) and (调色盘=0) 2492 | { 2493 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色轮 2494 | } 2495 | else if (简体中文!=1) and (调色盘=0) 2496 | { 2497 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色環 2498 | } 2499 | ; ToolTip %色轮在屏幕位置X% %色轮在屏幕位置Y% 2500 | if (色板位置=1) 2501 | { 2502 | 色板位置:=2 2503 | 取色位置X:=Round(65/1080*屏幕高度) 2504 | 后台.点击左键(色轮窗口ID, 取色位置X, 取色位置Y) 2505 | 色轮位置X:=Round(鼠标在屏幕位置X-鼠标在色轮位置X2) 2506 | 色轮位置Y:=Round(鼠标在屏幕位置Y-鼠标在色轮位置Y2) 2507 | if (简体中文=1) and (调色盘=0) 2508 | { 2509 | WinMove, 色轮, , 色轮位置X, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动色轮窗口位置 2510 | } 2511 | else if (简体中文!=1) and (调色盘=0) 2512 | { 2513 | WinMove, 色環, , 色轮位置X, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动色轮窗口位置 2514 | } 2515 | Send {LButton Down} 2516 | } 2517 | else 2518 | { 2519 | 色板位置:=1 2520 | 取色位置X:=Round(25/1080*屏幕高度) 2521 | 后台.点击左键(色轮窗口ID, 取色位置X, 取色位置Y) 2522 | 色轮位置X:=Round(鼠标在屏幕位置X-鼠标在色轮位置X1) 2523 | 色轮位置Y:=Round(鼠标在屏幕位置Y-鼠标在色轮位置Y1) 2524 | if (简体中文=1) and (调色盘=0) 2525 | { 2526 | WinMove, 色轮, , 色轮位置X, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动色轮窗口位置 2527 | } 2528 | else if (简体中文!=1) and (调色盘=0) 2529 | { 2530 | WinMove, 色環, , 色轮位置X, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动色轮窗口位置 2531 | } 2532 | Send {LButton Down} 2533 | } 2534 | BlockInput, Off 2535 | BlockInput, MouseMoveOff 2536 | loop 2537 | { 2538 | if !GetKeyState("w", "P") 2539 | { 2540 | break 2541 | } 2542 | } 2543 | return 2544 | 2545 | 调色模式: 2546 | BlockInput, Send 2547 | if (呼出调色盘=1) 2548 | { 2549 | goto 呼出PS取色 2550 | } 2551 | else 2552 | { 2553 | 呼出调色盘:=1 2554 | } 2555 | Send {LButton Up} 2556 | Sleep 10 2557 | if (Ctrl键2!=0) 2558 | { 2559 | Send {Ctrl Down} 2560 | Sleep 10 2561 | } 2562 | if (Shift键2!=0) 2563 | { 2564 | Send {Shift Down} 2565 | Sleep 10 2566 | } 2567 | if (Alt键2!=0) 2568 | { 2569 | Send {Alt Down} 2570 | Sleep 10 2571 | } 2572 | Send {%快捷键2% Down} ;打开调色盘 2573 | Sleep 50 2574 | Send {%快捷键2% Up} 2575 | if (Ctrl键2!=0) 2576 | { 2577 | Send {Ctrl Up} 2578 | } 2579 | if (Shift键2!=0) 2580 | { 2581 | Send {Shift Up} 2582 | } 2583 | if (Alt键2!=0) 2584 | { 2585 | Send {Alt Up} 2586 | } 2587 | 开始计时:=A_TickCount 2588 | if (简体中文=1) 2589 | { 2590 | loop ;寻找调色盘 2591 | { 2592 | 寻找耗时:=A_TickCount-开始计时 2593 | ; ToolTip 寻找色轮中%寻找耗时%ms 2594 | if !(WinExist("混色")=0) ;""内填窗口名称 2595 | { 2596 | 调色盘:=1 2597 | 调色盘窗口ID:=WinExist("混色") ;""内填窗口名称 2598 | ; ToolTip 已找到调色盘 2599 | break 2600 | } 2601 | else 2602 | { 2603 | if (寻找耗时>3000) 2604 | { 2605 | 调色盘:=0 2606 | BlockInput, Default 2607 | loop 100 2608 | { 2609 | ToolTip 未找到调色盘 请检查呼出调色盘快捷键设置是否正确 2610 | Sleep 30 2611 | } 2612 | ToolTip 2613 | return 2614 | } 2615 | 2616 | Send {LButton Up} 2617 | Sleep 10 2618 | if (Ctrl键2!=0) 2619 | { 2620 | Send {Ctrl Down} 2621 | Sleep 10 2622 | } 2623 | if (Shift键2!=0) 2624 | { 2625 | Send {Shift Down} 2626 | Sleep 10 2627 | } 2628 | if (Alt键2!=0) 2629 | { 2630 | Send {Alt Down} 2631 | Sleep 10 2632 | } 2633 | Send {%快捷键2% Down} ;打开色轮 2634 | Sleep 50 2635 | Send {%快捷键2% Up} 2636 | if (Ctrl键2!=0) 2637 | { 2638 | Send {Ctrl Up} 2639 | } 2640 | if (Shift键2!=0) 2641 | { 2642 | Send {Shift Up} 2643 | } 2644 | if (Alt键2!=0) 2645 | { 2646 | Send {Alt Up} 2647 | } 2648 | Sleep 300 2649 | } 2650 | } 2651 | } 2652 | else 2653 | { 2654 | loop ;寻找调色盘 2655 | { 2656 | 寻找耗时:=A_TickCount-开始计时 2657 | ; ToolTip 寻找色轮中%寻找耗时%ms 2658 | if !(WinExist("色彩混合")=0) ;""内填窗口名称 2659 | { 2660 | 调色盘:=1 2661 | 调色盘窗口ID:=WinExist("色彩混合") ;""内填窗口名称 2662 | ; ToolTip 已找到调色盘 2663 | break 2664 | } 2665 | else 2666 | { 2667 | if (寻找耗时>3000) 2668 | { 2669 | 调色盘:=0 2670 | BlockInput, Default 2671 | loop 100 2672 | { 2673 | ToolTip 未找到调色盘 请检查呼出调色盘快捷键设置是否正确 2674 | Sleep 30 2675 | } 2676 | ToolTip 2677 | return 2678 | } 2679 | 2680 | Send {LButton Up} 2681 | Sleep 10 2682 | if (Ctrl键2!=0) 2683 | { 2684 | Send {Ctrl Down} 2685 | Sleep 10 2686 | } 2687 | if (Shift键2!=0) 2688 | { 2689 | Send {Shift Down} 2690 | Sleep 10 2691 | } 2692 | if (Alt键2!=0) 2693 | { 2694 | Send {Alt Down} 2695 | Sleep 10 2696 | } 2697 | Send {%快捷键2% Down} ;打开调色盘 2698 | Sleep 50 2699 | Send {%快捷键2% Up} 2700 | if (Ctrl键2!=0) 2701 | { 2702 | Send {Ctrl Up} 2703 | } 2704 | if (Shift键2!=0) 2705 | { 2706 | Send {Shift Up} 2707 | } 2708 | if (Alt键2!=0) 2709 | { 2710 | Send {Alt Up} 2711 | } 2712 | Sleep 300 2713 | } 2714 | } 2715 | } 2716 | if (简体中文=1) 2717 | { 2718 | WinMove, 混色, , 色轮位置X+色轮宽度W, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动调色盘窗口位置 2719 | } 2720 | else 2721 | { 2722 | WinMove, 色彩混合, , 色轮位置X+色轮宽度W, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动调色盘窗口位置 2723 | } 2724 | 2725 | 呼出PS取色: 2726 | if (WinExist("ahk_class PSFloatC")!=0x0) ;""内填窗口名称 2727 | { 2728 | WinActivate, ahk_class PSFloatC 2729 | Send {Enter Down} 2730 | Sleep 50 2731 | Send {Enter Up} 2732 | Sleep 200 2733 | } 2734 | 2735 | if (呼出PS取色=1) 2736 | { 2737 | Sleep 100 2738 | if (色轮位置Y>屏幕高度-色轮高度H*2) 2739 | { 2740 | 色轮位置Y:=屏幕高度-色轮高度H*2 2741 | } 2742 | if (简体中文=1) 2743 | { 2744 | WinMove, 色轮, , 色轮位置X, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动色轮窗口位置 2745 | WinMove, 混色, , 色轮位置X+色轮宽度W, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动调色盘窗口位置 2746 | } 2747 | else 2748 | { 2749 | WinMove, 色環, , 色轮位置X, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动色轮窗口位置 2750 | WinMove, 色彩混合, , 色轮位置X+色轮宽度W, 色轮位置Y, 色轮宽度W, 色轮高度H ;移动调色盘窗口位置 2751 | } 2752 | ; SetWinDelay, 300 2753 | WinActivate, ahk_class Photoshop 2754 | WinRestore, ahk_class Photoshop 2755 | WinMove, ahk_class Photoshop, , 色轮位置X, 色轮位置Y+色轮高度H, 色轮宽度W*2, 色轮高度H ;移动PS窗口 2756 | WinSet, AlwaysOnTop, On, ahk_class Photoshop 2757 | 2758 | 开始计时:=A_TickCount 2759 | loop ;寻找LAB窗口 2760 | { 2761 | 寻找耗时:=A_TickCount-开始计时 2762 | ; ToolTip 寻找LAB窗口中%寻找耗时%ms 2763 | if (WinExist("ahk_class OWL.Dock")!=0x0) ;""内填窗口名称 2764 | { 2765 | ; ToolTip 已找到LAB窗口 2766 | 开始计时:=A_TickCount 2767 | loop 2768 | { 2769 | 移动耗时:=A_TickCount-开始计时 2770 | WinGetPos, LAB窗口X, LAB窗口Y, LAB窗口W, LAB窗口H, ahk_class OWL.Dock 2771 | LAB窗口目标位置Y:=色轮位置Y+色轮高度H 2772 | LAB窗口目标宽度W:=色轮宽度W*2 2773 | ; ToolTip, 移动LAB窗口中%移动耗时%ms`nLAB窗口X%LAB窗口X% 色轮位置X%色轮位置X%`nLAB窗口Y%LAB窗口Y% 色轮位置Y%LAB窗口目标位置Y%`nLAB窗口W%LAB窗口W% 色轮宽度W%LAB窗口目标宽度W%`nLAB窗口H%LAB窗口H% 色轮高度H%色轮高度H% 2774 | if (LAB窗口X!=色轮位置X) or (LAB窗口Y!=LAB窗口目标位置Y) 2775 | { 2776 | CoordMode, Mouse, Screen 2777 | WinActivate, ahk_class OWL.Dock 2778 | BlockInput, On 2779 | MouseMove, LAB窗口X+Round(5/1080*屏幕高度), LAB窗口Y+Round(5/1080*屏幕高度) 2780 | Send {LButton Down} 2781 | MouseMove, 色轮位置X+Round(5/1080*屏幕高度), LAB窗口目标位置Y+Round(5/1080*屏幕高度), 0 2782 | Sleep 10 2783 | Send {LButton Up} 2784 | Sleep 50 2785 | } 2786 | else if (LAB窗口W!=LAB窗口目标宽度W) or (LAB窗口H!=色轮高度H) 2787 | { 2788 | CoordMode, Mouse, Screen 2789 | WinActivate, ahk_class OWL.Dock 2790 | BlockInput, On 2791 | MouseMove, LAB窗口X+LAB窗口W-Round(5/1080*屏幕高度), LAB窗口Y+LAB窗口H-Round(5/1080*屏幕高度), 2792 | Send {LButton Down} 2793 | MouseMove, LAB窗口目标宽度W-LAB窗口W, 色轮高度H-LAB窗口H, 0, R 2794 | Sleep 10 2795 | Send {LButton Up} 2796 | Sleep 50 2797 | } 2798 | else if (LAB窗口X=色轮位置X) and (LAB窗口Y=LAB窗口目标位置Y) and (LAB窗口W=LAB窗口目标宽度W) and (LAB窗口H=色轮高度H) 2799 | { 2800 | BlockInput, Off 2801 | break, 2 2802 | } 2803 | else if (移动耗时>3000) 2804 | { 2805 | BlockInput, Off 2806 | break, 2 2807 | } 2808 | } 2809 | } 2810 | else if (WinExist("ahk_class OWL.Dock")=0x0) 2811 | { 2812 | if (寻找耗时>500) 2813 | { 2814 | loop 100 2815 | { 2816 | ToolTip 未找到LAB窗口 请检查PS是否已经打开 2817 | Sleep 30 2818 | } 2819 | ToolTip 2820 | return 2821 | } 2822 | Send {F6} 2823 | Sleep 50 2824 | WinActivate, ahk_class OWL.Dock 2825 | } 2826 | } 2827 | 2828 | 开始计时:=A_TickCount 2829 | if (记忆模式=0) ;CSP颜色导入PS 2830 | { 2831 | BlockInput, On 2832 | CoordMode, Mouse, Screen 2833 | ; MouseGetPos, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 2834 | PS取色颜色:=StrReplace(取色颜色,"0x") 2835 | Clipboard:=PS取色颜色 2836 | Send {n} 2837 | Sleep 50 2838 | loop ;寻找拾色器窗口 2839 | { 2840 | 寻找耗时:=A_TickCount-开始计时 2841 | ; ToolTip 寻找拾色器窗口中%寻找耗时%ms 2842 | if (WinExist("ahk_class PSFloatC")!=0x0) ;""内填窗口名称 2843 | { 2844 | ; ToolTip 已找到拾色器窗口%寻找耗时%ms 取色颜色%取色颜色% 2845 | WinActivate, ahk_class PSFloatC 2846 | WinGetPos, 拾色器窗口X, 拾色器窗口Y 2847 | break 2848 | } 2849 | else if (WinExist("ahk_class PSFloatC")=0x0) 2850 | { 2851 | if (寻找耗时>500) 2852 | { 2853 | loop 100 2854 | { 2855 | ToolTip 未找到拾色器窗口 请检查是否已经设置快捷键为N 2856 | Sleep 30 2857 | } 2858 | ToolTip 2859 | return 2860 | } 2861 | 2862 | Send {n} 2863 | Sleep 50 2864 | WinActivate, ahk_class PSFloatC 2865 | } 2866 | } 2867 | if (拾色器窗口X!=色轮位置X+Round(40/1080*屏幕高度)) or (拾色器窗口Y!=色轮位置Y+色轮高度H) 2868 | { 2869 | MouseMove, 拾色器窗口X+Round(15/1080*屏幕高度), 拾色器窗口Y+Round(5/1080*屏幕高度), 0 2870 | Send {LButton Down} 2871 | MouseMove, 色轮位置X+Round(55/1080*屏幕高度), 色轮位置Y+色轮高度H+Round(5/1080*屏幕高度), 0 2872 | Sleep 10 2873 | Send {LButton Up} 2874 | } 2875 | Sleep 10 2876 | Send {Ctrl Down} 2877 | Sleep 50 2878 | Send {v Down} 2879 | Sleep 50 2880 | Send {v Up} 2881 | Send {Ctrl Up} 2882 | Sleep 50 2883 | Send {Enter} 2884 | ; MouseMove, 鼠标在屏幕位置X, 鼠标在屏幕位置Y 2885 | BlockInput Off 2886 | Sleep 100 2887 | } 2888 | } 2889 | return 2890 | 2891 | #IfWinActive ahk_exe CLIPStudioPaint.exe 2892 | $s:: 2893 | if (色轮=0) 2894 | { 2895 | Send {s Down} 2896 | KeyWait, s 2897 | Send {s Up} 2898 | return 2899 | } 2900 | return 2901 | 2902 | $e:: 2903 | if (色轮=0) 2904 | { 2905 | Send {e Down} 2906 | KeyWait, s 2907 | Send {e Up} 2908 | return 2909 | } 2910 | return 2911 | 2912 | $w:: 2913 | if (色轮=0) 2914 | { 2915 | loop 2916 | { 2917 | Send {w Down} 2918 | Sleep 50 2919 | Send {w Up} 2920 | 2921 | if (A_Index=1) 2922 | { 2923 | Sleep 200 2924 | } 2925 | 2926 | if !GetKeyState("w", "P") 2927 | { 2928 | break 2929 | } 2930 | else if GetKeyState("w", "P") 2931 | { 2932 | Sleep 50 2933 | } 2934 | } 2935 | } 2936 | return 2937 | 2938 | $q:: 2939 | if (色轮=0) 2940 | { 2941 | loop 2942 | { 2943 | Send {q Down} 2944 | Sleep 50 2945 | Send {q Up} 2946 | 2947 | if (A_Index=1) 2948 | { 2949 | Sleep 200 2950 | } 2951 | 2952 | if !GetKeyState("q", "P") 2953 | { 2954 | break 2955 | } 2956 | else if GetKeyState("q", "P") 2957 | { 2958 | Sleep 50 2959 | } 2960 | } 2961 | } 2962 | return 2963 | 2964 | $a:: 2965 | if (色轮=0) 2966 | { 2967 | loop 2968 | { 2969 | Send {a Down} 2970 | Sleep 50 2971 | Send {a Up} 2972 | 2973 | if (A_Index=1) 2974 | { 2975 | Sleep 200 2976 | } 2977 | 2978 | if !GetKeyState("a", "P") 2979 | { 2980 | break 2981 | } 2982 | else if GetKeyState("a", "P") 2983 | { 2984 | Sleep 50 2985 | } 2986 | } 2987 | } 2988 | return 2989 | 2990 | $d:: 2991 | if (色轮=0) 2992 | { 2993 | loop 2994 | { 2995 | Send {d Down} 2996 | Sleep 50 2997 | Send {d Up} 2998 | 2999 | if (A_Index=1) 3000 | { 3001 | Sleep 200 3002 | } 3003 | 3004 | if !GetKeyState("d", "P") 3005 | { 3006 | break 3007 | } 3008 | else if GetKeyState("d", "P") 3009 | { 3010 | Sleep 50 3011 | } 3012 | } 3013 | } 3014 | return 3015 | 3016 | $1:: 3017 | if (色轮=0) 3018 | { 3019 | loop 3020 | { 3021 | Send {1 Down} 3022 | Sleep 50 3023 | Send {1 Up} 3024 | 3025 | if (A_Index=1) 3026 | { 3027 | loop 20 3028 | { 3029 | if !GetKeyState("1", "P") 3030 | { 3031 | break 3032 | } 3033 | Sleep 20 3034 | } 3035 | } 3036 | 3037 | if !GetKeyState("1", "P") 3038 | { 3039 | break 3040 | } 3041 | else if GetKeyState("1", "P") 3042 | { 3043 | Sleep 50 3044 | } 3045 | } 3046 | } 3047 | return 3048 | 3049 | $2:: 3050 | if (色轮=0) 3051 | { 3052 | loop 3053 | { 3054 | Send {2 Down} 3055 | Sleep 50 3056 | Send {2 Up} 3057 | 3058 | if (A_Index=1) 3059 | { 3060 | loop 20 3061 | { 3062 | if !GetKeyState("2", "P") 3063 | { 3064 | break 3065 | } 3066 | Sleep 20 3067 | } 3068 | } 3069 | 3070 | if !GetKeyState("2", "P") 3071 | { 3072 | break 3073 | } 3074 | else if GetKeyState("2", "P") 3075 | { 3076 | Sleep 50 3077 | } 3078 | } 3079 | } 3080 | return 3081 | 3082 | $3:: 3083 | if (色轮=0) 3084 | { 3085 | loop 3086 | { 3087 | Send {3 Down} 3088 | Sleep 50 3089 | Send {3 Up} 3090 | 3091 | if (A_Index=1) 3092 | { 3093 | loop 20 3094 | { 3095 | if !GetKeyState("3", "P") 3096 | { 3097 | break 3098 | } 3099 | Sleep 20 3100 | } 3101 | } 3102 | 3103 | if !GetKeyState("3", "P") 3104 | { 3105 | break 3106 | } 3107 | else if GetKeyState("3", "P") 3108 | { 3109 | Sleep 50 3110 | } 3111 | } 3112 | } 3113 | return 3114 | 3115 | $4:: 3116 | if (色轮=0) 3117 | { 3118 | loop 3119 | { 3120 | Send {4 Down} 3121 | Sleep 50 3122 | Send {4 Up} 3123 | 3124 | if (A_Index=1) 3125 | { 3126 | loop 20 3127 | { 3128 | if !GetKeyState("4", "P") 3129 | { 3130 | break 3131 | } 3132 | Sleep 20 3133 | } 3134 | } 3135 | 3136 | if !GetKeyState("4", "P") 3137 | { 3138 | break 3139 | } 3140 | else if GetKeyState("4", "P") 3141 | { 3142 | Sleep 50 3143 | } 3144 | } 3145 | } 3146 | return 3147 | 3148 | $`:: 3149 | if (色轮=0) 3150 | { 3151 | Send {`` Down} 3152 | KeyWait, `` 3153 | Send {`` Up} 3154 | return 3155 | } 3156 | return 3157 | 3158 | Space:: 3159 | send {Space Down} 3160 | KeyWait Space 3161 | send {Space Up} 3162 | if (space_presses > 0) ;记录键击. 3163 | { 3164 | space_presses += 1 3165 | return 3166 | } 3167 | space_presses := 1 3168 | SetTimer, KeySpace, -400 ; 在 400 毫秒内等待更多的键击. 3169 | return 3170 | 3171 | KeySpace: 3172 | if (space_presses >= 2) ; 此键按下了两次. 3173 | { 3174 | Send {LWin Down} 3175 | Send {Ctrl Down} 3176 | Send {c} 3177 | Send {LWin Up} 3178 | Send {Ctrl Up} 3179 | } 3180 | space_presses := 0 3181 | return 3182 | 3183 | KeyLButton: 3184 | if (LButton_presses >= 2) ; 此键按下了两次. 3185 | { 3186 | ; ToolTip Enter 3187 | Send {Enter Down} 3188 | Sleep 50 3189 | Send {Enter Up} 3190 | Sleep 100 3191 | gosub PS到CSP色彩更新 3192 | } 3193 | LButton_presses := 0 3194 | return 3195 | 3196 | ~^Enter:: 3197 | 自动隐藏:=A_TickCount 3198 | KeyWait, Enter 3199 | if (A_TickCount-自动隐藏<=500) 3200 | { 3201 | if (软件Class名=0) 3202 | { 3203 | MouseGetPos, , , WinID 3204 | WinGetClass, 软件Class名, ahk_id %WinID% 3205 | IniWrite, %软件Class名%, 色轮设置.ini, 设置, 软件Class名 3206 | if (软件Class名!=0) 3207 | { 3208 | SetTimer, 自动隐藏菜单, 200 3209 | } 3210 | loop 50 3211 | { 3212 | ToolTip, 已打开自动隐藏功能 %软件Class名% 3213 | Sleep 30 3214 | } 3215 | ToolTip 3216 | } 3217 | } 3218 | else 3219 | { 3220 | 软件Class名:=0 3221 | IniWrite, %软件Class名%, 色轮设置.ini, 设置, 软件Class名 3222 | SetTimer, 自动隐藏菜单, Delete 3223 | loop 50 3224 | { 3225 | ToolTip, 已关闭自动隐藏功能 3226 | Sleep 30 3227 | } 3228 | ToolTip 3229 | } 3230 | return 3231 | 3232 | 滚轮上: 3233 | if (色轮=0) and (色相慢左旋!=1) 3234 | { 3235 | Send {WheelUp} 3236 | return 3237 | } 3238 | 色相慢左旋:=1 3239 | return 3240 | 3241 | 色相慢左旋: 3242 | if GetKeyState("LButton", "P") 3243 | { 3244 | goto 色相快左旋 3245 | } 3246 | BlockInput MouseMove 3247 | Send {LButton Up} 3248 | CoordMode, Mouse, Screen 3249 | MouseGetPos, 鼠标在屏幕位置记忆X, 鼠标在屏幕位置记忆Y 3250 | if (简体中文=1) 3251 | { 3252 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色轮 3253 | } 3254 | else 3255 | { 3256 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色環 3257 | } 3258 | CoordMode, Mouse, Screen 3259 | loop 3260 | { 3261 | if (色板位置=1) 3262 | { 3263 | 色板1色相角度:=色板1色相角度-0.00515 3264 | 色相角度:=色板1色相角度 3265 | if (色板1色相角度<0) 3266 | { 3267 | 色板1色相角度:=6.283-0.00515 3268 | 色相角度:=6.283-0.00515 3269 | } 3270 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 3271 | } 3272 | else if (色板位置=2) 3273 | { 3274 | 色板2色相角度:=色板2色相角度-0.00515 3275 | 色相角度:=色板2色相角度 3276 | if (色板2色相角度<0) 3277 | { 3278 | 色板2色相角度:=6.283-0.00515 3279 | 色相角度:=6.283-0.00515 3280 | } 3281 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 3282 | } 3283 | gosub 色相偏移 3284 | 3285 | if !GetKeyState("q", "P") 3286 | { 3287 | break 3288 | } 3289 | else 3290 | { 3291 | if (A_Index=1) 3292 | { 3293 | loop 10 3294 | { 3295 | if !GetKeyState("q", "P") 3296 | { 3297 | break, 2 3298 | } 3299 | Sleep 25 3300 | } 3301 | } 3302 | Sleep 80 3303 | } 3304 | } 3305 | if (调色盘!=1) 3306 | { 3307 | Send {LButton Down} 3308 | } 3309 | BlockInput MouseMoveOff 3310 | 色相慢左旋:=0 3311 | return 3312 | 3313 | 滚轮下: 3314 | if (色轮=0) and (色相慢右旋!=1) 3315 | { 3316 | Send {WheelDown} 3317 | return 3318 | } 3319 | 色相慢右旋:=1 3320 | return 3321 | 3322 | 色相慢右旋: 3323 | if GetKeyState("LButton", "P") 3324 | { 3325 | goto 色相快右旋 3326 | } 3327 | BlockInput MouseMove 3328 | Send {LButton Up} 3329 | CoordMode, Mouse, Screen 3330 | MouseGetPos, 鼠标在屏幕位置记忆X, 鼠标在屏幕位置记忆Y 3331 | if (简体中文=1) 3332 | { 3333 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色轮 3334 | } 3335 | else 3336 | { 3337 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色環 3338 | } 3339 | CoordMode, Mouse, Screen 3340 | loop 3341 | { 3342 | if (色板位置=1) 3343 | { 3344 | 色板1色相角度:=色板1色相角度+0.00515 3345 | 色相角度:=色板1色相角度 3346 | if (色板1色相角度>=6.283) 3347 | { 3348 | 色板1色相角度:=0 3349 | 色相角度:=0 3350 | } 3351 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 3352 | } 3353 | else if (色板位置=2) 3354 | { 3355 | 色板2色相角度:=色板2色相角度+0.00515 3356 | 色相角度:=色板2色相角度 3357 | if (色板2色相角度>=6.283) 3358 | { 3359 | 色板2色相角度:=0 3360 | 色相角度:=0 3361 | } 3362 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 3363 | } 3364 | gosub 色相偏移 3365 | 3366 | if !GetKeyState("e", "P") 3367 | { 3368 | break 3369 | } 3370 | else 3371 | { 3372 | if (A_Index=1) 3373 | { 3374 | loop 10 3375 | { 3376 | if !GetKeyState("e", "P") 3377 | { 3378 | break, 2 3379 | } 3380 | Sleep 25 3381 | } 3382 | } 3383 | Sleep 80 3384 | } 3385 | } 3386 | if (调色盘!=1) 3387 | { 3388 | Send {LButton Down} 3389 | } 3390 | BlockInput MouseMoveOff 3391 | 色相慢右旋:=0 3392 | return 3393 | 3394 | 色相快左旋: 3395 | BlockInput MouseMove 3396 | Send {LButton Up} 3397 | CoordMode, Mouse, Screen 3398 | MouseGetPos, 鼠标在屏幕位置记忆X, 鼠标在屏幕位置记忆Y 3399 | if (简体中文=1) 3400 | { 3401 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色轮 3402 | } 3403 | else 3404 | { 3405 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色環 3406 | } 3407 | CoordMode, Mouse, Screen 3408 | loop 3409 | { 3410 | if (色板位置=1) 3411 | { 3412 | 色板1色相角度:=色板1色相角度-0.103 3413 | 色相角度:=色板1色相角度 3414 | if (色板1色相角度<0) 3415 | { 3416 | 色板1色相角度:=6.283-0.103 3417 | 色相角度:=6.283-0.103 3418 | } 3419 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 3420 | } 3421 | else if (色板位置=2) 3422 | { 3423 | 色板2色相角度:=色板2色相角度-0.103 3424 | 色相角度:=色板2色相角度 3425 | if (色板2色相角度<0) 3426 | { 3427 | 色板2色相角度:=6.283-0.103 3428 | 色相角度:=6.283-0.103 3429 | } 3430 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 3431 | } 3432 | gosub 色相偏移 3433 | 3434 | if !GetKeyState("a", "P") 3435 | { 3436 | break 3437 | } 3438 | else 3439 | { 3440 | if (A_Index=1) 3441 | { 3442 | loop 10 3443 | { 3444 | if !GetKeyState("a", "P") 3445 | { 3446 | break, 2 3447 | } 3448 | Sleep 25 3449 | } 3450 | } 3451 | Sleep 80 3452 | } 3453 | } 3454 | if (调色盘!=1) 3455 | { 3456 | Send {LButton Down} 3457 | } 3458 | BlockInput MouseMoveOff 3459 | 色相慢左旋:=0 3460 | return 3461 | 3462 | 色相快右旋: 3463 | BlockInput MouseMove 3464 | Send {LButton Up} 3465 | CoordMode, Mouse, Screen 3466 | MouseGetPos, 鼠标在屏幕位置记忆X, 鼠标在屏幕位置记忆Y 3467 | if (简体中文=1) 3468 | { 3469 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色轮 3470 | } 3471 | else 3472 | { 3473 | WinGetPos, 色轮在屏幕位置X, 色轮在屏幕位置Y, , , 色環 3474 | } 3475 | CoordMode, Mouse, Screen 3476 | loop 3477 | { 3478 | if (色板位置=1) 3479 | { 3480 | 色板1色相角度:=色板1色相角度+0.103 3481 | 色相角度:=色板1色相角度 3482 | if (色板1色相角度>=6.283) 3483 | { 3484 | 色板1色相角度:=0 3485 | 色相角度:=0 3486 | } 3487 | IniWrite, %色板1色相角度%, 色轮设置.ini, 设置, 色板1色相角度 3488 | } 3489 | else if (色板位置=2) 3490 | { 3491 | 色板2色相角度:=色板2色相角度+0.103 3492 | 色相角度:=色板2色相角度 3493 | if (色板2色相角度>=6.283) 3494 | { 3495 | 色板2色相角度:=0 3496 | 色相角度:=0 3497 | } 3498 | IniWrite, %色板2色相角度%, 色轮设置.ini, 设置, 色板2色相角度 3499 | } 3500 | gosub 色相偏移 3501 | 3502 | if !GetKeyState("d", "P") 3503 | { 3504 | break 3505 | } 3506 | else 3507 | { 3508 | if (A_Index=1) 3509 | { 3510 | loop 10 3511 | { 3512 | if !GetKeyState("d", "P") 3513 | { 3514 | break, 2 3515 | } 3516 | Sleep 25 3517 | } 3518 | } 3519 | Sleep 80 3520 | } 3521 | } 3522 | if (调色盘!=1) 3523 | { 3524 | Send {LButton Down} 3525 | } 3526 | BlockInput MouseMoveOff 3527 | 色相慢右旋:=0 3528 | return 3529 | 3530 | 色相偏移: 3531 | if (色相角度<1.57075) 3532 | { 3533 | 角度:=色相角度 3534 | } 3535 | else if (色相角度>=1.57075) and (色相角度<3.1415) 3536 | { 3537 | 角度:=1.57075-(色相角度-1.57075) 3538 | } 3539 | else if (色相角度>=3.1415) and (色相角度<4.71225) 3540 | { 3541 | 角度:=色相角度-3.1415 3542 | } 3543 | else if (色相角度>=4.71225) and (色相角度<6.283) 3544 | { 3545 | 角度:=1.57075-(色相角度-4.71225) 3546 | } 3547 | 计算坐标X:=圆的半径*Sin(角度) 3548 | 计算坐标Y:=Sqrt(圆的半径*圆的半径-计算坐标X*计算坐标X) 3549 | if (色相角度<1.57075) 3550 | { 3551 | 绘制坐标X:=Round(圆心坐标X+计算坐标X) 3552 | 绘制坐标Y:=Round(圆心坐标Y-计算坐标Y) 3553 | } 3554 | else if (色相角度>=1.57075) and (色相角度<3.1415) 3555 | { 3556 | 绘制坐标X:=Round(圆心坐标X+计算坐标X) 3557 | 绘制坐标Y:=Round(圆心坐标Y+计算坐标Y) 3558 | } 3559 | else if (色相角度>=3.1415) and (色相角度<4.71225) 3560 | { 3561 | 绘制坐标X:=Round(圆心坐标X-计算坐标X) 3562 | 绘制坐标Y:=Round(圆心坐标Y+计算坐标Y) 3563 | } 3564 | else if (色相角度>=4.71225) and (色相角度<6.283) 3565 | { 3566 | 绘制坐标X:=Round(圆心坐标X-计算坐标X) 3567 | 绘制坐标Y:=Round(圆心坐标Y-计算坐标Y) 3568 | } 3569 | 后台.点击左键(色轮窗口ID, 绘制坐标X, 绘制坐标Y) 3570 | return 3571 | 3572 | 清除调色盘: 3573 | 清除调色盘:=Round(255/1080*屏幕高度) 3574 | 后台.点击左键(调色盘窗口ID, 255, 调色盘按键Y) 3575 | ; CoordMode, Mouse, Screen 3576 | ; MouseGetPos, 鼠标在调色盘位置X, 鼠标在调色盘位置Y 3577 | ; BlockInput, On 3578 | ; BlockInput, MouseMove 3579 | ; MouseMove, 色轮位置X+色轮宽度W+255, 色轮位置Y+480, 0 3580 | ; Send {LButton} 3581 | ; MouseMove, 鼠标在调色盘位置X, 鼠标在调色盘位置Y, 0 3582 | ; BlockInput, Off 3583 | ; BlockInput, MouseMoveOff 3584 | return 3585 | 3586 | 撤回还原调色盘: 3587 | 撤回计时:=A_TickCount 3588 | loop 3589 | { 3590 | 记录时间:=A_TickCount-撤回计时 3591 | if !GetKeyState("1", "P") 3592 | { 3593 | break 3594 | } 3595 | else if (记录时间>350) ;还原 3596 | { 3597 | 调色盘还原:=Round(295/1080*屏幕高度) 3598 | 后台.点击左键(调色盘窗口ID, 调色盘还原, 调色盘按键Y) 3599 | ; CoordMode, Mouse, Screen 3600 | ; MouseGetPos, 鼠标在调色盘位置X, 鼠标在调色盘位置Y 3601 | ; BlockInput, On 3602 | ; BlockInput, MouseMove 3603 | ; MouseMove, 色轮位置X+色轮宽度W+295, 色轮位置Y+480, 0 3604 | ; Send {LButton} 3605 | ; MouseMove, 鼠标在调色盘位置X, 鼠标在调色盘位置Y, 0 3606 | ; BlockInput, Off 3607 | ; BlockInput, MouseMoveOff 3608 | Sleep 200 3609 | } 3610 | } 3611 | if (记录时间<=350) ;撤回 3612 | { 3613 | 调色盘撤回:=Round(275/1080*屏幕高度) 3614 | 后台.点击左键(调色盘窗口ID, 调色盘撤回, 调色盘按键Y) 3615 | ; CoordMode, Mouse, Screen 3616 | ; MouseGetPos, 鼠标在调色盘位置X, 鼠标在调色盘位置Y 3617 | ; BlockInput, On 3618 | ; BlockInput, MouseMove 3619 | ; MouseMove, 色轮位置X+色轮宽度W+275, 色轮位置Y+480, 0 3620 | ; Send {LButton} 3621 | ; MouseMove, 鼠标在调色盘位置X, 鼠标在调色盘位置Y, 0 3622 | ; BlockInput, Off 3623 | ; BlockInput, MouseMoveOff 3624 | } 3625 | return 3626 | 3627 | 调色盘笔刷变小: 3628 | 旧调色盘笔刷大小:=调色盘笔刷大小 3629 | 调色盘笔刷大小:=调色盘笔刷大小-1 3630 | if (调色盘笔刷大小<0) 3631 | { 3632 | 调色盘笔刷大小:=0 3633 | } 3634 | if (调色盘笔刷大小!=旧调色盘笔刷大小) 3635 | { 3636 | 调色盘笔刷变小:=Round(323/1080*屏幕高度)+Round(20/1080*屏幕高度)*调色盘笔刷大小 3637 | 后台.点击左键(调色盘窗口ID, 调色盘笔刷变小, 调色盘按键Y) 3638 | ; CoordMode, Mouse, Screen 3639 | ; MouseGetPos, 鼠标在调色盘位置X, 鼠标在调色盘位置Y 3640 | ; BlockInput, On 3641 | ; BlockInput, MouseMove 3642 | ; MouseMove, 色轮位置X+色轮宽度W+323+20*调色盘笔刷大小, 色轮位置Y+480, 0 3643 | ; Send {LButton} 3644 | ; MouseMove, 鼠标在调色盘位置X, 鼠标在调色盘位置Y, 0 3645 | ; BlockInput, Off 3646 | ; BlockInput, MouseMoveOff 3647 | } 3648 | KeyWait, 2 3649 | return 3650 | 3651 | 调色盘笔刷变大: 3652 | 旧调色盘笔刷大小:=调色盘笔刷大小 3653 | 调色盘笔刷大小:=调色盘笔刷大小+1 3654 | if (调色盘笔刷大小>2) 3655 | { 3656 | 调色盘笔刷大小:=2 3657 | } 3658 | if (调色盘笔刷大小!=旧调色盘笔刷大小) 3659 | { 3660 | 调色盘笔刷变大:=Round(323/1080*屏幕高度)+Round(20/1080*屏幕高度)*调色盘笔刷大小 3661 | 后台.点击左键(调色盘窗口ID, 调色盘笔刷变大, 调色盘按键Y) 3662 | ; CoordMode, Mouse, Screen 3663 | ; MouseGetPos, 鼠标在调色盘位置X, 鼠标在调色盘位置Y 3664 | ; BlockInput, On 3665 | ; BlockInput, MouseMove 3666 | ; MouseMove, 色轮位置X+色轮宽度W+323+20*调色盘笔刷大小, 色轮位置Y+480, 0 3667 | ; Send {LButton} 3668 | ; MouseMove, 鼠标在调色盘位置X, 鼠标在调色盘位置Y, 0 3669 | ; BlockInput, Off 3670 | ; BlockInput, MouseMoveOff 3671 | } 3672 | KeyWait, 3 3673 | return 3674 | 3675 | 切换调色盘笔刷样式: 3676 | 调色盘笔刷样式:=调色盘笔刷样式+1 3677 | if (调色盘笔刷样式>2) 3678 | { 3679 | 调色盘笔刷样式:=0 3680 | } 3681 | 切换调色盘笔刷样式:=Round(390/1080*屏幕高度)+Round(20/1080*屏幕高度)*调色盘笔刷样式 3682 | 后台.点击左键(调色盘窗口ID, 切换调色盘笔刷样式, 调色盘按键Y) 3683 | ; CoordMode, Mouse, Screen 3684 | ; MouseGetPos, 鼠标在调色盘位置X, 鼠标在调色盘位置Y 3685 | ; BlockInput, On 3686 | ; BlockInput, MouseMove 3687 | ; MouseMove, 色轮位置X+色轮宽度W+390+20*调色盘笔刷样式, 色轮位置Y+480, 0 3688 | ; Send {LButton} 3689 | ; MouseMove, 鼠标在调色盘位置X, 鼠标在调色盘位置Y, 0 3690 | ; BlockInput, Off 3691 | ; BlockInput, MouseMoveOff 3692 | KeyWait, 4 3693 | return 3694 | 3695 | !a:: 3696 | if (色轮=0) 3697 | { 3698 | Send {Ctrl Down} 3699 | Send {Shift Down} 3700 | Sleep 50 3701 | Send {Tab Down} 3702 | Sleep 50 3703 | Send {Tab Up} 3704 | Send {Shift Up} 3705 | Send {Ctrl Up} 3706 | KeyWait, a 3707 | } 3708 | else 3709 | { 3710 | Send {Alt Down} 3711 | Sleep 50 3712 | Send {a Down} 3713 | Sleep 50 3714 | Send {a Up} 3715 | Send {Alt Up} 3716 | KeyWait, a 3717 | } 3718 | return 3719 | 3720 | !d:: 3721 | if (色轮=0) 3722 | { 3723 | Send {Ctrl Down} 3724 | Sleep 50 3725 | Send {Tab Down} 3726 | Sleep 50 3727 | Send {Tab Up} 3728 | Send {Ctrl Up} 3729 | KeyWait, d 3730 | } 3731 | else 3732 | { 3733 | Send {Alt Down} 3734 | Sleep 50 3735 | Send {d Down} 3736 | Sleep 50 3737 | Send {d Up} 3738 | Send {Alt Up} 3739 | KeyWait, d 3740 | } 3741 | return -------------------------------------------------------------------------------- /隐藏工具栏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/隐藏工具栏.png -------------------------------------------------------------------------------- /隐藏菜单.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Furtory/HighEfficiencyColorWheelForCSPv2/2da353605bfc765a3bf79986f8cc16ab95a4c518/隐藏菜单.png --------------------------------------------------------------------------------