【第五章5.2】快捷键 -- 系统热键
//系统热键 import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469;parent=...) winform.add( button={cls="button";text="设置为系统热键";left=281;top=32;right=517;bottom=63;z=2}; hotkey={cls="hotkey";left=49;top=35;right=268;bottom=55;edge=1;z=1}; static={cls="static";left=47;top=107;right=679;bottom=424;transparent=1;z=3} ) /*}}*/ var hkId; winform.button.oncommand = function(id,event){ //删除之前注册的热键,hkId如果是null空值,此函数可忽略不做任何操 winform.unreghotkey(hkId); //重新注册系统热键; hkId = winform.reghotkey( function(id,mod,vk){ winform.msgbox("你按了刚才设置的那个啥!") } //winform.hotkey.gethotkey()刚好返回2个值对应最后两个参数 ,winform.hotkey.gethotkey() ); /** winform.reghotkey(回调函数,控制键,虚拟键码) 此函数共有三个参数,一般直接写参数的方法如下,参数说明: mod为控制键,使用_MOD_前缀的常量表示,0为不按下控制键, vk为虚拟键码,使用_VK_前缀的常量表示,对于普通字符按键可以使用大写形式的字节码表示。 示例: hkid = winform.reghotkey(function(id,mod,vk){ },0x2/*_MOD_CONTROL*/,'D'#); 而 winform.hotkey.gethotkey() 函数刚好可以返回2个值(控制键,虚拟键码), 而这2个返回值,刚好可以作为调用 winform.reghotkey 函数的最后两个参数。 **/ } winform.static.text = "系统热键全局有效,即使切换到桌面上的其他程序窗口,热键仍然有效" winform.enableDpiScaling(); winform.show(); win.loopMessage();
热键控件位置:
注册热键代码快捷:
在界面窗口,点击左侧 功能组件 - 注册热键 会自动在代码栏里面生成代码
最后两个代码参数表示的意思:
或者使用热键控件,通过winform.hotkey.gethotkey()刚好返回2个值对应最后两个参数
上述图片代码举个例子示例:
import win.ui; /*DSG{{*/ var winform = win.form(text="aardio form";right=759;bottom=469) winform.add( button={cls="button";text="设置为系统热键";left=239;top=31;right=354;bottom=56;z=2}; hotkey={cls="hotkey";left=38;top=33;right=210;bottom=53;edge=1;z=1}; static={cls="static";text="Static";left=43;top=85;right=355;bottom=136;transparent=1;z=3} ) /*}}*/ var hkId; winform.button.oncommand = function(id,event){ winform.unreghotkey(hkId); var ctr,key1 = winform.hotkey.gethotkey(); // 返回2个值 赋值给2个变量 hkId = winform.reghotkey( function(id,mod,vk){ winform.static.text = "注册热键为:" + ctr+"+"+ key1; winform.msgbox("注册热键") } , ctr,key1 );} winform.show(); win.loopMessage(); return winform;
运行效果:
相关回复
-
暂无评论!