Как снять процесс в XP???

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VBKerish
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 18.04.2004 (Вс) 10:49

Как снять процесс в XP???

Сообщение VBKerish » 18.04.2004 (Вс) 10:52

subj.
Пробовал TerminateProcess - не снимаются.

mefestofele
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 17.04.2004 (Сб) 22:46
Откуда: Россия Тольятти

В смысле

Сообщение mefestofele » 18.04.2004 (Вс) 11:01

Чё ты имееш в веду :?:

VBKerish
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 18.04.2004 (Вс) 10:49

Сообщение VBKerish » 19.04.2004 (Пн) 13:08

Имею ввиду, то что мне нужно через VB убить работающий процесс (приложение) в Виндах XP.
В 98-х это делалось через API - TerminateProcess.
Может кто сталкивался?

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 02.07.2004 (Пт) 16:56

И в этом топике молчат про убивание процессов в NT, что это засекреченно!?

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 03.07.2004 (Сб) 13:01

Нет это незасекреченно ! Папробуй просто по заголовку окна отлавливать прогу через тимер ! Я раньше задавал такой вапрос ищи по форуму! :wink:
Max!

Eduard
Бывалый
Бывалый
 
Сообщения: 254
Зарегистрирован: 31.08.2003 (Вс) 17:12
Откуда: Эстония

Сообщение Eduard » 03.07.2004 (Сб) 17:46

Max! писал(а):Нет это незасекреченно ! Папробуй просто по заголовку окна отлавливать прогу через тимер ! Я раньше задавал такой вапрос ищи по форуму! :wink:

Неет. Никаких заголовков я незнаю, известно только путь к файлу, через EnumProcess будет известно и PID этого процесса, и убить этот процесс нахер надо с помощью этого pID'a !!! - это делает TerminateProcess, но в NT он не идет, хотя сама Microsoft в Msdn пишет что идет!

А через заголовок я только однo окно замочу, а надо ВЕС процесс вместе с его thread'ами и всеми ихними окнами.

Leon_
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 333
Зарегистрирован: 19.05.2004 (Ср) 16:31
Откуда: Moscow

Сообщение Leon_ » 05.07.2004 (Пн) 8:17

8) Ну раз тебе нужно именно с помощью ProcessID, то используй функцию
HANDLE OpenProcess(
DWORD dwDesiredAccess, // access flag
BOOL bInheritHandle, // handle inheritance option
DWORD dwProcessId // process identifier
);

Тут нужно сделать так:
Код: Выделить всё
HANDLE hProcess = ::OpenProcess(PROCESS_TERMINATE, NULL, dwProcessId);
::TerminateProcess(hProcess, 0);

В NT все это работает.

Шурик
Самогонщик
Самогонщик
Аватара пользователя
 
Сообщения: 1657
Зарегистрирован: 30.06.2003 (Пн) 13:27
Откуда: из запоя :))))) Матных сообщений: 972

Сообщение Шурик » 05.07.2004 (Пн) 14:16

можно пойти геморойным путем :D
есть команда в XP taskkill /PID или tskill /PID
PID - это номер процесса
чтобы узнать номер процесса есть команда tasklist
ну а дальше дело техники :wink:

Leon_
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 333
Зарегистрирован: 19.05.2004 (Ср) 16:31
Откуда: Moscow

Сообщение Leon_ » 05.07.2004 (Пн) 14:44

2 строчки кода -- еще не геморройный путь :)

А для MAX надежности можно снимать процесс с помощью Microsoft® Process Kill Utility под "говорящим" названием kill.exe
Удаляет по PID, по имени образа, по заголовку, etc.
Подробности-- Kill.exe /?
Вложения
kill.zip
(4.58 Кб) Скачиваний: 139


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 66

    TopList