有的时候,我们不是希望我们的程序只能启动一个实例,而是希望在这一次的Windows运行当中,只能运行程序一次,必须重新启动Windows之后,才能运行我们的程序,那么我们该怎么做?答案是利用全局原子:
procedure TForm1.FormShow(Sender: TObject);
var
atom: Integer;
begin
if GlobalFindAtom('a random string here') = 0 then
atom := GlobalAddAtom('a random string here')
else
begin
ShowMessage('This application will run once a windows-session' + #13 +
'Restart Your computer to use this app');
Close;
end;
end;