Sto facendo un'applicazione che consente di cancellare i file Temp, la cronologia, ecc. Quando l'utente si disconnette. Quindi, come posso sapere se il sistema sta per uscire (in C#)?Ottieni disconnessione evento dal sistema
7
A
risposta
9
C'è una proprietà in Ambiente classe che racconta se processo di arresto è stato avviato:
Environment.HasShutDownStarted
Ma dopo un po 'googling ho scoperto che questo può essere di aiuto a voi:
using Microsoft.Win32;
//during init of your application bind to this event
SystemEvents.SessionEnding +=
new SessionEndingEventHandler(SystemEvents_SessionEnding);
void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
if (Environment.HasShutdownStarted)
{
//Tackle Shutdown
}
else
{
//Tackle log off
}
}
Ma se si desidera solo cancellare il file temporaneo, penso che distinguere tra arresto o disconnessione non sia di alcuna conseguenza per voi.
0
6
Se è specificamente necessario l'evento di log-off, è possibile modificare il codice fornito nella risposta di TheVillageIdiot come segue:
using Microsoft.Win32;
//during init of your application bind to this event
SystemEvents.SessionEnding +=
new SessionEndingEventHandler(SystemEvents_SessionEnding);
void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
if (e.Reason == SessionEndReasons.Logoff)
{
// insert your code here
}
}
Problemi correlati
- 1. Ottieni eventi dal sistema operativo
- 2. Disconnessione dal weblogic JMS
- 3. emettono i dati su evento di disconnessione dal client al server sul nodo
- 4. Android Aggiungi evento al calendario utilizzando Intento, ottieni ID evento
- 5. Disconnessione casuale dal nodo principale NoNodeAvailableException utilizzando Elastic Cloud/Found
- 6. Come determinare la disconnessione del server dal client SignalR?
- 7. Disconnessione del segnale non chiamata sulla disconnessione/ricollegamento di Internet
- 8. Disconnessione da Xcode Organizer?
- 9. SWT: notifica di una modifica del dispositivo di sistema (connessione/disconnessione del dispositivo USB)
- 10. Ottieni l'ID bundle dal file p12/pem
- 11. Ottieni evento keyDown per un NSTextField
- 12. Ottieni indice riga su evento Asp.net Rowcommand
- 13. UITableView Cell - ottieni IndexPath.row dal pulsante?
- 14. Ottieni la dimensione del sistema RAM
- 15. Ottieni il font predefinito di sistema
- 16. Ottieni identificatori di sistema univoci in C#
- 17. Ottieni l'indirizzo MAC del sistema in Java
- 18. Ottieni Uri dal percorso reale
- 19. Ottieni identificativo risorsa dal nome
- 20. Ottieni l'immagine dal percorso relativo
- 21. Ottieni l'input dell'utente dal discorso?
- 22. Ottieni dati dal catalogo XCAsset
- 23. Ottieni nome dal verbo Wordnet
- 24. C# rilevare tcp disconnessione
- 25. Ottieni stacktrace dal processo python bloccato
- 26. Evento spostato dal mouse all'interno di JPanel
- 27. angular2 - Evento trigger in direttiva dal componente
- 28. Attivazione evento click dal codice in gwt
- 29. React.js: allegare evento dal genitore ai figli
- 30. SignalR: disconnessione client
Occorre tuttavia tenere presente, su Vista + avete pochissimo tempo per fare cose durante l'arresto, quindi assicurati di non poter bloccare o attendere alcun motivo (ad es. tentare di cancellare un file che potrebbe essere in una condivisione di rete, ecc ...) –
grazie a @Paul quindi dovrebbe essere consigliabile fare un'immissione da qualche parte in modo che Windows cancella le cose al prossimo riavvio o login? – TheVillageIdiot