超级热键可通过简单编程 —— 自动化完成复杂操作,提升效率。
快速上手
本教程需要一个很小的开源软件 ImTip ( 体积 639 KB ),了解 ImTip 请点击:电脑必备:通用输入法状态提示,再也不怕按错,再也不用看右下角
请右键点开 ImTip 托盘菜单,然后点击「管理超级热键」:

然后将热键配置改为如下代码,并且勾选「启用超级热键」,再点击「保存」按钮使热键生效。
//大写金额、日期、时间 ["Ctrl $"] = function(hFocus){  	win.dlg.chineseNumber().show();};//打开调色器["Ctrl #"] = function(hFocus){  		//创建选色器	var dlg = win.ui.ctrl.pick();	dlg.show();		//置顶	win.setTopmost(dlg.hwnd,true); };
上面的配置定义了 "Ctrl $","Ctrl #" 这两个热键。中括号里是按键名字符串,等号的后面指定要输入的文本或者需要执行的函数对象。
以上热键配置将自动转换为以下 aardio 代码,然后编译执行:
//导入超级热键import key.hotkey; //创建超级热键var super回调函数,则需要添加多个热键配置。
示例:
注意超键热键中任何键名都只表示该键名所在的按键,不区分上档键。所以 ~ 键不需要同时按 Shift   ~ 。 ImTip 体积虽然小,但已自带了大量 #aardio# 库。您也可以下载 aardio ,将 aardio 目录下的 /lib/ 目录复制到 ImTip.exe 所在目录 —— 超级热键就可以使用全部的 aardio 库了。 也可以在 /lib/ 目录下新建用户库,然后通过 File){		if(lastFocus != hFocus){			lastClass = win.getClass(hFocus);			var tid,pid = win.getThreadProcessId(hFocus);			lastPath = process.getPath(pid);			lastFocus = hFocus		}			return (lastPath && io.splitpath(lastPath).file == exeFile )	}	})();//C语言、C  、C#、Java、Python、R、Javascript、Node.Js、Fortran、VB、PHP、VBScript、PowerShell、NewLISP、AutoLISP、Delphi、FreeBASIC、Ruby、Rust、Julia、Nim、Go 语言、批处理 ...... 用法请参考 aardio 自带范例。 如果您对超级热键还有任何疑问,欢迎在评论区留言,我会尽快解答。//按连续按 3 个键,每个键都要放开。["~AA"] = function(){  	};//按下Shift不放,再按2下Q。["SH微软全拼双拼切换["Ctrl P"] = function(){ 	var dpSchemes = tsfInput.getDoublePinyinSchemes(); 	tsfInput.enableoublePinyinScheme(dpSchemes.default===null); }超级热键配置范例:改键演示
["Ctrl ."] = function(hFocus){  	key.up("Ctrl"); //先把已经按下的键弹起来	key.combine("CTRL","A"); //换成别的键,具体看 aardio 库函数文档	return false; //阻止按键事件};超级热键配置范例:取消次选键
[";"] = function(hFocus){	if( winex.msCandidate.isVisible() ){		key.send(" ;") 	} 	else return true;};超级热键配置范例:按 Shift   Back 变 Ctrl   Z
["SHIFT BACK"] = function(hFocus){	key.up("SHIFT"); //先把已经按下的键弹起来	key.combine("CTRL","Z")};超级热键配置范例:斜杠“/”改为顿号
["/"] = function(hFocus){	var openState,mode = key.ime.state();//	if( !openState /*&&(mode==3) */ ) return true; 	key.sendString("、")};超级热键配置范例:调整音量
//增加音量["Ctrl F6"] = function(hFocus){	key.press("VOLUME_UP");}//降低音量["Ctrl F7"] = function(hFocus){	key.press("VOLUME_DOWN");}//切换静音["Ctrl F8"] = function(){	key.press("VOLUME_MUTE");}超级热键配置范例:依次按 ~date 输入大写的当前日期
["~date"] = function(hFocus){ 	var zh = string.chineseNumber('〇一二三四五六七八九');	key.sendString(zh.date()); //改为 zh.time() 输出大写的当前时间}; 超级热键配置范例:按大写自动切换到英文输入
["CAPSLK"]  = function(hFocus){  	key.ime.setOpenStatus(false);	key.ime.setConversionMode(0); 		return true;};超级热键配置范例:右 Shift 键切换为英文
["RSHIFT"]  = function(hFocus){  	key.ime.setOpenStatus(false);	key.ime.setConversionMode(0); };超级热键配置范例:左 SHIFT 键切换为中文
["LSHIFT"]  = function(hFocus){    	var openState,mode = key.ime.state();	if( openState && !key.ime.capital() ) return true; //当前已经是中文输入模式,不改变默认行为		key.up("SHIFT");//先放开 SHIFT 键	//如果是大写状态,切换为小写	if(key.ime.capital())    key.press("CAPSLK") 	//英文直接切中文   中文标点	key.ime.setOpenStatus(true); //打开输入法	key.ime.setConversionMode(1|0x400); //切换到中文状态,这一步不能省略		//再次尝试用键盘切换中文标点,这一步不能省略	key.combine("CTRL",".");		//现在再次检测中文标点状态	var openState,mode = key.ime.state();	if(mode!=3/*_IME_SYMBOLMODE_SYMBOL*/){		//说明切换到了英文标点,再切换回去		key.combine("CTRL",".")	}  };超级热键配置范例:按 Ctrl   . 切换到中文输入   中文标点   小写
["Ctrl ."]  = function(hFocus){    	var openState,mode = key.ime.state();	if( openState && !key.ime.capital() ) return true; //当前已经是中文输入模式,不改变默认行为		key.up("Ctrl");//先放开 Ctrl 键	//如果是大写状态,切换为小写	if(key.ime.capital())    key.press("CAPSLK") 	//英文直接切中文   中文标点	key.ime.setOpenStatus(true); //打开输入法	key.ime.setConversionMode(1|0x400); //切换到中文状态,这一步不能省略		//再次尝试用键盘切换中文标点,这一步不能省略	key.combine("CTRL",".");		//现在再次检测中文标点状态	var openState,mode = key.ime.state();	if(mode!=3/*_IME_SYMBOLMODE_SYMBOL*/){		//说明切换到了英文标点,再切换回去		key.combine("CTRL",".")	}  };超级热键配置范例:输入法纠错,已输出英文自动转为中文输入
["Ctrl ,"]  = function(hFocus){    	var openState,mode = key.ime.state();	if( openState && !key.ime.capital() ) return true; //当前已经是中文输入模式,不改变默认行为		key.up("Ctrl");//先放开 Ctrl 键	//如果是大写状态,切换为小写	if(key.ime.capital())    key.press("CAPSLK") 	//英文直接切中文   中文标点	key.ime.setOpenStatus(true); //打开输入法	key.ime.setConversionMode(1|0x400); //切换到中文状态,这一步不能省略		//再次尝试用键盘切换中文标点,这一步不能省略	key.combine("CTRL",".");		//现在再次检测中文标点状态	var openState,mode = key.ime.state();	if(mode!=3/*_IME_SYMBOLMODE_SYMBOL*/){		//说明切换到了英文标点,再切换回去		key.combine("CTRL",".")	}  		//通过返回函数异步执行耗时操作(避免系统删除热键钩子)	return function(){ 		key.combine("SHIFT","HOME");//选中当前行 		key.combine("CTRL","C");//复制当前行				var line = win.clip.read(); //读取剪贴板文本		var str = string.match(line,"[a-zA-Z] $"); //查找尾部连续字母		key.press("RIGHT");//按右方向键,取消选区				//如果MicrosoftInputMethodSettingsCHS");	Request(0x4090409)	key.ime.changeRequest(0x8040804)};超级热键配置范例:切换鼠标左右键
["Ctrl SHIFT RIGHT"] = function(hFocus){  	::User32.SwapMouseButton(!::User32.GetSystemMetrics(23));}超级热键配置范例:微软五笔叠字键
["`"]  = function(hFocus){  	var openState,mode = key.ime.state();//用法请查看 aardio 文档	if(!openState 			||  mode !=3 || key.getState("Shift")  			|| key.getState("Ctrl")  			|| key.getState("CAPSLK")  ) {			return true; //允许此按键继续发送	}		key.combine("SHIFT","LEFT"); //向后选一个字	key.combine("CTRL","C"); //复制	key.press("RIGHT"); //取消选中	key.combine("CTRL","V"); //粘贴};实现更多功能 ……









