aardio 调用 AHK 实现超极热键

By 圣地 at 2021-12-12 • 0人收藏 • 1365人看过
import win.ui;
/*DSG{{*/
var winform = win.form(text="嵌入autohotkey演示";right=599;bottom=399)
winform.add()
/*}}*/
import ahk; 
var code =`
#Persistent ;保持ahk线程不退出
#NoTrayIcon ;不显示托盘图标
#include <aardio>  ;启动ahk代码中必须加入这句才能与aardio交互
;LWin:: msgbox, 我屏蔽国 Win 键
#E:: msgbox, 我屏蔽了WIN+E
`
//直接定义允许AHK调用的aardio函数(函数名以on开头)
var script = ""
for(i=1;9;1){
	ahk["onFunc"++i] = function(){
		winform.msgbox(i)
	}
	script += "#" ++ i + "::" ++ "aardio.onFunc" ++ i ++ "()"+ '\n'
}
code += script
//运行ahk代码
ahk.run( code );
winform.show();
win.loopMessage();

以前接触过AHK,习惯了它的按键方式,再使用(key.hotkey)超极热键感觉不习惯

比如定义按键后调用也必须按定义时顺序 来按下,

幸好 aardio 支持调用众多种其它编程语言,其中就有 AutoHotkey

上面代码演示了在ahk定义热键来调用 aardio中定义的函数。是不是很好玩~~~

 

image.png

1 个回复 | 最后更新于 2021-12-13
2021-12-13   #1

多谢指导,主要是不熟悉,如果键盘钩子方式能保证稳定运行,超极热键这也是一个不错的定义热键方法比 RegisterHotKey 强一些(但 RegisterHotKey也最稳定) 。

刚又学习了下超极热键,简单总结了下使用规则。


ahk快捷键和aardio超极热键的规则: 


1、以 Win+E 为例 

  AHK 可以在按下 Win+E 时触发自己定义功能,同时屏蔽系统 Win+E 功能

  aardio 也可以在按下 Win+E 时触发,同时屏蔽系统Win+D功能,既Win+其它键 AHK 和 aardio 都可以屏蔽系统定义的相同热键。

  但 AHK 还可以在 WIN 按下保持不动时一直来回按 E 多次触发,aardio 则不可以只能先按WIN再按 E 触发, 两个修饰键 + 一个字母键也是一样。



2、以 Win 为例

  AHK 可以直接用 LWIN:: msgbox,123 来定义单独一个WIN的热键,且会屏蔽系统WIN键打开开始菜单的功能

  aardio 也可以用 LWIN 或 WIN 定义单独一个 WIN 的热键调用,但其不会屏蔽系统 WIN 键功能。


 

3、以同时定义 WIN 热键和 WIN+E 热键为例

  AHK: LWin:: msgbox, 我屏蔽国 Win 键

       #E:: msgbox, 我屏蔽了WIN+E

       这会屏蔽系统 Win 打开开始菜单功能,但这样只会 WIN 定义热键有效,WIN+E 或其它和 WIN组合热键都会无效。


  aardio: 

      同样则 WIN 热键和 Win+E 热键都会有效,系统本身 Win打开开始菜单功能也会有效。

      这里可以用 AHK 定义一个 LWIN::return  , 然后用 aardio 定义 WIN 和 Win+E 等,则既可以屏蔽系统 Win功能也或以使这两键都可用。

      还有一个方法用组策略可以屏蔽系统 Win的功能。



4、以 Ctrl+Win+E 为例

  AHK 可以按下Ctrl+Win+E 来触发,也可以按下 Win+Ctrl+E 来触发,也就是除了字母键外其它的修饰键可以互换顺序

  aardio 定义了 Ctrl+Win+E 则只能按定义顺序来触发,不过也再定义一个 Win+Ctrl+E 来触发同一个函数。


登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...