W
wzdcli
Unregistered / Unconfirmed
GUEST, unregistred user!
想防止程序重复运行,我在SPLASH(form5.pas)窗体中加入下面代码运行成功。我想在第二次启动程序时能将已经运行的程序恢复到桌面最前,于是加入了application.restore和SetForegroundWindow(Application.MainForm.Handle),但程序并有提到最前面。请哪位帮忙搞定,谢谢。(我还使用了托盘控件,最小化时会缩小到托盘,显示窗体用icon.showmainform)<br>form5.pas:<br> var MutexHandle: Thandle;<br>begin<br> Mutexhandle := windows.CreateMutex(nil, true, 'project');<br>if Mutexhandle <> 0 then<br> begin<br> if getlasterror = windows.ERROR_ALREADY_EXISTS then<br> begin<br> Application.MessageBox('程序已经运行!', '提示', 48);<br> closehandle(Mutexhandle);<br> halt;<br> exit;<br> end;<br> end; <br><br>我看到有些人在项目文件里修改,我试过也没成功,下面是我的项目文件:<br><br>{$R *.res}<br>begin<br> Application.Initialize;<br> form5:=Tform5.Create(Application); //form5为splash窗口<br> form5.ShowModal;<br> if (form5.modalresult=mrOk) then<br> begin<br> Application.Title := '管理软件';<br> Application.CreateForm(Tform1, form1);//form1为主窗口<br>end.