Wie bringe ich ein nicht verwaltetes Anwendungsfenster nach vorne und mache es zum aktiven Fenster für (simulierte) Benutzereingaben

7

Ich gehe davon aus, dass ich pinvoke verwenden muss, aber ich bin mir nicht sicher, welche Funktionsaufrufe benötigt werden.

Detailliertes Szenario. Eine ältere Anwendung wird ausgeführt. Ich werde Handle für diese Anwendung haben. Ich muss einfach: a) Bringen Sie diese Anwendung an die Spitze (vor allen anderen Fenstern). b) Machen Sie es zum aktiven Fenster.

Welche Windows-Funktionsaufrufe werden benötigt?

    
Gerald Davis 03.06.2011, 14:02
quelle

3 Antworten

11

Wenn Sie kein Handle für das Fenster haben, verwenden Sie dies vor:

%Vor%

Wenn Sie jetzt ein Handle für das Anwendungsfenster haben:

%Vor%

Dies wird die Taskleiste blinken lassen, wenn ein anderes Fenster den Tastaturfokus hat.

Wenn Sie das Fenster in den Vordergrund drängen möchten, verwenden Sie ForceForegroundWindow (Beispielimplementierung).

    
user703016 03.06.2011, 14:20
quelle
9
%Vor%

Die ShowWindowAsync-Methode wird verwendet, um die minimierte Anwendung anzuzeigen, und die SetForegroundWindow-Methode wird verwendet, um die Back-Anwendung vorzuschalten.

Sie können diese Methoden verwenden, wie ich sie in meiner Anwendung verwendet habe, um den Skype vor meiner Anwendung zu bringen. auf Knopf klicken

%Vor%     
Talha 30.01.2012 05:15
quelle
8

Dies hat sich als äußerst zuverlässig erwiesen. Die ShowWindowAsync-Funktion ist speziell für Fenster entworfen, die von einem anderen Thread erstellt werden. Der SW_SHOWDEFAULT stellt sicher, dass das Fenster vor dem Anzeigen wiederhergestellt wird und dann aktiviert wird.

%Vor%

Dann machen Sie die Anrufe:

%Vor%     
rigamonk 07.06.2011 20:07
quelle

Tags und Links