var
Mutex:THandle;
findw:hwnd;
begin
Mutex:=CreateMutex(NIL,True,'SingleApp');
IF GetLastError=ERROR_ALREADY_EXISTS THEN
begin
findw:=findwindow(0,'noxe');
showwindow(application.Handle,SW_Normal);
halt;
end;
Application.Initialize;
Application.CreateForm(Tnoxe, noxe);
Application.Run;我想在程序运行前检测一下 如果已经运行让原来窗口成为当前窗口 并NORMAL 请问如何做啊?
Mutex:THandle;
findw:hwnd;
begin
Mutex:=CreateMutex(NIL,True,'SingleApp');
IF GetLastError=ERROR_ALREADY_EXISTS THEN
begin
findw:=findwindow(0,'noxe');
showwindow(application.Handle,SW_Normal);
halt;
end;
Application.Initialize;
Application.CreateForm(Tnoxe, noxe);
Application.Run;我想在程序运行前检测一下 如果已经运行让原来窗口成为当前窗口 并NORMAL 请问如何做啊?
Mutex:THandle;
findw:hwnd;
begin
Mutex:=CreateMutex(NIL,True,'SingleApp');
IF GetLastError=ERROR_ALREADY_EXISTS THEN
begin
findw:=findwindow(0,'noxe');
showwindow(application.Handle,SW_Normal);
halt;
end;
Application.Initialize;
Application.CreateForm(Tnoxe, noxe);
Application.Run; 这是我得程序片段
{$R *.RES}
var
hMutex:HWND;
Ret:Integer;
begin
Application.Title := 'SingleApp';
hMutex:=CreateMutex(nil,False,'SingleApp');
Ret:=GetLastError;
If Ret<>ERROR_ALREADY_EXISTS Then
begin
Application.CreateForm(TMainMenuFrm, MainMenuFrm);
Application.Run;
end
else
Application.MessageBox('你已经运行了<<SingleApp>>程序了!','提示',mb_ok+mb_iconinformation);
ReleaseMutex(hMutex);
uses windows,var
prewindow : HWND;begin
Application.Initialize;
prewindow:=findwindow('TForm1','Form1');
if prewindow<>0 then
begin
setforegroundwindow(prewindow);//窗口提前
application.Terminate;
end;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
setforegroundwindow(findw);
showwindow(findw,SW_Normal);这样就完整了!
谢谢楼上兄弟!