Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Завершить чужой процесс, корректное завершение 
:(
    Опции темы
bel_nikita
Дата 10.5.2008, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: нет
Всего: 47



Хотелось бы корректно завершить чужой процесс. Как это правильно реализовать?

З.Ы.: Terminate(0) не предлагать


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Rrader
  Дата 11.5.2008, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 6
Всего: 191



Можно попробовать послать главному потоку WM_QUIT


--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
W4FhLF
Дата 11.5.2008, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 3
Всего: 121



Цитата(Rrader @  11.5.2008,  13:27 Найти цитируемый пост)
Можно попробовать послать главному потоку WM_QUIT


Добавлю, что в случае, если приложение не обрабатывает это сообщение или вообще не имеет окна, то корректного универсального способа завершить его не существует. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Akina
Дата 11.5.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(bel_nikita @  11.5.2008,  00:28 Найти цитируемый пост)
Terminate(0) не предлагать 

Ставя условие, неплохо бы его обосновать.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bel_nikita
Дата 12.5.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: нет
Всего: 47



Terminate(0) - это крайний случай, если не получиться корректное завершение.
Возьмем, например, FireFox. Если мы выходим из программы путем File->Exit или нажатием Close - зарешение корректное, происходит закрытие всех окон и т.д. Но если мы "убъем" процесс в TaskManager'е, то это уже не будет корректным завершением.
Предполагаю, что процессу, точнее главному треду, нужно послать WM_QUIT или WM_DESTROY. Только как это делается под Vb? smile  



--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Rrader
  Дата 12.5.2008, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 6
Всего: 191



Код

Private Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" _
  (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  
Const WM_QUIT = &H12
Const ClassName = "MozillaUIWindowClass"

Private Sub Command1_Click()
  Dim ThreadID As Long
  Dim Wnd As Long
  Wnd = FindWindow(ClassName, vbNullString)
  If Wnd = 0 Then Exit Sub
  ThreadID = GetWindowThreadProcessId(Wnd, 0)
  Call PostThreadMessage(ThreadID, WM_QUIT, 0, 0)
End Sub



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0804 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.