Start service før brugeren logger på
Jeg har brug for at vide, hvornår en maskine har været tændt.Til det brug har jeg lavet nedenstående service, som virker fint, når det er lavet som et program.
Jeg har lavet et kald til servicen fra HKLM\Software\Microsoft\Windows\Current Version\Run
men servicen starter ikke op.
Det gør den heller ikke, når jeg køre programmet fra Delphi.
StartType er stAuto
ServiceType er stWin32
Hvordan får jeg skrevet i min logfil, når maskinen startes op?
Her er koden:
unit Unit1_service;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs;
type
TDFLog = class(TService)
procedure ServiceStart(Sender: TService; var Started: Boolean);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;
var
DFLog: TDFLog;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
DFLog.Controller(CtrlCode);
end;
function TDFLog.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TDFLog.ServiceStart(Sender: TService; var Started: Boolean);
var
F_Log: TextFile;
LogFile, Directory: String;
const
SP = ' ';
begin
Logfile:= 'C:\programmer\Faronics\Logfiler\Status.log';
Directory:= 'C:\programmer\Faronics';
if not DirectoryExists(Directory) then begin
CreateDir(Directory);
end;
Directory:= 'C:\programmer\Faronics\Logfiler';
if not DirectoryExists(Directory) then begin
CreateDir(Directory);
end;
AssignFile(F_Log,LogFile);
if not(FileExists(LogFile)) then
ReWrite(F_Log)
else
Append(F_Log);
writeln(F_Log,DateToStr(Date)+SP+TimeToStr(Time));
CloseFile(F_Log)
end;
end.
