有的时候做的程序需要只能打开一个,如何实现呢?

1.打开当前窗体设计界面

2.从工具箱里面找到原子窗体

点击原子窗体,就会自动生成对应的代码。

这样,就搞定了。

示例代码:


import win.ui;
import win.ui.atom;
/*DSG{{*/
var winform = ..win.form( right=599;text="原子窗体";bottom=399 )
winform.add( )
/*}}*/

var atom,hwnd = winform.atom("请在这里输入唯一标识字符串,建议使用[工具->GUID]生成器生成");
if(!atom){
/*为窗口设置原子值可以避免一个程序重复运行多个实例*/
win.quitMessage();
return;
}

winform.show( true )
win.loopMessage();

所谓【原子窗体】,就是他具有唯一性,如果相同原子标识的窗体已经运行,后面的就会自动退出。

当然进程唯一运行的法很多,可以用 process.mutex 创建互斥体,或者用 fsys.mmap 创建共享内存,标准库里其实很多好东西。