2012-03-27 31 views
5

Ho bisogno di aiuto per la gestione di programmi minimizzati quando uso un file custom/self made explorer.exe. A meno che non vengano gestiti correttamente, i programmi minimizzati si ridurranno a qualcosa come 100x50px e resteranno sullo schermo. Ho elaborato un timer in C# per verificare la presenza di processi "iconici", elencare i loro mainWindowHandler e spostarli all'esterno dello schermo con "MoveWindow". Per riportarli indietro uso il gestore e la funzione "ShowWindow" che funziona ECCELLENTE .. ma come ho detto, coinvolge un Timer costantemente in esecuzione, quindi ci deve essere un modo più pulito/più semplice per raggiungere questo obiettivo.Gestione di programmi ridotti al minimo

Qualche idea? Un modo per agganciare e sollevare un evento quando una finestra è ridotta a icona?

* Nota: la visualizzazione e la finestra mobile sono funzioni di user32.dll. Non sto cercando di catturare quando le mie forme sono ridotte al minimo, ma quando sono i programmi OTHERS.

risposta

1

È possibile creare un gancio per controllare quando le finestre vengono ridotte a icona.

ho trovato a CodeProject article che utilizza ganci per controllare quando l'utente apre un menu di sistema (ALT +SPACE) in qualsiasi finestra, e quindi aggiunge un elemento in più per esso. È possibile utilizzare quel codice per verificare quando l'utente preme il pulsante di riduzione a icona ed eseguire qualsiasi codice necessario.

L'articolo CodeProject è scritto in C++, ma è possibile adattare lo stesso metodo per C# (o utilizzare P/Invoke).