Mit SendMessage () minimieren Sie alle Fenster, benötigen aber einen effizienteren Weg als Thread.Sleep () zu warten, bis der Legacy-Desktop angezeigt wird

8

In meiner C # -Konsolenanwendung verwende ich SendMessage() , um alle Fenster zu minimieren und den Windows 8 Legacy Desktop zu zeigen. Das funktioniert großartig, aber ich muss Thread.Sleep(1000) verwenden, um darauf zu warten, dass der Legacy Desktop tatsächlich angezeigt wird, bevor ich versuche, etwas anderes zu tun.

%Vor%

Ich möchte wirklich Thread.Sleep() durch eine effizientere Methode ersetzen, um zu erkennen, dass der Legacy Desktop angezeigt wird, bevor Sie fortfahren.

Irgendwelche Ideen?

Bearbeiten: Hier sind die Interop Wrapper und Konstanten. nur für den Fall, dass es hilft ..

%Vor%     
user1190320 27.05.2013, 10:54
quelle

1 Antwort

2

Ich bin nicht sicher, ob das für Sie besser funktioniert, aber vielleicht ist es einen Versuch wert ...

(1) Fügen Sie Ihrem Projekt einen Verweis auf "Shell32" hinzu (über Add Reference - & gt; COM - & gt; Microsoft Shell-Steuerelemente und Automatisierung).

(2) Setzen Sie die "Interop-Typen einbetten" der Referenz auf false .

(3) Verwenden Sie den folgenden Code, um alle Fenster zu minimieren:

%Vor%

Ich vermute jedoch, dass dies nur ein alternativer Weg ist, SendMessage () zu machen.

    
Matthew Watson 27.05.2013 11:09
quelle

Tags und Links