Показать сообщение отдельно
  #14  
Старый 22.03.2007, 12:09
Алексей1980 Алексей1980 вне форума
Прохожий
 
Регистрация: 03.03.2007
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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

а вторая статья еще больше, там ошибок будет столько что они сюда не влезут.
Ответить с цитированием