![]() |
|
|
![]()
|
|
| Гость_max07 |
|
|||
|
Unregistered |
Как програмно сделать принудителное закрытие программы? Типа как в Task Meneger Processes.
|
|||
|
||||
| Adil' |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 26.8.2004 Где: Питер Репутация: 4 Всего: 15 |
TerminateProccess
-------------------- Удачи |
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
А поподробней можно?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
подробнее:
делаеш снимок всех процессов в системе ( соответственно имееш handle процесса ) и для нужного тебе выполняеш TerminateProccess() -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
Но TerminateProcess() ето толко функция. Как выглядит само закрытие? Что писат в етой функции?
|
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
Мне нужно закрыть окно например С: диска из моей проги. Ето тоже с TerminateProcess() ?
|
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Этот код убьет процесс с PID-ом 3128...Процесс в системе виндоуз идентифицируется с помощью PID-а. Process ID. Его можно увидить в TaskManager если поставить соответствующие настройки...по дефолту он не показывает...можно получить список всех процессов в виндоуз... Посмотри примеры MSDN CreateToolhelp32Snapshot. Добавлено @ 09:34
Потому что твое окно диска Ц на самом деле поток основного процесса explorer.exe если убьешь его закроются все окошки..и в зависимости от uExitCode сам себя заново запустит или нет... А CloseWindow получает HWND который ты сможешь получить с помощю FindWindow... |
||||
|
|||||
| Гость_max07 |
|
|||
|
Unregistered |
Но CloseWindow() не закрывает окно а опускает в таскбар. По крайней мере у меня так получается. Может что то не так пишу?
HANDLE hWnd; hWnd = GetForegroundWindow(); char szTitle[41] = {0}; GetWindowText(hWnd,szTitle,40); if(AnsiString(szTitle) == "C:\\") CloseWindow(hWnd); Примерно так. |
|||
|
||||
| azesmcar |
|
||||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Извиняюсь, совсем забыл..выписка из MSDN
Для этого есть DestroyWindow() Но что он он не очень хочет работать в данном случае...надо немножко поэкспериментировать а времени нет...
Так нормально работает... Добавлено @ 14:08 Но DestroyWindow много чего другого делает что здесь не написано...грамотней будет его использовать... Добавлено @ 14:09
Проверь, может у тебя заработает, у меня не решается... Это сообщение отредактировал(а) azesmcar - 25.1.2005, 14:07 |
||||||||
|
|||||||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
ты это:
учел? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 6 Всего: 211 |
Уже учел...
Вчера не дочитал..потом посмотрел...ну главное так работает, я так думаю об остальном експлорер сам заботится...но не уверен
|
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
Не убивает етот код прогу. Может ест ещё варианты?
|
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
А есть что нибуть похожее на TerminateProccess() толко не с PID а с Handle' oм?
|
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
есть:
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Гость_max07 |
|
|||
|
Unregistered |
А можно пример исползования?
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |