2012-03-27 20 views
5

Ich brauche Hilfe bei der Handhabung von minimierten Programmen, wenn Sie eine benutzerdefinierte/selbst erstellte explorer.exe Datei verwenden .. denn wenn nicht richtig behandelt, schrumpfen minimierte Programme auf etwas wie 100x50px und bleiben auf dem Bildschirm. Ich habe einen Timer in C# ausgearbeitet, um nach "ikonischen" Prozessen zu suchen, ihren mainWindowHandler aufzulisten und sie mit "MoveWindow" außerhalb des Bildschirms zu bewegen. Um sie zurückzubringen benutze ich den Handler und die "ShowWindow" -Funktion, die super funktioniert. Aber wie gesagt, es beinhaltet einen ständig laufenden Timer, also muss es einen saubereren/einfacheren Weg geben, dies zu erreichen.Umgang mit minimierten Programmen

Irgendwelche Ideen? Eine Möglichkeit, ein Ereignis zu haken und anzuheben, wenn ein Fenster minimiert wird?

* Bitte beachten Sie: show und movewindow sind Funktionen von user32.dll. Ich versuche nicht zu fangen, wenn MY-Formulare minimiert werden, aber wenn die OTHERS-Programme sind.

Antwort

1

Sie können einen Haken erstellen, um zu überprüfen, wenn Fenster minimiert werden.

fand ich a CodeProject article, die Haken zu überprüfen verwendet, wenn der Benutzer ein Systemmenü öffnet (ALT + SPACE) auf jedem Fenster, und dann fügt ein zusätzliches Element, um es. Sie können diesen Code verwenden, um zu überprüfen, wann der Benutzer auf die Minimieren-Schaltfläche klickt und den dort benötigten Code ausführen.

Der CodeProject Artikel ist in C++ geschrieben, aber Sie können die gleiche Methode für C# anpassen (oder P/Invoke verwenden).