Vielen Dank für den Hinweis. Jetzt funktioniert es wie es soll!
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
const
CM_aktivieren=WM_APP+400;
type
TForm1 =
class(TForm)
private
procedure CMtest(
var Message: TMessage);
message CM_aktivieren;
public
end;
var
Form1: TForm1;
Handle: THandle;
implementation
{$R *.DFM}
procedure TForm1.CMtest(
var Message: TMessage);
begin
Application.Restore;
end;
initialization
begin
Handle:= CreateMutex(
nil, true, '
Form1');
if GetLastError=ERROR_ALREADY_EXISTS
then Halt;
end;
finalization
begin
if Handle<>0
then CloseHandle(
Handle);
Handle:= FindWindow(
nil, '
Form1');
SetForegroundWindow(
Handle);
SendMessage(
Handle, CM_aktivieren, 0,
Handle);
end;
end.
Wenn ich allerdings ganz ehrlich bin, hab ich die Lösung mehr durch probieren als durch Verstehen gefunden.
Aber was soll's, das Ergebnis zählt.
Jetzt muss ich 'nur' noch dafür sorgen, daß nicht der ganze Fenstertitel (meistens ja nicht vollständig bekannt) benötigt wird.