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 格式