Seite 1 von 2
Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 14:37
von Bisonte
Hallo...
Eine Freundin bat mich, ihren Rechner für ihre 2 Kinder (10,11 Jahre) mit einer Zeitkontrolle zu versehen.
(Jedes Kind hat 2h "Computerzeit")
Jedes Kind hat ein eigenes Benutzerkonto. Alles soweit kein Problem. Ich lasse mein Programm per Autostart starten,
frage den Benutzernamen ab und die Zeit läuft. Wenn die Zeit abgelaufen ist, Wird das Konto einfach abgemeldet.
Das Problem ist nun, wenn ein Kiddie sein Benutzerkonto früher abmeldet... sagen wir mal nach einer Stunde...
Wie kriegt mein Programm das mit, das da eine Abmeldung abläuft, damit ich die noch verbleibende Zeit irgendwie
Speichern kann (als File oder in Registry) ?
Edit :
Eine Speicherung alle x Minuten wollte ich umgehen...
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 14:54
von ts-soft
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 15:01
von Bisonte
Das sieht interessant aus, aber wie wende ich das an ?
Die Sache mit den Window Callbacks hab ich noch nie wirklich gerafft ....
Code: Alles auswählen
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
If uMSG = #WM_QUERYENDSESSION
SaveFile()
EndIf
EndProcedure
; und nach Openwindow
SetWindowCallback(@WinCallback())
In etwa so ?
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 15:16
von ts-soft
Code: Alles auswählen
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
Protected Result = #PB_ProcessPureBasicEvents
If uMSG = #WM_QUERYENDSESSION
SaveFile()
ProcedureReturn #True
EndIf
ProcedureReturn Result
EndProcedure
; und nach Openwindow
SetWindowCallback(@WinCallback())
In lParam kannste noch abfragen ob Abmeldung usw.
SaveFile() darf nicht lange dauern!
Gruß
Thomas
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 15:19
von HeX0R
Das ProcedureReturn #True kannst du dir theoretisch sparen, darum dürfte sich PB kümmern.
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 15:20
von Bisonte
Max. 5 Sekunden, wenn ich das richtig verstanden habe...
Aber ein Openpreferences() und speichern von 2 Variablen sollte keine 5 Sekunden dauern
Danke für diese Erleuchtung !
Edit: @Hex0r : Naja aber man will ja schön MS-Regeln einhalten....

Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 15:49
von edel
Du haeltst dich damit sehr wohl an die "Regeln" :
By default, the DefWindowProc function returns TRUE for this message.
Die Zeit die Windows ein Programm machen laesst, ist nicht uberall gleich, die kann man auch selber einstellen.
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 16:06
von ts-soft
ProcedureReturn #True ist wirklich überflüssig, aber schaden kann es auch nicht
Wenn jemand schnelles Herunterfahren unter XP enabled hat, wird es knapp mit Speichern,
aber bei Default-Werten gibt es keine Probleme.
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 16:47
von Bisonte
Soll unter Win7 laufen ... und dort ist es nur das Abmelden des Kiddieaccounts,
kein komplettes runterfahren. Defaultwerte sind da auch noch drin,
sollte von daher klappen.
Aber ich glaube ich sollte das Abmelden nicht mit #EWX_LOGOFF | #EWX_FORCE machen...
sonst geht der doch sofort raus oder seh ich das Falsch ?
Re: Computer Runterfahren / Benutzer Abmelden Meldung
Verfasst: 16.10.2010 17:13
von ts-soft
Auf #EWX_FORCE solltest Du verzichten, das kann zur Folge haben, das gar kein #WM_QUERYENDSESSION gesendet wird.