esta es la tecnica que uso, la encontre por ahi en algun foro o pagina de DELPHI, no eh registrado cual.
Código Delphi
[-]program Project1;
uses
Forms,
WINDOWS,
Unit1 in 'Unit1.pas' ;
{$R *.res}
var
MiMutex:THandle;
begin
MiMutex:= CreateMutex(nil,false,'Project1.exe');
if(GetLastError <> ERROR_ALREADY_EXISTS)then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
ReleaseMutex(MiMutex);
end;
end.
Este codigo va en la unidad del proyecto, lo que seria el ".dpr"