放飞双手,高效开发:自定义我的键盘动作(猫老师脚本)
本帖最后由 不死猫 于 2013-5-13 13:13 编辑在我的lisp视频教学里面,很多人会看见我敲代码效率很高,尤其是敲括号、复制、粘贴、换行和调试等动作,到底是如何实现的呢?
今天猫老师为大家讲解一下国内外两款键盘动作一键执行的工具。通过工具的使用,不仅仅可以提高你的开发效率,在日常重复性工作中,也能为你解决大量的重复劳动难题。
先说我在Lisp开发中使用的这款软件Autohotkey。因为是免费的,所以绿色环保。
打开AutoHotkey.exe你会看见系统右下角有个绿色的图标,鼠标右键调出菜单【编辑脚本】
贴上我的脚本:
$F1:: Sendinput ^s
!F1:: Send ^s!1
$F2:: Send ^c
$F3:: Send ^v
$F4:: Send ^x
$F5:: Send ^+]^+]
$!esc:: send !{F4}
!F5:: send ^+]^+]^j
!LButton:: send {LButton}!]!]
$F7:: Sendinput ^{F4}
$F8:: Sendinput ^{space}
$F11:: Sendinput {(}getpoint {)}{Left}
!n:: Sendinput nonsmall
!/::Sendinput /
!.:: Sendinput .
!,:: Send {,}
!':: Sendinput {'}
!;:: Send {;}
!^;:: Send {:}
$,:: Sendinput {BS}
$;:: Sendinput (){Left}
$+;:: Sendinput {End}{Enter}
$+':: Sendinput {Enter}{Enter}{Up}{Tab}
$':: Sendinput _
$.:: Sendinput {Left}
$/:: Sendinput {Right}
$`:: Sendinput "{Left}"
其中 ^ 是 ctrl,!是alt , +是shift
$表示原按键,其他的可以看下帮助 已经汉化了主要的部分。
那么我们常用的:
分号-自动写一对()并把光标移动到括号内
F1-保存
F2-复制
F3-粘贴
F4-剪切
F8-切换输入法
F11-调试点变量
alt+esc - 关闭
alt+F1 - 保存并发送到CAD(这个可以自行修改,编辑器不同快捷键不一样)
, -backspace
. -键盘左
/键盘右
:(if)变成:
(if
_
)
需要原来的按键加alt,可能很多人不习惯,其他的大家可以自己看一下,不需要的删掉就可以了。
然后保存文件后【重新调用脚本】即可
----------------------------------------------------------------
如果你觉得编写脚本比较麻烦,或者想实现判断屏幕颜色等于红色时 自动打开某个程序之类的动作。
那就推荐使用【按键精灵】
按键精灵是一个模拟鼠标键盘动作的软件。可以让按键精灵代替双手,自动执行一系列鼠标键盘动作。按键精灵简单易用,不需要任何编程知识就可以作出功能强大的脚本。只要在电脑前用双手可以完成的动作,按键精灵都可以替代完成。
我曾经做过一段关于内网-外网数据交换的工作,要求必须导入导出再使用U盘拷贝处理,一天的工作,只需2小时完成,而且,基本都是自动判断完成的!
你可以控制鼠标移动到哪里,点击几次,输入文字,读取文字,判断文字,判断颜色,自动敲击键盘。。。。。
关键是不需要太多的编程知识即可实现,因为它能够录制动作回放。
还能够把录制的动作单独做成一个exe文件,这样我们在程序里就能调用了。
脚本写错了,默认F12停止。记得多插入延迟执行,不然电脑反应不过来,按键就过去了。
教程网上很多,软件是需要注册的,PJ版大家自己找下吧,有些杀毒会报警,附件也比较大就不上传了。
比较常用的是我写好lisp,然后用按键精灵加载执行,执行完程序再借助sendkeys调用按键精灵,保存图纸关闭再开新图。
对老版本CAD缺失字体的处理、代理图元那些东西通过颜色判断就可以自动点掉,批打印之类的时候还挺方便的。
另外批量处理EXCEL、批量处理模型都可以用这个来实现。
十年啦,来晚了 F1-保存
F2-复制
F3-粘贴
F4-剪切 这些键会占用CAD的快捷键哦
如果一定要用最好加个判别条件RegexMatch。
按键精灵确实有点逆天,具有识色甚至识字的能力,确实可以给制图增加很多便捷。
我的AHK基本跟CAD无关,唯独有一个还用得很少,鼠标中键双击为取消的快捷键。
分享下:;中键达到后退的效果
$MButton::
MouseGetPos, CoordX, CoordY
SetTitleMatchMode, Regex
WinGetClass,sClass,A
WinGet, Status_minmax ,MinMax,A
if (sClass="TFcFormMain" or sClass="TTOTAL_CMD" or sClass="ExploreWClass" )
Send, {BS}
else if (sClass="CabinetWClass" || sClass="#32770")
Send, !{up}
;搜索资源管理器
else if (RegexMatch(sClass,"Afx:00400000:8:000100") && A_TimeSincePriorHotkey < 300 && A_PriorHotkey = "~$MButton UP" && (CoordX - CoordXRec) ** 2 + (CoordY - CoordYRec) ** 2 < 10)
{
send,{esc}
}
else if (Status_minmax=1 && A_TimeSincePriorHotkey < 300 && A_PriorHotkey = "~$MButton UP" && (CoordX - CoordXRec) ** 2 + (CoordY - CoordYRec) ** 2 < 10)
{
WinRestore ,A
;Status_minmax=1 窗口最大化了,还原.
}
else if (Status_minmax=0 && A_TimeSincePriorHotkey < 300 && A_PriorHotkey = "~$MButton UP" && (CoordX - CoordXRec) ** 2 + (CoordY - CoordYRec) ** 2 < 10)
{
WinMaximize ,A
;Status_minmax=0 窗口还原了,最大化.
}
else
SendInput, {MButton Down}
CoordXRec := CoordX, CoordYRec := CoordY
return
~$MButton UP::return 强大到膜拜的地步 能坐上猫老师的板凳啊,强力顶!!!!
我可是买了猫老师的教程的!!! 猫老师,到底是做啥职业的?这么强! 有同感,我也怕麻烦,买了个游戏键盘来编宏使用 神仙一样的猫老师 按键精灵的确很好用,功能也很强大 高手的贴顶起猫老师就是强大啊 这对我来说,很有用,学习了。