aardio 调用 AHK 实现超极热键

By 圣地 at 2021-12-12 • 0人收藏 • 570人看过
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 来触发同一个函数。


登录后方可回帖

登 录
信息栏
公告:
个人博客
专注分享
谢谢合作!

本站域名:HtmLayout.Cn
aardio可以快速开发上位机,本站主要记录了学习过程中遇到的问题和解决办法及aardio代码分享

这里主要专注于aardio学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.

Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
本 站 主 站:Stm32cube中文网
Sciter中文在线文档Sciter在线学习文档
空间赞助:才仁机械
打赏本站
Loading...