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

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

не убиваемый процесс [D5, WinXP]


Talla2k ©   (2004-02-07 14:18:00) 

Есть некий процесс,причем: приоритет нормальный, потоков 18.
И возникла необходимость убить его.
Стандартый способ не помогает(которым все остальное могу убить)

   ...
   ID:= StrToInt(ListView1.Selected.SubItems[0]);
   hProcess:= OpenProcess(PROCESS_ALL_ACCESS, false, ID);
   if hProcess <> INVALID_HANDLE_VALUE then begin
   TerminateProcess(hProcess, 0) ;
   CloseHandle(hProcess);  end;
   ...//что-то типа такого

Кроме того,даже не могу его убить из Диспетчера задач.Диспетчер говорит,что нет прав доступа.
Как быть????


Songoku   (2004-02-11 13:53:00) [1]

hProcess:= OpenProcess(PROCESS_TERMINATE, false, ID);
Poprobui sdeat' TAK


Talla2k   (2004-02-10 00:33:00) [2]

Всем БОЛЬШОЕ спасибо,разобрался!!!

Вот решение 2 способами:
//для остановки
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);
end;

var shell:OleVariant;
begin
shell:=CreateOleObject('Shell.Application');
shell.ServiceStop('SmcService',false);
end;

// для старта

var shell:OleVariant;
begin
shell:=CreateOleObject('Shell.Application');
shell.ServiceStart('SmcService',true);
end;

var
aa:cardinal;ess:Pchar;
begin
aa:=OpenService(OpenSCManager(nil,nil, SC_MANAGER_ALL_ACCESS),'SmcService',SERVICE_START);
StartService(aa,0,ess);
end;

З.Ы. Вопрос к Polevi .
А где найти описания к командам сервисов через OleObject???
Для запуска сервиса по аналогии сам команду(ServiceStart) выдумал,а она оказывается ТА! :)


sVic   (2004-02-09 10:49:00) [3]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1075355181&n=5


Polevi   (2004-02-09 09:44:00) [4]

procedure TForm1.Button1Click(Sender: TObject);
var
 shell:OleVariant;
begin
 shell:=CreateOleObject('Shell.Application');
 shell.ServiceStop('Sygate Personal Firewall',false);
end;


Digitman   (2004-02-09 09:35:00) [5]


> Как из Delphi отключить сервис???(причем запученный)


послать ему команду stop
если сервис допускает остановку, он остановится, и процесс сервиса завершится (но только в том случае, если процесс этот реализует только один сервис, потому что в общем случае процесс может реализовывать более чем один сервис)


Serge_   (2004-02-09 00:02:00) [6]

Поищи в HELP по Win32SDK
функцию SetServiceStatus


KosilkA   (2004-02-08 14:27:00) [7]

ищи инфу по TerminateProcess + получение debug-привилегии


Talla2k   (2004-02-08 14:22:00) [8]

Ну подскажите же!!!


Talla2k   (2004-02-08 01:41:00) [9]

>to DNS
Мне действия необходимо сделать программно.
Как из Delphi отключить сервис???(причем запученный)


Nous Mellon   (2004-02-07 20:54:00) [10]

Удалено модератором
Примечание: Offtopic


DNS   (2004-02-07 18:25:00) [11]

Отключить сервис и поставить не загружаться ... И больше его не будет... Если у тебя нет сети и ты не подключен к инету - то там еще много можно отключить... Кстати если тебе не нравиться "новый" стиль ХР (встречал я таких людей :(
то отключи службу тем :)


Talla2k   (2004-02-07 17:34:00) [12]

>средствами станд.консоли Services убедись в том,
>что Sygate Personal Firewall не фигурирует в списке инсталлированных в системе сервисов

Убедился в том,что он ТАМ. :(
И что, теперь никак нельзя его замочить???


Digitman   (2004-02-07 14:40:00) [13]

первый раз слышу. что какой-то файрвол, пусть даже и самый захудалый, был обычным приложением


> Судя по всему нет


на основании чего такие умозаключения ? ты видишь этот процесс в списке процессов taskmanager'а ? это еще ни о чем не говорит

средствами станд.консоли Services убедись в том, что Sygate Personal Firewall не фигурирует в списке инсталлированных в системе сервисов


Talla2k   (2004-02-07 14:36:00) [14]

Судя по всему нет.Это процесс фаервола Sygate Personal Firewall.


Digitman   (2004-02-07 14:27:00) [15]

это процесс NT-сервиса ?


Наверх

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