![]() |
Sperrprogramm
Hallo und ein frohes neues Jahr.
Kaum hat das neue Jahr begonnen und schon eine Frage :-D Ich habe folgenden Gedanke für ein benötigtes Programm. Und zwar: Da mein Sohn häufig am PC und im Internet am zocken ist und hierbei die Zeit vergisst, mochte ich ein Programm schreiben welches im Hintergrund läuft - sich nicht so einfach entdecken lässt - und dabei die Systemzeit mit einer von mir eingegebenen Zeit vergleicht - sollte die Zeit erreicht sein muss das Programm den Computer selbst runter fahren oder ein hochfahren kurz naach der Anmeldung bei XP verweigern und auch wieder runter fahren. Da mir zur Zeit keine Ideen kommen dieses Projekt zu verwirklichen frage ich mal hier in die Runde ob der ein oder andere Brauchbare Ansätze hat. Danke schon mal im voraus. Gruß Murdock |
Re: Sperrprogramm
Herunterfahren
Die Funktion zum Herunterfahren:
Delphi-Quellcode:
EWX_Force ist wichtig, damit laufende Programme beendet werden. Es sollte aber noch eine Minute davor darauf hingewiesen werden.
function ExWindows(const AFlag: Word): Boolean;
var vi : TOSVersionInfo; hToken : THandle; tp : TTokenPrivileges; h : DWord; begin result:= false; vi.dwOSVersionInfoSize:=SizeOf(vi); if GetVersionEx(vi) then begin if vi.dwPlatformId = VER_PLATFORM_WIN32_NT then begin if OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES,hToken) then begin LookupPrivilegeValue(nil,'SeShutdownPrivilege',tp.Privileges[0].Luid); tp.PrivilegeCount := 1; tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED; h := 0; AdjustTokenPrivileges(hToken,False,tp,0,PTokenPrivileges(nil)^, h); CloseHandle(hToken); result := ExitWindowsEx(Aflag, 0); end; end else begin Result := ExitWindowsEx(Aflag, 0); end; end; end; // Aufruf ExWindows(EWX_Poweroff OR EWX_FORCE); Verweigerung der Anmeldung Außerdem sollte das Programm ja beim Windows-Start geladen werden, also kann schon bei onFormCreate die Zeit überprüft werden, und wenn sie überschritten wurde, der Shutdown eingeleitet werden. Unsichtbar Code, damit man das Programm nicht sieht:
Delphi-Quellcode:
Dann würde ich aber den Einsatz eines tray-Icons empfehlen(CoolTrayIcon, JvTrayIcon von den Jedis oder
Application.ShowMainForm := false; //in FormCreate
![]() Zeit Die Zeit würde ich als TTime nehmen, sofern es sich um eine feste Uhrzeit handelt.
Delphi-Quellcode:
Oder soll es die Zeit sein, seit der der Rechner läuft?
procedure TForm.Timer1Timer(Sender: TObject); // Interval = 60000 (=1 Minute)
begin if (Time = StrToTime('20:00:00')) then begin ... end; end; Dann würde ich es so machen:
Delphi-Quellcode:
Um ein erneutes Hochfahren in diesem Fall zu verhindern, könntest du den Tag des letzten Ausführens in einer INI-Datei speichern.Auf DSDT.Info gibt es ein gutes INI-Tutorial.
var Uptime : Cardinal;
procedure TForm.Timer1Timer(Sender: TObject); // Interval = 60000 (=1 Minute) begin case Uptime of 59: Showmessage('Noch eine Minute!'); 60: ExWindows(...); else: Inc(Uptime); end; end;
Delphi-Quellcode:
Das dürfte fürs Erste reichen. :mrgreen:
// FormCreate
if (StrToDate(INI.ReadString('Datum', 'LetzterStart', '01.01.2000') = Now) then begin Showmessage('Heute wurde schon einmal gestartet!'); ExWindows(...); end else INI.WriteString(DateToStr(Now)); Gruß, ManuMF |
Re: Sperrprogramm
Zitat:
|
Re: Sperrprogramm
Ich denke mal, er hat einen eigenen Benutzer. Da kann das Programm ja nur unter dem gestartet werden.
Gruß, ManuMF |
Re: Sperrprogramm
Du kannst auch den Benutzer sperren, nachdem das Limit überschritten wurde.
Grüße Faux |
Re: Sperrprogramm
Man kann für benutzer ( allerdings nur unter Pro ) eine Zeittabelle anlegen, in der eingegstellt wird zu welchen Zeiten sich benutzer anmelden können. So kann man zb verhindern, dass er sich nach 18 Uhr noch anmelden kann.
Was passiert wenn sich ein benutzer vorher anmeldet und dann diese zeit erreicht wird weis ich nicht. Also für diesen fall wie bereits erwähnt einen Dienst installieren, den kann der kleine dann auch ohne admin rechte nicht killen. mfg |
Re: Sperrprogramm
Es sollte auf jeden Fall ein Passwort für das Konto "Administrator" das XP automatisch erstellt gesetzt werden, denn sonst könnte man im abgesicherten Modus alle Passwörter ändern! Bei XP Prof. wird glaub ich schon bei der Installation ein Passwort eingerichtet bei Home muss man das noch umständlich selber machen.
|
Re: Sperrprogramm
Zitat:
|
Re: Sperrprogramm
Zitat:
//Weiß jemand wo man den vllt noch findet? Hatte zwar diese Ausgabe finde sie aber nicht mehr! :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz