![]() |
|
|
#1
|
||||
|
||||
|
Всем привет! Кто писал сервисы на Delphi, подскажите. Вот код сервиса:
Код:
unit Main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, SvcMgr, Dialogs,
ExtCtrls, AppEvnts;
type
TService1 = class(TService)
Timer1: TTimer;
ApplicationEvents1: TApplicationEvents;
procedure ServiceAfterInstall(Sender: TService);
procedure ServiceStart(Sender: TService; var Started: Boolean);
procedure ServiceStop(Sender: TService; var Stopped: Boolean);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
function GetServiceController: TServiceController; override;
{ Public declarations }
end;
var
Service1: TService1;
f: TextFile;
Wnd: HWND;
Pos: TPoint;
buff: array[0..255] of char;
NameClass: string;
implementation
{$R *.DFM}
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
Service1.Controller( CtrlCode );
end;
function TService1.GetServiceController: TServiceController;
begin
Result := ServiceController;
end;
procedure TService1.ServiceAfterInstall(Sender: TService);
var
s: string;
begin
s := ExtractFilePath( Application.GetNamePath ) + 'test.txt';
AssignFile( f, s );
if FileExists( s ) then
Append( f )
else
Rewrite( f );
end;
procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
AfterInstall( Sender );
end;
procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
CloseFile( f );
end;
procedure TService1.Timer1Timer(Sender: TObject);
begin
GetCursorPos( Pos );
Wnd := WindowFromPoint( Pos );
GetClassName( Wnd, buff, SizeOf( buff ) );
NameClass := StrPas( buff );
Writeln( f, DateTimeToStr( Now ) + ' ' + ClassName + Format( ' %d %d', [Pos.x,Pos.y] ) );
end;
end.Цитата:
Последний раз редактировалось Decoding, 20.01.2007 в 02:34. |
|
#2
|
||||
|
||||
|
На счет пути, попробуй получать путь к собственной папке по-другому, например:
s := ExtractFileDir(ParamStr(0)) + '\test.txt'; А вот с классом окна - я чего-то в замешательстве, странно вообще... Попробуй реализовать на АПИ сервис,статьи поэтому поводу есть в делфи ворде... |