Sto cercando di ottenere la dimensione del desktop di Windows (il tutto, non solo una singola schermata) all'interno di un servizio che ho scritto.Ottieni le dimensioni del desktop dal servizio di Windows?
in WinForms - il metodo standard C# di:
SystemInformation.VirtualScreen.Width
SystemInformation.VirtualScreen.Height
sembra funzionare (se si importa il Winforms DLL, che voglio evitare) - ma restituisce il valore errato. Le dimensioni del desktop sono 2048x768
(2 schermate), ma il servizio segnala 1024x768
(presumibilmente si solleva solo su una delle schermate)
Controllare l'opzione per il servizio di interagire con il desktop non ha alcun effetto.
Qualche idea?
Edit:
Le soluzioni pubblicato su C#: Get complete desktop size? non funzionano all'interno di un servizio. Tutti riportano il valore sbagliato.
È interessante notare, sembra che il valore che viene segnalato varia ed è di alcuna relazione con la dimensione desktop reale (alcune macchine riportano 800x600
anche se un singolo display su quella macchina è una risoluzione molto più elevata.)
Così - Altre idee? Il passaggio al registro e/o alla riga di comando è OK. L'unica limitazione è che non posso lanciare un'app winforms per capirlo.
Hai preso in considerazione il fatto che il servizio potrebbe essere in esecuzione su un sistema senza testa? O semplicemente non ci sono utenti registrati? – Dmitry
Spero che questo http://stackoverflow.com/questions/1317235/c-get-complete-desktop-size ti aiuterà. –
Dovrei chiarire. I sistemi senza testa non sono un problema in questa configurazione. In secondo luogo, mi collego all'evento di accesso, quindi so quando tentare di capire la dimensione del desktop (solo dopo che qualcuno effettua l'accesso.) – debracey