【第五章5.2】快捷键 -- 系统热键

贴主:admin 发贴:2024-07-28 17:32 浏量:22
//系统热键
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;

运行效果:

相关回复


    暂无评论!

发表回复