Moin Moin ...
Ok, jetzt läuft es mit folgender Routine sowohl unter Win98 bis Vista.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var s: array[0..255] of char;
begin
GetClassName(GetForeGroundWindow, s, 255);
if Assigned(AnsiStrPos(s, 'Worker')) then BringAppToFront;
end;
Das Problem war der Befehl 'Application.BringToFront' welcher unter Vista scheinbar nicht immer zuverlässig läuft. Warum das so ist, das entzieht sich meiner Kenntnis. Ich habe etwas experimentiert und heraus gefunden, das man über den Befehl 'AttachThreadInput'
z.B. hier zum gewünschten Ziel kommt. Die Routine wurde geringfügig erweitert um 'WorkerA' und auch 'WorkerW' ClassNames zu finden.
Ein 'Active Desktop' hat aus meiner Sicht keinen Einfluss auf die Funktion dieser Timer-Routine und eine Überschneidung mit anderen 'WorkerW'-ClassNames ist mir bisher nicht aufgefallen. Aus meiner Sicht ist dieser Thread beendet. Vielleicht haben die Moderatoren der Code-Lib ja Interesse an dem Ergebnis.
Danke nochmal für Eure Mithilfe ...