如何禁止程序的二次运行?(50分)

  • 主题发起人 主题发起人 johnnywong
  • 开始时间 开始时间
[blue]又有一个新的问题:用svw0506的方法程序二次运行的问题,解决了,而且效果也还可以,
可是现在又有一个新问题,我在我的程序初始化,之前做了一个“飞溅屏”,如果程序
被二次运行,那因为我的“飞溅屏”是在formcreate之前创建的,所以它老是先跑出来
请问怎么解决,看一下,金山词霸,它好像就没有这种问题,不知道是怎么做的[/blue]
 
把svw0506的代码搬到*.dpr里面就可以了
 
干嘛不用原子变量?
这些问题讨论过很多次了,干嘛不SEARCH一下?
 
使用互斥对象是最好的方法,
或者可以使用内存映射文件。
反正命名对象都可以
 
我一直使用下代码,很正常也很好。
procedure TfrmMain.FormCreate(Sender: TObject);
var
hMapping: HWND;
begin
hMapping := CreateFileMapping(HWND($FFFFFFFF), nil,
PAGE_READONLY, 0, 32, 'project');
if (hMapping <> NULL) and (GetLastError <> 0) then
if not (csDesigning in ComponentState) then
halt;
end;
 
to 一个过客,请多多你指教了,具体因该怎么实现呢
 
后退
顶部