如何禁止程序多次运行(100)

  • 主题发起人 主题发起人 xibaixin
  • 开始时间 开始时间
X

xibaixin

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序,能多次打开,如何避免这种问题发生。就是防止程序多次加载。 用delphi7开发的。
 
program proj1;....var Mutex:THandle;begin Mutex:=CreateMutex(NIL,True,'Mutex_我的名称'); IF GetLastError=ERROR_ALREADY_EXISTS THEN//如果存在另一实例 BEGIN ReleaseMutex(Mutex); exit; END; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; ReleaseMutex(Mutex);end.
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3952390
 
program Project1;uses Forms, Windows, //加入 Unit1 in 'Unit1.pas' {Form1};Resourcestring FMutex = '{E57D036C-8FBC-42BE-81DB-9F626B229052}'; //Ctrl+shift+G 得到{$R *.res}Var hMutex: HWND;begin HMutex := CreateMutex(Nil, False, PChar(FMutex)); if GetLastError = ERROR_ALREADY_EXISTS then Begin //Application.MessageBox(PChar('正在运行...'),'系统提示',64); ReleaseMutex(hMutex); Exit; End; Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;end.
 
楼上这个方法,对于远程登录的多用户WINDOW不适用.如果希望一台电脑只运行一个实例,可以用OpenFile的方法,指定C:/某个文件. 这样,如已有程序打开,你第二次运行就打不开.
 
谢谢大家!我试了非常好。
 
后退
顶部