Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 30.01.2006, 18:53
Аватар для ska
ska ska вне форума
Прохожий
 
Регистрация: 29.01.2006
Сообщения: 8
Репутация: 10
По умолчанию Процедуры сервисов

Как сделать так чтобы сервис, после его запуска(желательно ч\з определённое время) перезагружал комп?
Ответить с цитированием
  #2  
Старый 31.01.2006, 10:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Трояна пишешь?
Ответить с цитированием
  #3  
Старый 31.01.2006, 13:10
Аватар для ska
ska ska вне форума
Прохожий
 
Регистрация: 29.01.2006
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Трояна пишешь?
Нет.Троян на Делфи слишком много весит Просто программа...
Если знаешь подскажи иль ссылки дай...
Ответить с цитированием
  #4  
Старый 03.02.2006, 19:12
Аватар для Майняк
Майняк Майняк вне форума
Начинающий
 
Регистрация: 03.02.2006
Адрес: Киров
Сообщения: 198
Репутация: 50
По умолчанию

могу наваять, тока завтра-послезавтра, щас некогда.Подождешь?
Ответить с цитированием
  #5  
Старый 04.02.2006, 13:10
Аватар для ska
ska ska вне форума
Прохожий
 
Регистрация: 29.01.2006
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Майняк
могу наваять, тока завтра-послезавтра, щас некогда.Подождешь?
Конечно подожду. сенкс)
Ответить с цитированием
  #6  
Старый 04.02.2006, 14:16
Аватар для Майняк
Майняк Майняк вне форума
Начинающий
 
Регистрация: 03.02.2006
Адрес: Киров
Сообщения: 198
Репутация: 50
По умолчанию

да там, млин, не сложно, тока вот не срабатывает иногда.. Забыл ЧТО надо прописать чтоб сработало(кроме приоритетов..)Вспомню - отпишу обяз-но .
Ответить с цитированием
  #7  
Старый 05.02.2006, 00:40
Аватар для ska
ska ska вне форума
Прохожий
 
Регистрация: 29.01.2006
Сообщения: 8
Репутация: 10
По умолчанию

ок, когда вспомнишь напиши обязательно
а этот скрипт пойдет
Procedure ShutdownComputer;
var
ph:THandle;
tp,prevst:TTokenPrivileges;
rlWORD;
begin
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PR IVILEGES or TOKEN_QUERY,ph);
LookupPrivilegeValue(Nil,'SeShutdownPrivilege',tp. Privileges[0].Luid);
tp.PrivilegeCount:=1;
tp.Privileges[0].Attributes:=2;
AdjustTokenPrivileges(ph,FALSE,tp,SizeOf(prevst),p revst,rl);
ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF,0);
end;
Ответить с цитированием
  #8  
Старый 05.02.2006, 09:00
Аватар для Майняк
Майняк Майняк вне форума
Начинающий
 
Регистрация: 03.02.2006
Адрес: Киров
Сообщения: 198
Репутация: 50
По умолчанию

млин, дело в том, что в сервисе не так просто: прописал и все тут..
EWX_SHUTDOWN or EWX_POWEROFF - так не надо. М-у ними есть разница. Порой - существенна.
Твой код не проверял. Но вот мой:
http://www.sysman.ru/index.php?showtopic=3047

Последний раз редактировалось Майняк, 05.02.2006 в 09:39.
Ответить с цитированием
  #9  
Старый 05.02.2006, 10:58
Аватар для ska
ska ska вне форума
Прохожий
 
Регистрация: 29.01.2006
Сообщения: 8
Репутация: 10
По умолчанию

сенкс помогло))
Ответить с цитированием
  #10  
Старый 21.03.2007, 18:58
Алексей1980 Алексей1980 вне форума
Прохожий
 
Регистрация: 03.03.2007
Сообщения: 25
Репутация: 10
По умолчанию

А есть какой нибудь нормальный исходник?
Хотел бы понять куда можно вставлять нормальный код
http://forum.sysman.ru/index.php?showtopic=3047
тут есть код но уж очень навороченный, да еще и комп выключает, еще он у меня подвис в положении завершения сразу после запуска, но мой код так и не выполнил
я прикрепил проект в котором после эвента ничего не происходит, хотя должно
winexec('dir > C:\Service1.txt',SW_SHOWNORMAL);

как облагородить проект что бы эвент заработал?
Вложения
Тип файла: zip Service1.zip (5.9 Кбайт, 8 просмотров)
Ответить с цитированием
  #11  
Старый 21.03.2007, 19:42
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

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

Цитата:
Сообщение от Aristarh Dark
Господа, с выключением компа без участия юзвера - в личку. Или буду ругаться.
в инете нет рабочих исходников сервисов
http://www.delphisources.ru/forum/showthread.php?t=1215
вот тут есть листинг но он у меня ругается на ApplicationEvents1: TApplicationEvents;
а без него вобще ничего не делает, да и с ним неизвестно что будит
как можно понять рабуту сервисов если нет ни одного рабочего, в который можно подставлять код из документации. В сервисе кажется в шапке много чего должно быть забито, я просто не смогу с нуля все настроить, все равно приду сюда и покажу нерабочий код... или не сюда.
Исходник нужен для delphi 7 и для win2k или xp а то был для NT анализатор лога, не пошол.
P.S. не надо мне отвечать в личку, могут послать какой нибудь пакостный код, так что лучше сразу сюда.

Последний раз редактировалось Алексей1980, 22.03.2007 в 10:31.
Ответить с цитированием
  #13  
Старый 22.03.2007, 11:02
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

В DRKB есть статья посвященная написанию сервисов.
Ответить с цитированием
  #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

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

Последний раз редактировалось Алексей1980, 22.03.2007 в 12:13.
Ответить с цитированием
  #15  
Старый 22.03.2007, 12:46
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Иногда полезно немного подумать и полазить в исходниках.
uses WinSvc
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 00:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter