|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Процедуры сервисов
Как сделать так чтобы сервис, после его запуска(желательно ч\з определённое время) перезагружал комп?
|
#2
|
||||
|
||||
Трояна пишешь?
|
#3
|
||||
|
||||
Цитата:
Если знаешь подскажи иль ссылки дай... |
#4
|
||||
|
||||
могу наваять, тока завтра-послезавтра, щас некогда.Подождешь?
SysMan. C++Builder Internet/Intranet Programming. |
#5
|
||||
|
||||
Цитата:
|
#6
|
||||
|
||||
да там, млин, не сложно, тока вот не срабатывает иногда.. Забыл ЧТО надо прописать чтоб сработало(кроме приоритетов..)Вспомню - отпишу обяз-но .
SysMan. C++Builder Internet/Intranet Programming. |
#7
|
||||
|
||||
ок, когда вспомнишь напиши обязательно
а этот скрипт пойдет 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
|
||||
|
||||
млин, дело в том, что в сервисе не так просто: прописал и все тут..
EWX_SHUTDOWN or EWX_POWEROFF - так не надо. М-у ними есть разница. Порой - существенна. Твой код не проверял. Но вот мой: http://www.sysman.ru/index.php?showtopic=3047 SysMan. C++Builder Internet/Intranet Programming. Последний раз редактировалось Майняк, 05.02.2006 в 09:39. |
#9
|
||||
|
||||
сенкс помогло))
|
#10
|
|||
|
|||
А есть какой нибудь нормальный исходник?
Хотел бы понять куда можно вставлять нормальный код http://forum.sysman.ru/index.php?showtopic=3047 тут есть код но уж очень навороченный, да еще и комп выключает, еще он у меня подвис в положении завершения сразу после запуска, но мой код так и не выполнил я прикрепил проект в котором после эвента ничего не происходит, хотя должно winexec('dir > C:\Service1.txt',SW_SHOWNORMAL); как облагородить проект что бы эвент заработал? |
#11
|
||||
|
||||
Господа, с выключением компа без участия юзвера - в личку. Или буду ругаться.
|
#12
|
|||
|
|||
Цитата:
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
|
||||
|
||||
В DRKB есть статья посвященная написанию сервисов.
|
#14
|
|||
|
|||
Цитата:
Как управлять сервисом на другом компьютере в 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; Код:
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
|
||||
|
||||
Иногда полезно немного подумать и полазить в исходниках.
uses WinSvc |