aardio 文档
aardio 范例: 限制同一个窗口程序仅运行单个实例
/*
//用原子窗体禁止重复启用的前提条件是主窗体先启动,并保持显示。
//如果首先会弹出登录欢迎窗口,可先用进程互斥体判断是否有相同的实例。
import process.mutex;
var mutex = process.mutex("互斥体.唯一标识")
if( mutex.conflict ){
return mainForm.atom("请在这里输入唯一标识字符串");;
}
//如果直接显示主窗口,上面的代码可以省略。
*/
import win.ui;
import win.ui.atom;
/*DSG{{*/
mainForm = win.form(text="限制同一个窗口程序仅运行单个实例";)
mainForm.add()
/*}}*/
/*
为窗口设置原子值可以避免一个程序重复运行多个实例。
建议使用 [aardio 工具 » GUID 生成器]创建 GUID 字符串作为 mainForm.atom 的参数。
如果成功则返回值 atom 为有效原子 ID,失败则 atom 为 0。
如果失败则返回值 hwnd 为已经创建相同原子的冲突窗口句柄。
*/
var atom,hwnd = mainForm.atom("请在这里输入唯一标识字符串");
if(!atom){
//mainForm.atom 会自动前置冲突的窗口。
//已经运行多个实例,退出当前程序。
win.quitMessage();
return;
}
mainForm.show();
return win.loopMessage();
Markdown 格式