//系统热键
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();