作者VElysian (家瑀 致中和)
看板EzHotKey
标题Re: [AHK-] 设定热键的变数
时间Tue Aug 19 19:04:08 2008
※ 引述《n0tme (who did this?)》之铭言:
: 一般的热键启动是
: $F12::
: 有没有能让使用者指定热键的办法?
: 用以下的方法会错误
: hotkey= F12
: $%hotkey%::
──────────────────────────────
程式码区块及档名:
AutoHotKey.ahk : 所要修改的 AutoHotKey 档案名称。
#W:: …… return: 执行特定动作的程式码
#Q:: …… return: 修改快速建设定的程式码
变数:
oringinKey : 原来的快速键名称 (例如 #W)
myKey : 使用者输入的快速键名称 (例如 E)
modifiedKey : 将 myKey 转成快速键 (例如 #E)
content : AutoHotKey.ahk 的内容
流程:
1. 用 FileRead 读取 AutoHotKey.ahk 档案内容,放进 content 变数。
2. 让使用者输入要变更的快速键名称(例如 E),放进 myKey 变数。
3. 将 myKey 变数做处理後放进 modifiedKey (例如 #E)。
(这样是为了避免修改到其他程式码,并为了以後维护而设定。)
4. 在 content 变数中搜寻 oringinKey 并取代成 modifiedKey。
5. 将 AutoHotKey.ahk 删除。
6. 建立新的 AutoHotKey.ahk,并且将 content 内容写入。
7. 显示「工作完成」字样。
8. 让正在执行的 AutoHotKey.ahk 重新载入。
──────────────────────────────
程式码如下:
originKey = #W
;设定 originalKey 的初值。
#W:: ; Win + W 会开始执行下面指令。
MsgBox , 我是要执行的程式。
return ; Win + W 结束。
#Q::
FileRead , content,AutoHotKey.ahk
;将 AutoHotKey.ahk 内容复制到 content
InputBox , myKey,,目前是
%originKey%,要更改快速键为?,,,,,,,,
%myKey%
;让使用者输入文字,内容会存进 myKey 变数。
modifiedKey =
#%myKey% ; myKey前面加上 # 丢进modifiedKey
StringReplace , content,
content,
%originKey% ,
%modifiedKey% , All
FileDelete , AutoHotKey.ahk
;删除 AutoHotKey.ahk。
FileAppend , %content% , AutoHotKey.ahk
;将content写入新的AutoHotKey.ahk
MsgBox , 工作完成。
;显示「工作完成。」
Reload ;重新载入 AutoHotKey。
return
──────────────────────────────
说明:
FileRead , 存放变数,
档案名称及路径
将特定档案的所有内容放进指定变数中。
若没有指定路径,则预设是这个正在执行的 .ahk 档的位置。
http://www.autohotkey.com/docs/commands/FileRead.htm
StringReplace , 存放变数,
被搜寻变数,
搜寻字串,
取代字串,
取代全部?
用
搜寻字串搜寻
被搜寻变数,并用
取代字串取代;
完成之後将所有内容放进
存放变数中。
取代全部? :
没写: 只取代第一个找到的字串。
1、A、All: 取代全部找到的字串。
http://www.autohotkey.com/docs/commands/StringReplace.htm
FileDelete , 档案名称及路径
删除特定档案。
若没有指定路径,则预设是这个正在执行的 .ahk 档的位置。
http://www.autohotkey.com/docs/commands/FileDelete.htm
FileAppend , 文字,
档案名称及路径
将指定文字加在指定档案的尾端。如果档案不存在则会建立新档。
若没有指定路径,则预设是这个正在执行的 .ahk 档的位置。
http://www.autohotkey.com/docs/commands/FileAppend.htm
InputBox , 存放变数,
标题,
显示文字, *密码符号
, 宽, 高, X 座标, Y 座标, 字型, 显示时间
,
输入栏预设文字
将使用者输入的文字放进
存放变数中。
http://www.autohotkey.com/docs/commands/InputBox.htm
──────────────────────────────
写完了,希望对你有帮助。 ^_^
--
战略高手 游戏, 数位, 程设 [jzs/lostname
DigitalWare 软体 Σ软体 应用 技巧 [lostname]
EzHotKey 软体 ◎简化复杂工作的快速键软体 VElysian
EzHotKey 主要讨论一种可以把复杂的滑鼠键盘动作变成简单的快速键的软体。
例如:
重复的剪下贴上,或是将滑鼠调整音量的动作简化成只按 +/- 键。
包括:
AutoHotKey、AutoIt、EZScript、VBScript、Windows 批次档。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.108.14
※ 编辑: VElysian 来自: 61.62.108.14 (08/19 19:13)
※ 编辑: VElysian 来自: 61.62.108.14 (08/19 19:14)
※ 编辑: VElysian 来自: 61.62.108.14 (08/19 20:23)
※ 编辑: VElysian 来自: 61.62.108.14 (08/19 21:40)