;~ 作者: Fonny ;~ Email: 8109875@qq.com ;~ Update: 2015-1-19 ;~ 功能: ;~ 提取鼠标指向点的颜色,热键复制到剪贴板,粘贴到AHK脚本可直接测试. ;~ 多级降速移动鼠标,跟随一个tooltip提示框显示当前指向的顶级窗口,坐标,以及颜色值等数据. #NoEnv #Warn ;~ #NoTrayIcon #SingleInstance, Force SetWorkingDir, %A_ScriptDir% SetBatchLines, -1 CoordMode, Pixel, Screen SetTimer, update , 250 return ;~ 移动一像素 ^Left:: MS_Move("left") return ^Right:: MS_Move("right") return ^Up:: MS_Move("up") return ^Down:: MS_Move("down") return ;~ 移动十像素 ^+Left:: MS_Move("left",10) return ^+Right:: MS_Move("right",10) return ^+Up:: MS_Move("up",10) return ^+Down:: MS_Move("down",10) return ;~ 移动100像素 ^+!Left:: MS_Move("left",100) return ^+!Right:: MS_Move("right",100) return ^+!Up:: MS_Move("up",100) return ^+!Down:: MS_Move("down",100) return #F12:: ExitApp return #F5:: Reload return MS_Move(drt,speed = 1) { global msX, msY MouseGetPos, msX, msY if (drt = "left") { msX -= %speed% } else if (drt = "right") { msX += %speed% } else if (drt = "up") { msY -= %speed% } else if (drt = "down") { msY += %speed% } MouseMove , msX, msY return } ;~ Ctrl + Alt + 鼠标左键 = 取色到剪贴板 ^!LButton:: !F1:: saveColor: SetTimer, update, off ToolTip clipBackup := ClipboardAll Clipboard := "" cStr := "CoordMode, Mouse, Client" . "`nCoordMode, Pixel, Client" . "`n_winTitleStr `:`= #c" winTitleStr "#c" . "`n_winClassStr `:`= #cahk_class " winClassStr "#c" . "`n_winTitle `:`= _winTitleStr A_Space _winClassStr" . "`nWinActivate, `%_winTitle`%" . "`n`;`~ Color:`n_cor `:`= #c" colorVar "#c" . "`n`;`~ Clien:`n_corX `:`= " mcX "`, _corY `:`= " mcY . "`n`;`~ Screen:`n`;`~ _corX `:`= " msX "`, _corY `:`= " msY . "`n`;`~ Window:`n`;`~ _corX `:`= " mwX "`, _corY `:`= " mwY . "`nPixelGetColor, _corCur, `%_corX`%, `%_corY`%" ;~ . "`nTrace`(_corCur`, 2`)" . "`nMsgBox, `% _corCur" StringReplace, cStr, cStr, #c, ", All Clipboard := cStr ClipWait, 2 if ErrorLevel { Clipboard := clipBackup trace("取色失败", 1, "屏幕取色器") return } clipboard := clipboard if Trace("颜色成功保存到剪贴板!`n是否退出取色器`?" . "`n`n点击确定:`n将还原剪贴板数据,`n请确认您查找的信息已经保存!" . "`n`n单击取消:`n继续查找信息,`n本次的信息将丢失!" ,2, "退出屏幕取色器?") { Clipboard := clipBackup ClipWait, 2 if ErrorLevel { trace("还原剪贴板数据失败!`n`n请联系Fonny,谢谢!`nEmail`:8109875@qq.com",1,"还原剪贴板数据失败!") } ExitApp } ;~ trace(colorVar,2) SetTimer, update, 250 return update: WinGetActiveTitle, winTitleStr WinGetClass, winClassStr, A CoordMode, Mouse, Screen MouseGetPos, msX, msY CoordMode, Mouse, Window MouseGetPos, mwX, mwY CoordMode, Mouse, Client MouseGetPos, mcX, mcY PixelGetColor, colorVar, %msX%, %msY% ToolTip, % "winTitleStr: " winTitleStr . "`nWinClass: ahk_class " winClassStr . "`nColor: `t " colorVar . "`nClien: `t " mcX "`, " mcY . "`nScreen:`t " msX "`, " msY . "`nWindow: " mwX "`, " mwY . "`n`nHotKey:" . "`nCtrl `+ 方向键:`t`t`t1像素进步移动鼠标光标" . "`nCtrl `+ Shift `+ 方向键:`t`t10像素进步移动鼠标光标" . "`nCtrl `+ Shift `+ Alt `+ 方向键:`t100像素进步移动鼠标光标" . "`nAlt `+ F1:`t保存窗口标题,鼠标下的颜色以及坐标数据到剪贴板" . "`nWin `+ F5:`t重启取色器" . "`nWin `+ F12:`t退出取色器" return