放到你的程序的DRR里或者主窗体的initialization部分。
var
hMutex: HWND;
Ret: Integer;
begin
Application.Title := '你的程序名称;
hMutex := CreateMutex(nil, False, '你的程序名称');
Ret := GetLastError;
if Ret <> ERROR_ALREADY_EXISTS then
begin
Application.Initialize;
// 你创建的一些窗口
end
else
begin
SysUtils.beep;
MessageBox(0, '已运行!', '提示!', MB_ICONERROR);
end;
ReleaseMutex(hMutex)
end.
begin
RvHandle := FindWindow(nil,'XXXXX'); //XXXX是你的程序Title
if RvHandle > 0 then
begin
if IsIconic(Rvhandle) = TRUE then
begin
showwindow(Rvhandle,1);
end
else
begin
SetForegroundWindow(RvHandle);
end;