![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
не убиваемый процесс [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-сервиса ?