Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Focus auf eigene Anwendung nicht verlieren

  Alt 27. Sep 2013, 12:32
Hallo-

Aus Zeitmangel habe ich das Thema nur überflogen. Aber soweit ich es im Hinterkopf habe, darf eine Anwendung sich nicht in den Vordergrund zwängen wenn sie es nicht mehr ist. SetForegroundWindow(self.Handle) funktioniert also nicht, wenn der eigene Delphi-Prozess nicht mehr im Vordergrund ist.

Es sei denn, die eigene Anwendung hat zuletzt eine Benutzereingabe bekommen. Der Trick ist, sich selbst eine Eingabe zu schicken. So habe ich es auf einem VCL-Formular einmal gemacht:

Delphi-Quellcode:
uses Winapi.Windows;

var
   Input: TInput;
begin
   // Diese Anwendung in den Vordergrund zwängen
   ZeroMemory(@Input, SizeOf(Input));
   SendInput(1, Input, SizeOf(Input));
   SetForegroundWindow(Handle);
  Mit Zitat antworten Zitat