Bevor Sie diese Antwort abschätzen, sollten Sie wissen, dass sie in Arbeit ist. Die Kommentare erhielten zu viel und waren nicht wirklich auf die Beantwortung der Frage gerichtet, sondern fanden stattdessen die Ursache des Problems.
Momentan kann ich keine Kopie von win7 bekommen, um zu überprüfen, wie der Code an win7 funktioniert. Ich mache das nächste Woche oder Sie sagen mir einfach, was Sie erleben ...
---- Antwortentwurf ----
Obwohl die beste Lösung für Ihr Problem darin besteht, die Ursache zu finden, werde ich den Titel der Frage beantworten:
"So verhindern Sie die automatische Abmeldung in Windows 7"
Um die Abmeldung zu erfassen und zu verhindern, fand ich heraus, dass ich das "formclosing" -Ereignis eines Windows-Formulars in C # abfangen und prüfen würde, ob es sich bei CloseReason um CloseReason.WindowsShutDown handelt. Dieses Ereignis kann dann vom Code "abgelehnt" werden.
Dies ist der gesamte Code:
using System; using System.Windows.Forms; using System.IO; namespace BlockLogoffForm { public partial class PreventLogoff : Form { public PreventLogoff() { InitializeComponent(); } private void PreventLogoff_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason.Equals(CloseReason.WindowsShutDown)) { File.AppendAllText("c:\\temp\\logofflog.txt","log off prevented at " + DateTime.Now); e.Cancel = true; } } } }
Laden Sie die kompilierte Binärdatei hier herunter : BlockLogoffForm.exe
Beim aktuellen Design müssten Sie dieses Programm starten und laufen lassen, bis die automatische Abmeldung tatsächlich erfolgt. Weitere Neudefinitionen könnten die gleiche Ausführung wie die Tasktray-Anwendung oder ähnliches bewirken.