Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запуск службы


Страницы:   1 2 3

F@T@L_Err0r ©   (2008-03-17 11:12:00) 

Здравствуйте.Подскажите пожалуйста какиим образом програмно можно запустить виндовсскую службу и как перед этим получить ее имя?Понятно что под администратором.Зараннее спасибо!


Сергей М.   (2008-03-17 17:03:00) [1]

http://forum.chertenok.ru/faq_online.php?n=114


F@T@L_Err0r   (2008-03-17 16:56:00) [2]

Ну ваще то ето уже модификация после очередног оексперемента ... в оригенале ето выглядит так:
WIn32Check(ChangeServiceConfig(Service,SERVICE_WIN32_OWN_PROCESS ,SERVICE_AUTO_START,SERVICE_NO_CHANGE,nil,nil,nil,nil,nil,nil,nil));
А второй параметр SERV ICE_NO_CHANGE ето параметр отвечает насколько я понял из спрвки за восстановление после сбоя или я не прав???
dwErrorControl

Specifies the severity of the error if this service fails to start during startup, and determines the action taken by the startup program if failure occurs. One of the following values can be specified:

Value Meaning
SERVICE_ERROR_IGNORE The startup (boot) program logs the error but continues the startup operation.
SERVICE_ERROR_NORMAL The startup program logs the error and puts up a message box pop-up but continues the startup operation.
SERVICE_ERROR_SEVERE The startup program logs the error. If the last-known-good configuration is being started, the startup operation continues. Otherwise, the system is restarted with the last-known-good configuration.
SERVICE_ERROR_CRITICAL The startup program logs the error, if possible. If the last-known-good configuration is being started, the startup operation fails. Otherwise, the system is restarted with the last-known good configuration.
SERVICE_NO_CHANGE The existing StartType value is not to be changed.


Сергей М.   (2008-03-17 16:39:00) [3]


> SERVICE_NO_CHANGE,SERVICE_AUTO_START,SERV ICE_NO_CHANGE


Фигню написал - фигню и получил.
ты сам-то понял, что ты тут понацарапал ?)


F@T@L_Err0r   (2008-03-17 16:37:00) [4]

WIn32Check(ChangeServiceConfig(Service,SERVICE_NO_CHANGE,SERVICE_AUTO_START,SERV ICE_NO_CHANGE,nil,nil,nil,nil,nil,nil,nil));

Вот эта...Но  в ней вроде б все правильно...


Сергей М.   (2008-03-17 16:08:00) [5]

Выясни, какая конкретно ф-ция возвращает этот отказ


F@T@L_Err0r   (2008-03-17 15:57:00) [6]

>А параметр SC_MANAGER_ALL_ACCESS ты там видел ?

Пробывал то же самое...Отказано в доступе...


Сергей М.   (2008-03-17 15:54:00) [7]

А параметр SC_MANAGER_ALL_ACCESS ты там видел ?


F@T@L_Err0r   (2008-03-17 15:50:00) [8]

Сделал SCManager:=OpenSCManager('',nil,GENERIC_Write);
Тот же результат...


Сергей М.   (2008-03-17 15:40:00) [9]


> блин ведь все так как в справке


Не-а .. все да не все) ..

Перечитывай справку по параметрам OpenSCManager


F@T@L_Err0r   (2008-03-17 15:35:00) [10]

Пишет что отказано в доступе...Но блин ведь все так как в справке...ниче не понимаю...


Сергей М.   (2008-03-17 15:31:00) [11]


> где же я допустил ошибку


Какой ты, однако, мнительный)

Ты у системыспроси, ошибся ты или не ошибся и если ошибся то в чем конкретно !

На то и система, чтобы следить за ошибочностью твоих действий)

Service:=OpenService(чего-то там);
Win32Check(Service <> 0);
Win32Check(ChangeServiceConfig(чего-то там));


F@T@L_Err0r   (2008-03-17 15:24:00) [12]

var
SCManager:THandle;
Service:THandle;
p:PChar;
begin
 SCManager:=OpenSCManager('',nil,GENERIC_READ);
 if SCManager=0 then RaiseLastOSError;
   Service:=OpenService(SCManager,'Messenger',SERVICE_CHANGE_CONFIG or SERVICE_START or SERVICE_STOP);
   ChangeServiceConfig(Service,SERVICE_INTERACTIVE_PROCESS,SERVICE_AUTO_START,SERVI  CE_NO_CHANGE,nil,nil,nil,nil,nil,nil,nil);

Ну дак а я как делаю...вроде б все так же...где же я допустил ошибку...


Сергей М.   (2008-03-17 15:22:00) [13]


> е вижу я где написанно


Врешь)

Это

SERVICE_CHANGE_CONFIG Enables calling of the ChangeServiceConfig function to change the service configuration

видишь ?


clickmaker   (2008-03-17 15:20:00) [14]


> И справку я уже перчитал 100 раз...ну не вижу я где написанно
> с какими параметрами нада запускать OpenService что бы можно
> было изменять свойства

а это что?

BOOL ChangeServiceConfig(
   SC_HANDLE hService,
...

hService

Identifies the service. This handle is returned by the OpenService or CreateService function and must have SERVICE_CHANGE_CONFIG access.


F@T@L_Err0r   (2008-03-17 15:14:00) [15]

>Так и будешь по каждому чиху проверяться ?)

Не ну реально не могу разобратся...поетому и прошу помощи...И справку я уже перчитал 100 раз...ну не вижу я где написанно с какими параметрами нада запускать OpenService что бы можно было изменять свойства...


Сергей М.   (2008-03-17 15:03:00) [16]


> так что ли?


Так и будешь по каждому чиху проверяться ?)


F@T@L_Err0r   (2008-03-17 15:00:00) [17]

var
SCManager:THandle;
Service:THandle;
p:PChar;
begin
  SCManager:=OpenSCManager('',nil,GENERIC_READ);
  if SCManager=0 then RaiseLastOSError;
    Service:=OpenService(SCManager,'Messenger', SERVICE_CHANGE_CONFIGor SERVICE_START or SERVICE_STOP);
    ChangeServiceConfig(Service,SERVICE_INTERACTIVE_PROCESS,SERVICE_AUTO_START,SERVI CE_NO_CHANGE,nil,nil,nil,nil,nil,nil,nil);

так что ли??


Сергей М.   (2008-03-17 14:51:00) [18]


> я ж под админом в винде сижу


Да хоть лежи под админом !)

В справке черным по белому написано, какие параметры нужно указать при вызове OpenService для того чтобы иметь право на изменение конфигурации открытого тобой сервиса.


clickmaker   (2008-03-17 14:45:00) [19]


> Не ну я ж под админом в винде сижу

и что?
это избавляет от необходимости хелп читать?


F@T@L_Err0r   (2008-03-17 14:44:00) [20]

>сам как думаешь, если меняешь конфигурацию, какие права доступа нужно запросить?

Не ну я ж под админом в винде сижу...


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо