Sto scrivendo un'applicazione che richiede due display: uno per la centrale, l'altro per l'uscita. Quello che ho è questo: se c'è un solo display, l'applicazione mostra entrambi i moduli, ma se ce ne sono due, il modulo di output va all'altro. Il problema è che questo accade solo all'avvio dell'applicazione. In altre parole, se l'applicazione è già in esecuzione prima della connessione del secondo display, non accade nulla a meno che l'utente non invii manualmente l'output al nuovo display (supponendo che sappiano come farlo). Quello che voglio è che quando un nuovo display è collegato, il modulo di output viene automaticamente inviato ad esso anche mentre l'applicazione è in esecuzione. Penso che abbia a che fare con il polling di una porta in una discussione ma non so come farlo. Qualcuno può aiutare con come farlo? Se c'è una soluzione migliore, la accolgo volentieri.Rileva quando è collegato un nuovo display
(avrei fornito una parte del codice, ma sto scrivendo questo da un telefono)
Si potrebbe creare un loop di polling per controllare regolarmente per un nuovo display in un lavoratore thread in background/sfondo. Per esempio. leggi la proprietà ['Screen.AllScreens'] (http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.allscreens.aspx) ed esegui del codice se diventa'> 1' . –
Questo è quello che pensavo ma ho bisogno di codice su come farlo. Ho problemi con la scrittura di thread. Puoi aiutare? – afaolek
Puoi usare questa classe: http://msdn.microsoft.com/en-us/library/system.windows.forms.screen(v=vs.100).aspx E puoi usare BackgroundWorker: http: // msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker(v=vs.100).aspx – Davio