来源:远方网络 | 2005-12-29 14:42:50 | (有2673人读过)
方法一: var hMutex:hwnd; ret:integer; begin Application.Initialize; hmutex:=createMutex(nil,false,'project1'); ret:=getlasterror; if ret<>error_already_exists then begin Application.CreateForm(TMainFrm, MainFrm); Application.Run; end else begin Application.MessageBox('程序已经运行,请不要运行两次','程序不能运行',MB_OK or MB_ICONERROR); end; releasemutex(hmutex); end. 方法二: 你可以用消息机制! 还有,为了怕程序重复启动,也不需要这样的麻烦! 就在主窗体creat时,写上以下代码: var str : string; HForm : Hwnd; begin str := 'FormName '//这里不是FormName,而是主窗体的名,自己输入了! HForm := FindWindow(nil,Pchar(str)); if HForm > 0 then Application.Terminate; ... end;
|