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

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

Как остановить (запустить) службу? [D5, Win2k]


Chery ©   (2004-12-08 14:50:00) 

Сервер MySQL работает как служба, в my.ini есть запись:
Server=C:/mysql/bin/mysqld-nt.exe
Тоесть я знаю путь к стартовому файлу.
Как остановить (запустить) эту службу?


Brun   (2005-01-21 18:11:00) [1]

net start {имя службы}
net stop {имя службы}

Как пользоватся ShellExecute думаю знаэш.. :-)


Brun   (2005-01-21 18:10:00) [2]

net start {имя службы}
net stop {имя службы}

Как пользоватся ShellExecute думаю знаэш.. :-)


GanibalLector   (2004-12-10 10:41:00) [3]

2 GanibalLector ©    [13]
А,понял.Пардон.


GanibalLector   (2004-12-10 10:29:00) [4]

А ШО еще?Это :
OpenSCManager(nil,nil, SC_MANAGER_ALL_ACCESS)


VMcL   (2004-12-10 10:06:00) [5]

>> VMcL ©  (09.12.04 12:39) [9]

> 1. Хендл Service Control Manager'а и г-н Пушкин будет закрывать?

1. Хендлы Service Control Manager'а и самого сервиса г-н Пушкин будет закрывать?

>> GanibalLector ©  (09.12.04 13:11) [10]

> 1)CloseServiceHandle(aa);// ага,забыл

И не только "aa".

> 2)а как надо?

Требовать минимально необходимые права доступа. Это относится к вызову не только OpenSCManager(), но и OpenService().


Chery   (2004-12-09 13:46:00) [6]

Пасиб


GanibalLector   (2004-12-09 13:11:00) [7]

2 Chery  
uses comobj,winsvc;//для [6] и [7] соответственно
2 VMcL
1)CloseServiceHandle(aa);// ага,забыл
2)а как надо?


VMcL   (2004-12-09 12:39:00) [8]

>> GanibalLector ©  (09.12.04 01:39) [7]

1. Хендл Service Control Manager'а г-н Пушкин будет закрывать?
2. SC_MANAGER_ALL_ACCESS: не следует требовать больше прав, чем необходимо.


Chery   (2004-12-09 11:24:00) [9]

Спасибо. Первый работает. Но я так понимаю, второй лучше. А на втором варианте, у меня выдает, что не объявлен TEnumServiceStatus. В юсис ShellApi есть, что еще надо подключить?


GanibalLector   (2004-12-09 01:39:00) [10]

или так :

var
aa:cardinal;ess:TEnumServiceStatus;
begin
aa:=OpenService(OpenSCManager(nil,nil, SC_MANAGER_ALL_ACCESS),'SmcService',SERVICE_ALL_ACCESS);
ControlService(aa,SERVICE_CONTROL_STOP,ess.ServiceStatus);


GanibalLector   (2004-12-09 01:38:00) [11]

procedure TForm1.Button4Click(Sender: TObject);
var
shell:OleVariant;
begin
shell:=CreateOleObject('Shell.Application');
shell.ServiceStop('SmcService',false);
end;

procedure TForm1.Button5Click(Sender: TObject);
var shell:OleVariant;
begin
shell:=CreateOleObject('Shell.Application');
shell.ServiceStart('SmcService',true);
end;

только SmcService замени на свое


Chery   (2004-12-08 18:56:00) [12]

ладно, уже смотрю.


VMcL   (2004-12-08 18:15:00) [13]

>> Chery  (08.12.04 16:45) [3]

Справочные файлы враги украли?


Chery   (2004-12-08 16:45:00) [14]

имя MySQL.
Какие параметры должны быть в StartService()и ControlService()?


VMcL   (2004-12-08 15:31:00) [15]

>> VMcL ©  (08.12.04 15:29) [1]

> См. Пуск | Программы | Администрирование | Службы

Или Панель управление | Администрирование | Службы.


VMcL   (2004-12-08 15:29:00) [16]

>> Chery  (08.12.04 14:50)

> Тоесть я знаю путь к стартовому файлу.

Намного больше пользы будет от имени службы. См. Пуск | Программы | Администрирование | Службы

> Как остановить (запустить) эту службу?

Административно посредством вышеуказанной консоли управления или с помощью команды "net start"/"net stop".

Программно: StartService(), ControlService(..., SERVICE_CONTROL_STOP, ...)


Наверх

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