Hoi,
ich überprüfe beim start meiner anwendung ub die anwendung bereits läuft durch einfaches "
Handle".
Jetzt möchte ich den bestehenden MItteilen, das versucht wurde noch eine Instanz zu starten.
Von Prinzip her sieht das so aus:
Delphi-Quellcode:
procedure CheckOnce;
const
TestTitle = 'App #startup';
AppTitle = 'App';
var
hWnd: THandle;
begin
Application.Title:= TestTitle;
hWnd:= FindWindow('TApplication', AppTitle);
if hWnd <> 0 then
begin
// Eine andere Instanz läuft schon;
if IsIconic(hWnd) then
ShowWindow(hWnd, SW_SHOW);
SetForegroundWindow(hWnd);
//Nachricht schicken
SendMessage(hWnd,WM_APP+1, 0, 0);
Application.ProcessMessages();
//Uns Beenden
Application.Terminate;
end;
Application.Title:= AppTitle;
end;
Delphi-Quellcode:
procedure TForm1.WndProc(var Message: TMessage);
begin
if Message.Msg = WM_APP+1 then
AddHint('2nd instance start-up disabled.'); //Add Hint schreibt mit Zeitstempel und allem in ein Memo.
end;
funktioniert aber nicht. (BTW: sende ich es an Self.Handle klappt es)
Muss ich irgentwas beim senden an andere Anwendungen beachten?
Vielen dank für eure Hilfe schonmal!
David
[Fehler] Unit1.pas(1): Dein Kaffee ist kalt.
[Fehler] Unit1.pas(2): Dein linker großer Zeh ist eingeschlafen.
[Fataler Fehler] Projekt1.dpr(5): Verwendete
Unit "Unit1.pas" kann nicht comiliert werden.