Domanda

Per impostazione predefinita, la barra degli strumenti dell'applicazione miniatura su Vista non si aggiorna quando un'applicazione è ridotto al minimo, dal momento che la finestra ridotta a icona in sé non è il ridisegno.Per un'applicazione di monitoraggio che ho, sarebbe utile aggiornare l'applicazione in miniatura, mentre l'applicazione rimane ridotta al minimo.Sto usando Delphi 2009.Qualcuno può suggerire una buona soluzione per questo?

HMcG

È stato utile?

Soluzione

Questo è un interessante Credo che sia possibile in qualche modo con l'API di Windows, io non sono su una macchina di vista al momento, ma penso che Windows Media Player mostra ancora la riproduzione video quando minimizzato.

Credo che un hack sarebbe quello di ignorare il pulsante di minimizzare e spostare il modulo fuori dallo schermo, quindi rilevare il modulo di diventare di nuovo attivo e in movimento di nuovo alla vecchia posizione. Ciò significherebbe la forma è fuori di vista, ma non minimizzato.

Altri suggerimenti

qualcosa in un forum di sviluppo Microsoft che affronta questo tema. La domanda riguardava un modo per fornire un'immagine in miniatura una consuetudine, a cui Microsoft di Leonardo Blanco risposto con questo:

  

Lo facciamo nessun piano [t] per fornire un mezzo per un app per creare un   rappresentazione delle miniature alternativa su misura, ma ci sarà   fornire un'API di opt-out della miniatura normale   tutto ....

Sembra che tali piani potrebbe avere cambiato nel frattempo, a giudicare dalla presenza in MSDN delle funzioni DwmSetIconicLivePreviewBitmap e DwmSetIconicThumbnail Windows 7. In questo momento quelle entrate in realtà non contiene alcuna spiegazione, ma i loro nomi sembrano promettenti.

Qualcuno ha fatto notare che la miniatura per Windows Media Player mostra video in movimento anche quando la finestra è ridotto al minimo. La spiegazione di Blanco:

  

WMP utilizza una nuova pipeline video che parla direttamente al   [Desktop Window Manager] per ottenere una riproduzione più fluida   Esperienza. Questo gasdotto si basa su [DirectX] e non lo fa   dipendere da informazioni finestra di visibilità, così la miniatura   può essere mantenuto in vita anche se la finestra è ridotto al minimo, come   Finché l'applicazione continua a inviare i frame. Si può notare,   tuttavia, non è che l'interfaccia utente in tutto il video è dal vivo più   (Questo è difficile da osservare perché l'interfaccia utente attorno al video   di solito non aggiornare). Per un po 'di più informazioni su questo metodo,   vedere la DwmSetPresentParameters API.

Ho paura non riesco a trovare niente di più di questo. La documentazione per le funzioni di DWM è scarsa.

Data la natura della vostra applicazione, forse vale la pena considerare un gadget a vivere sulla Windows Sidebar.

Non so se questa soluzione funziona ancora in Delphi 2009: CreateParams di override per impostare GetDesktopWindow come WndParent.

Ho cambiato Application.Title in passato per mostrare alcune informazioni nel pulsante della barra delle applicazioni. Io non Suppongo che questo provoca un ridisegno dell'icona?

In Delphi 2007 la maschera principale è sulla barra delle applicazioni se si imposta

  Application.MainFormOnTaskbar := True;

Per mantenere l'aggiornamento, quindi è necessario per impedire che l'applicazione di minimizzazione e invece basta spostare indietro.È possibile farlo mettendo un TApplicationEvents la forma e l'assegnazione di un gestore di eventi per il OnMinimize evento e quindi chiamare Applicazione.Ripristino in là.Si vuole tenere traccia propria minimizzazione stato e assicurarsi che si nasconde tutte le altre forme (se li avete) e solo avere la vostra principale forma visibile, ma al minimo di ordine Z quando viene "ridotto al minimo."

Non credo che Windows Vista consente di spostare i moduli di fuori dello schermo, o si potrebbe fare solo che.Forse c'è un trucco per aggirare.

Buona fortuna!

vai al progetto sorgente e modificare Application.MainFormOnTaskbar su false: Application.MainFormOnTaskbar: = false;

Saluti, Mauricio

http://sourceforge.net/projects/tcycomponents/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top