Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как закрыть процесс, созданный ShellExecute()?

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sawamail

Цитата:
Ладно проехали. Если чего-нибудь надыбаю по этой теме - стукнусь.

Спасибо! Договорились.

----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7855 | Зарегистр. 15-07-2003 | Отправлено: 20:58 15-11-2003
sawamail



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mihas83
Запускаешь процесс для cmd.exe, запоминаешь ProcessID
Далее, используя Process32First и Process32Next, пробегаешь по списку процессов и ищещь родителя = ProcessID (PROCESSENTRY32). Их убиваешь. Потом убиваешь ProcessID.
 
Добавлено
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q175/0/30.ASP&NoWebContent=1

Всего записей: 1520 | Зарегистр. 22-04-2002 | Отправлено: 12:26 17-11-2003
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sawamail
"HOWTO: Enumerate Applications Using Win32 APIs" видел и раньше, но хотелось что-то "попроще"...

Всего записей: 7855 | Зарегистр. 15-07-2003 | Отправлено: 14:50 17-11-2003
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Process32First и Process32Next,

Это по моему для Вынь 9х.
Для НТ что вроде этого

Цитата:
 
lpfEnumProcesses = (BOOL (WINAPI *) (DWORD *, DWORD, DWORD *))
GetProcAddress (hInstLib, "EnumProcesses");
      lpfEnumProcessModules = (BOOL (WINAPI *) (HANDLE, HMODULE *,
DWORD,
LPDWORD))
GetProcAddress (hInstLib, "EnumProcessModules");
 



----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 02:01 18-11-2003
sawamail



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt

Цитата:
Цитата: Process32First и Process32Next,  
 
Это по моему для Вынь 9х.  
Для НТ что вроде этого  

 
Process32First, Process32Next
 
Requirements
Client: Included in Windows XP, Windows 2000 Professional, Windows Me, Windows 98, and Windows 95.
Server: Included in Windows Server 2003 and Windows 2000 Server.
Header: Declared in Tlhelp32.h.
Library: Use Kernel32.lib.

Всего записей: 1520 | Зарегистр. 22-04-2002 | Отправлено: 10:22 18-11-2003 | Исправлено: sawamail, 10:34 18-11-2003
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ShIvADeSt, sawamail

Цитата:
Process32First, Process32Next  

 
Это уже с Рихтера:  
 

Цитата:
 Чтобы упростить работу с этой базой данных, Microsoft создала набор функций под общим названием Performance Data Helper (содержащийся в PDH.dll). Если Вас интересует более подробная информация о библиотеке PDH.dll, ищите раздел по функциям Performance Data Helper в документации Platform SDK  
 
...в Windows 95 и Windows 98 такой базы данных нет. Вместо них предусмотрен набор функций, позволяющих перечислять процессы. Они вклю чены в ToolHelp API За информацией о них я вновь отсылаю Вас к документации Platform SDK — ищите разделы по функциям Process32First и Process32Next,  
 
Но самое смешное, что разработчики Windows NT, которым ToolHelp-функции явно не нравятся, не включили их в Windows NT. Для перечисления процессов они создали свой набор функций под общим названием Process Status (содержащийся в PSAPI.dll). Так что ищите в документации Platform SDK раздел по функции Enum Processes.  
 
Microsoft, которая до сих пор, похоже, старалась усложнить жизнь разработчикам инструментальных средств и утилит, все же включила ToolHelp-функции в Windows 2000. Наконец-то и эти разработчики смогут унифицировать свой код хотя бы для Windows 95, Windows 98 и Windows 2000!  
 
...программа "04 ProcessInfo.exe" демонстрирует, как создать очень полезную утилиту на основе ToolHelp-функций  


----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7855 | Зарегистр. 15-07-2003 | Отправлено: 11:18 18-11-2003
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A есть ли у кого-то опыт по ожиданию функцией WaitForSingleObject() не ''законного'' HANDLE hHandle,  а HINSTANCE возвращаемого ShellExecute?
Или для этого надо заспустить процесс только функцией CreateProcess() - чтобы иметь hHandle?


----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7855 | Зарегистр. 15-07-2003 | Отправлено: 17:57 21-06-2004
mihas83



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Moлчание, свидетельствует об отсутствиии идей?
Поэтому придется использовать:
 
SHELLEXECUTEINFO shInfo;  
ZeroMemory(&shInfo, sizeof(shInfo));  
shInfo.cbSize = sizeof(shInfo);  
shInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
shInfo.lpFile = TEXT("winzip32.exe");  
shInfo.lpParameters = sCommandLine;
shInfo.lpVerb = TEXT("open");  
shInfo.hwnd = GetSafeHwnd();
shInfo.nShow = SW_HIDE;
shInfo.lpDirectory   = NULL;
 
//...  
ShellExecuteEx(&shInfo);  
 
И подождать ее стандартным способом:  
...........................  
     WaitForSingleObject(shInfo.hProcess, INFINITE);

----------
Мы знаем: время растяжимо. Оно зависит от того,
Какого рода содержимым Вы заполняете его. (C. Маршак)

Всего записей: 7855 | Зарегистр. 15-07-2003 | Отправлено: 07:16 22-06-2004
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как закрыть процесс, созданный ShellExecute()?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru