2010-03-03 19 views
8

Desidero impostare la mia applicazione sul livello desktop, come Windows Gadget. È possibile raggiungere questo obiettivo?Di fronte a "sempre in primo piano"

In questo caso, ho un'applicazione senza bordi che voglio eseguire sul desktop.

Ho provato a trovare l'opzione, ma ho trovato solo "sempre in primo piano" che è l'opposto di quello che voglio raggiungere.

+4

c'è una ragione che non si può scrivere come un gadget di Windows – Richard

+2

non sempre in alto;) – Younes

+2

Quando si escogitare un nuovo modello di interfaccia utente per l'applicazione, è' molto probabilmente finirà per odiare i tuoi utenti. "Perché quel cazzo ha reso questa app senza bordi? Non posso ridimensionarla, è così piccola sul mio schermo mostro. La cosa migliore da fare è trovare un modello di interfaccia utente comune (come un gadget, un'app basata su un'icona del vassoio, un servizio di Windows, un'attività pianificata, un'app che riduca al minimo il vassoio e visualizzi i popup di notifica, ecc. Ecc.). usalo – Will

risposta

0

penso che non ci sia modo di farlo allo stesso modo di sempre in cima. vuoi eseguire la tua applicazione sotto le icone? l'unico modo per fare davvero un'applicazione in background è sostituire explorer.exe, ma non vedrai icone e barra delle applicazioni.

+0

sì, i gadget possono essere in cima se si sceglie come qualsiasi finestra. –

+0

Voglio che la mia app sia allo stesso livello delle icone del desktop, non sotto di esse. – Danijel

3

Scrivere l'app in modo che venga eseguita come servizio in background, quindi implementare un vero gadget Windows come front-end?

6

Il buon vecchio SetWindowPos supporta un HWND_BOTTOM per posizionare l'applicazione come l'ultima nell'ordine. Per usarlo in C# dai un'occhiata a PInvoke.Net.

0

È possibile implementare un gadget Windows effettivo utilizzando WPF creando un XBAP. Basta aggiungere un file gadget.xml e un file .html che contiene solo un IFRAME che carica XBAP. In questo modo la tua applicazione WPF sarà effettivamente un gadget e seguirà automaticamente tutte le regole.

Un'altra opzione è utilizzare Windows Sidebar Styler. Ciò richiede l'installazione di software aggiuntivo accanto al tuo ma consente anche di eseguire operazioni che non è possibile eseguire all'interno della sandbox XBAP senza certificati di firma del codice, autorizzazione utente, ecc.

Una terza opzione è creare un gadget che utilizza qualcosa riconoscibile nell'HTML (come un particolare colore di sfondo), quindi all'avvio del file .exe, cerca un hWnd sotto Explorer con gli attributi che stai cercando, immettiti nel processo Explorer.exe e imposta la finestra come un figlio di esso.

Una variante della terza opzione è non iniettare in Explorer.exe, ma piuttosto mantenere l'indice Z e la posizione (utilizzando SetWindowPos) per tenere traccia dell'indice Z e della posizione della hWnd trovata.

Tante scelte ...

Problemi correlati