unit mainform; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls,math,registry; type Tmain = class(TForm) logo: TImage; Label1: TLabel; Label2: TLabel; Label3: TLabel; cd: TLabel; timer: TTimer; Label4: TLabel; Timer1: TTimer; procedure FormCreate(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure timerTimer(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var main: Tmain; implementation {$R *.dfm} procedure Tmain.FormCreate(Sender: TObject); var reg : Tregistry; begin Logo.Transparent:=True; Logo.Picture.Bitmap.TransparentMode:=tmAuto; try if fileexists('logo.bmp') then Logo.Picture.LoadFromFile('logo.bmp'); except; end; timer.Tag:=1501; reg:=TRegistry.Create(KEY_READ); reg.RootKey := HKEY_LOCAL_MACHINE; if reg.OpenKey('SOFTWARE\Autologout\',true)then begin if reg.valueexists('timeout') then begin timer.Tag:=reg.readinteger('timeout')+1; end; end; if (copy(uppercase(paramstr(1)),1,2)='/C') then application.terminate; if (copy(uppercase(paramstr(1)),1,2)='/S') then timer.enabled:=true; if (copy(uppercase(paramstr(1)),1,2)='/P') then application.terminate; timerTimer(nil); end; procedure Tmain.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin application.terminate; end; procedure Tmain.timerTimer(Sender: TObject); var minutes : integer; var seconds : integer; begin timer.tag:=timer.tag-1; minutes:=floor(timer.tag / 60); seconds:=timer.tag-(minutes * 60); cd.caption:=format('%.2d',[minutes])+':'+format('%.2d',[seconds]); if timer.tag<0 then begin ExitWindowsEx(EWX_LOGOFF or EWX_FORCE or EWX_FORCEIFHUNG,0); application.Terminate; end; end; procedure Tmain.Timer1Timer(Sender: TObject); begin if label1.Visible=true label1.Visible:=false else label1.Visible:=true; end; end.