Esegui uno script in disconnessione su XP Home?

È ansible questo senza avere un process in esecuzione continuo, ascoltando WM_QUERYENDSESSION o simile? (o peggio ancora, caricando una DLL nel process Winlogon )

(Anche inaccettabile: scrivi uno script / programma che faccia quello che vuoi, quindi si disconnette e richiede all'utente di utilizzare solo questo programma per disconnettere, anziché Start -> Log Off o vari altri methods normali)

È semplice su XP Pro con Criteri di gruppo ma non credo che funziona in XP Home anche se "installa" l'editor di criteri di gruppo.

Credo che questa domanda di overflow di stack potrebbe essere la tua scommessa migliore: https://stackoverflow.com/questions/324220/how-to-run-my-program-on-before-logout-on-windows-xp

Questo thread di Techguy.org va anche in più opzioni in dettaglio: http://forums.techguy.org/windows-xp/728218-solved-logoff-script-windows-xp.html

Gli approcci fondamentali sono che utilizzare WMI per ascoltare o ganci Win32_ComputerShutdownEvent o per avere qualcosa in esecuzione (forse nascosto) che Windows invierà un messaggio di arresto, scritto in qualcosa che ti permette di intrappolare la ragione della chiusura.

Il Task Scheduler di Windows ha un trigger "In disconnessione dalla session utente".

Non ricordo se la funzionalità era disponibile in casa di Windows XP però. In caso contrario, è ansible trovare una buona voce di registro events per triggersre l'attività (ad esempio, alcuni arresti di un servizio).