AutoHotkey编写自己的Warkey
2010-10-05 17:52
204 查看
AutoHotkey编写自己的Warkey
zyl0462的空间
Just Do It!!
http://hi.baidu.com/zyl0462/blog/item/47fae38e4c1146e4f01f3612.html
2009年11月27日 星期五 12:07
zyl0462的空间
Just Do It!!
http://hi.baidu.com/zyl0462/blog/item/47fae38e4c1146e4f01f3612.html
2009年11月27日 星期五 12:07
认识和学习AutoHotkey还是因为Dota(改键)。Dota?有些人可能还不知道,没关系,知道是个游戏就照了,不过很好玩,推荐玩下,上瘾别怨我。照,继续讲,AutoHotkey能做什么呢?能做的太多了,有兴趣自己体会。下面谈谈用它如何制作Warkey,需要有点AutoHotkey基础,版权归AutoHotkey以及为之贡献的人所有,由本人理解拼凑。 显血就不说了,1.22之后版本可以勾选是否始终显血。主要就说下改键吧。先说不要GUI的,最直接的一种方法:q::Numpad7(小键盘7),按q就是Numpad7了,很神奇吧,不过这就影响聊天啦,在AutoHotkey中在热键前加~原来键的功能不会被屏蔽,比如说~q::Numpad7,就会发送q7。所以我们这样改下, ~q:: Send, {Numpad7}{BS} return 这样就不影响聊天而且能达到改键的目的,程序起始处加上#SingleInstance force(只运行一次程序),#IfWinActive, ahk_class Warcraft III(仅当war3为活动窗体热键有效)。然后根据自己的习惯,就可以制作个人的Warkey了。 再说下有GUI的,下面的是个单独的程序,就是没有标准INI文件存储用户输入信息,贴下程序代码: #SingleInstance force #NoEnv #IfWinActive, ahk_class Warcraft III SendMode Input SetMouseDelay, -1,-1 SetKeyDelay, -1,-1 Gosub, D_Window ;进入主界面子程序 Gosub, D_Tray ;进入托盘子程序 ;以下为显血部分; Loop { IfWinActive, Warcraft III ahk_class Warcraft III { If (m_bIn == 0) { If (AllyHB == 1) { Send, {tab} Sleep 200 Send, {[ Down} } If (EnemyHB == 1) { Send, {tab} Sleep 200 Send, {] Down} } m_bIn := 1 } } Else { If (m_bIn == 1) m_bIn := 0 } Sleep 200 } ;============================; D_Window: ;主界面 { Menu, SetMenu, Add, 保存设置 (&S), D_Define Menu, SetMenu, Add Menu, SetMenu, Add, 退出程序 (&X), D_AppExit Menu, HelpMenu, Add, 关于 (&A), D_HelpAbout Menu, MyMenu, Add, 程序设置 (&D), :SetMenu Menu, MyMenu, Add, 帮助 (&H), :HelpMenu Gui, Menu, MyMenu Gui, Add, GroupBox, x16 y7 w180 h130 , 物品栏 Gui, Add, GroupBox, x16 y147 w180 h50 , 血条栏 Gui, Add, Text, x26 y32 w90 h30 , 物品栏1: Gui, Add, Text, x26 y92 w90 h30 , 物品栏2: Gui, Add, CheckBox, Checked x26 y167 w80 h20 vAllyHB, 友方血条 Gui, Add, CheckBox, Checked x106 y167 w80 h20 vEnemyHB, 敌方血条 Gui, Add, Hotkey, x86 y27 w90 h20 vItem7, Q Gui, Add, Hotkey, x86 y87 w90 h20 vItem8, ~ Gui, Show, x301 y147 h233 w217, MicrOperation Gosub, D_Define ;进入定义子程序 Return } ;============================; D_Tray: { Menu, Tray, NoStandard Menu, Tray, Add, 设置 Menu, Tray, Add, 退出 Menu, Tray, Default, 设置 Menu, Tray, Click, 1 Menu, Tray, Tip, MicrOperation Menu, Tray, Icon, , , 1 Return } ;============================; D_Define: { ;下面两句是为了取消先前定义的热键,要是没有后果很严重,很多键乱了套。当然只定义一次是没问题的,要是定义后再改就会出现问题。 if Item7 HotKey, ~%Item7%, D_Item7,Off if Item8 HotKey, ~%Item8%, D_Item8,Off Gui, Submit ;托盘程序,并使用户输入信息与相关变量关联 if Item7 HotKey, ~%Item7%, D_Item7,On if Item8 HotKey, ~%Item8%, D_Item8,On Return } ;============================; D_Item7: { Send, {Numpad7}{BS} ;这里出现一个退格键足矣,相信不会有人定义组合键的,dota讲的是速度和操作,按键越简单越好 return } ;============================; D_Item8: { Send, {Numpad8}{BS} return } ;================================; 设置: { Gui, Show, , MicrOperation Return } ;============================; D_HelpAbout: { Msgbox , 0, MicrOperation,AutoHotkey版权所有 Return } ;============================; D_AppExit: GuiClose: 退出: { ExitApp ;退出程序 Return } GuiSize: { If (A_EventInfo==1) ;这里只是针对窗口最小化事件处理,就是将程序托盘并关联变量 Gosub, D_Define } ;============================; LWin:: ;屏蔽左Windows键 Return |
相关文章推荐
- [软件推荐]AutoHotKey-更加快速的操作,使用自己编写脚本让你的鼠标休息下
- 如何用VB编写自己的DLL文件,并调用其中的函数
- C语言中的清屏函数(自己编写)
- 一步一步编写自己的Web MVC框架——web项目的建立和基本架构的确认
- 自己编写类似于枚举的类型(多例模式)
- 在java里面怎么定义异常类用于自己编写的类的异常处理?
- 一步一步制作yaffs/yaffs2根文件系统(八)---总结及怎么样使系统自动启动自己编写的程序
- 2014-1-19_自己动手写中文分词并编写solr接口
- 自己编写的string库函数
- MFC编写自己的对话框类
- 自己编写游戏-----android数独游戏下载
- 3.第三单元任务二实训:使用作业提交系统提交Java作业时 ,需要输入Java源代码文件名和自己的邮箱,提交前对Java文件名以及邮箱进行有效检查。编写程序实现对输入的Java源文件名以及邮箱有效性的
- 调用自己编写的matlab函数
- CMS采集上载助手(自己编写的内容采集上载软件)
- 自己编写Nagios 监控Mysql插件
- 从零开始编写自己的C#框架——框架学习补充说明
- 如何在Blackfin上已移植的uClinux系统中添加自己编写的程序
- 自己动手编写一个VS插件(三)——创建工具栏之一
- 从零开始编写自己的C#框架(11)——创建解决方案