Цитата:
Сообщение от Aristarh Dark
В DRKB есть статья посвященная написанию сервисов.
|
там есть две статьи, одна из них
Как управлять сервисом на другом компьютере в W2K?
Постоянная ссылка на статью:
http://vingrad.ru/DELPHI-DLP-000846
компилирую как консольное приложение, вроде код похож больше всего на него(кодировка поехала у коментариев)
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
Windows, Messages, SysUtils,
StdCtrls, SvcMgr;
var
ssStatus: TServiceStatus;
schSCManager,
schService: SC_HANDLE;
begin
schSCManager := OpenSCManager(PChar('Comp1'), //èìÿ êîìïüþòåðà, nil - local machine
nil, // ServicesActive database
SC_MANAGER_ALL_ACCESS); // full access rights
if schSCManager = 0 then exit; //Îøèáêà?
schService := OpenService(
schSCManager, // SCM database
PChar('SQLServerAgent'), // ïîñìîòðè èìÿ â Services.  äàííîì ñëó÷àå - MS Server Agent
SERVICE_ALL_ACCESS);
if schService = 0 then exit; //Îøèáêà?
if not QueryServiceStatus(
schService, // handle to service
ssStatus) then // address of status information structure
exit; //Îøèáêà?
case ssStatus.dwCurrentState of
:
SERVICE_RUNNING: ShowMessage('Ðàáîòàåò!'); // сюда вроде надо вставлять свой код который будет работать нормально?
SERVICE_STOPPED: ShowMessage('Âûêëþ÷åí'); //
// íó è ò.ä.
end;
end;
но при компилировании вылезает куча ошибок, компилятор не может найти API из этого примера, вобще у микрософта апи постоянно меняется, наверное пример уже никуда не годится
Код:
Build
[Error] Project1.dpr(9): Undeclared identifier: 'TServiceStatus'
[Error] Project1.dpr(11): Undeclared identifier: 'SC_HANDLE'
[Error] Project1.dpr(13): Undeclared identifier: 'OpenSCManager'
[Error] Project1.dpr(15): Undeclared identifier: 'SC_MANAGER_ALL_ACCESS'
[Warning] Project1.dpr(16): Comparing signed and unsigned types - widened both operands
[Error] Project1.dpr(17): Undeclared identifier: 'OpenService'
[Error] Project1.dpr(20): Undeclared identifier: 'SERVICE_ALL_ACCESS'
[Warning] Project1.dpr(21): Comparing signed and unsigned types - widened both operands
[Error] Project1.dpr(22): Undeclared identifier: 'QueryServiceStatus'
[Error] Project1.dpr(26): 'OF' expected but identifier 'dwCurrentState' found
[Error] Project1.dpr(26): ',' or ':' expected but 'OF' found
[Error] Project1.dpr(28): Undeclared identifier: 'SERVICE_RUNNING'
[Error] Project1.dpr(28): ':=' expected but ':' found
[Error] Project1.dpr(29): Undeclared identifier: 'SERVICE_STOPPED'
[Error] Project1.dpr(29): Duplicate case label
[Error] Project1.dpr(32): '.' expected but ';' found
а вторая статья еще больше, там ошибок будет столько что они сюда не влезут.