@taaktaak:
Supi!!! Genau so funktioniert das auch.
Vielen Dank an alle, die ihre Zellen haben anstrengen müssen. Jetzt habe ich meinen Code so, wie ich es haben möchte.
Für alle, die es auch mal brauchen:
Delphi-Quellcode:
unit OneInstance;
interface
implementation
uses Windows, Forms;
var
mHandle : THandle;
// Mutexhandle
h : HWnd;
initialization
mHandle := CreateMutex(
nil,True,'
{7A366489-37B0-4E63-81A0-F0BBC281614D}');
if GetLastError=ERROR_ALREADY_EXISTS
then
begin // Fehler, Pgm schon aktiv!
h := 0;
// vorhandene Instanz suchen
repeat
h := Windows.FindWindowEx(0,h,PChar('
TApplication'),PChar(Application.Title))
until h<>Application.Handle;
if h<>0
then
begin // aktivieren
Windows.ShowWindow(h,SW_Restore);
Windows.SetForegroundWindow(h);
end;
Halt;
// und diesen zweiten Aufruf beenden!
end;
finalization // ... und Schluß
if mHandle <> 0
then
CloseHandle(mHandle)
end.