如何使自己的程序只能运行一次? (即不能同时运行两个,象Flash Get)(100分)

  • 主题发起人 主题发起人 kasd
  • 开始时间 开始时间
K

kasd

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:
如何使自己的程序只能运行一次? (即不能同时运行两个,象Flash Get)
 
只运行一次,运行后删除自己。开个玩笑。
你查一下以前回答过多次了。
 
这个问题都被问烂了。
var
; hmutex:hwnd;
; ret:integer;
begin
; Application.Initialize;
; hmutex:=createmutex(nil,false,'project1');
; ret:=getlasterror;
; if ret<>error_already_exists then
; begin
; Application.CreateForm(TForm1, Form1);
; end
; else
; begin
; messagedlg('程序已运行。',mtinformation,[mbok],0);
; releasemutex(hmutex);
; end;
 
在主窗口的Public部分加入
; ; procedure CreateParams(var Params : TCreateParams);Override;

在实现部分
procedure TMainForm.CreateParams(var Params : TCreateParams);
begin
; inherited CreateParams(params);
; Params.WinClassName := 'MYWNDNAME';//任意给个名字
end;


在工程文件里uses部分加入 windows;

在begin之后加入
; if FindWindow('MYWNDNAME',nil) > 0 then exit;
 
谢谢相助!
 
后退
顶部