Перехват окна завершения работы.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Перехват окна завершения работы.

Сообщение Williams » 21.05.2009 (Чт) 18:55

Нужно предотвратить появление вышеуказанного окна. Известно его имя класса.
И вы думаете, что вас оставят в живых после прочтения этого поста?

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Перехват окна завершения работы.

Сообщение awl100Alex » 21.05.2009 (Чт) 21:30

Код: Выделить всё
hWnd = FindWindow(“lpClassName”,vbNullString)
DestroyWindow hwnd

или
Код: Выделить всё
PostMessage hWnd, WM_CLOSE, 0&, 0&

Такие варианты разве не подходят? Или тебе нужно именно перехватить?..

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Перехват окна завершения работы.

Сообщение Williams » 21.05.2009 (Чт) 21:52

Точнее говоря, предотвратить появление. Закрыть я могу.
И вы думаете, что вас оставят в живых после прочтения этого поста?

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Перехват окна завершения работы.

Сообщение awl100Alex » 21.05.2009 (Чт) 22:13

А какое у этого окна имя класса?

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Перехват окна завершения работы.

Сообщение Williams » 21.05.2009 (Чт) 23:26

Насколько я знаю, DimmedWindowClass.

Добавлено: в общем диалог завершения работы имеет класс #32770, родителем которого является DimmedWindowClass.
И вы думаете, что вас оставят в живых после прочтения этого поста?

awl100Alex
Постоялец
Постоялец
 
Сообщения: 355
Зарегистрирован: 29.01.2008 (Вт) 15:19
Откуда: Украина

Re: Перехват окна завершения работы.

Сообщение awl100Alex » 22.05.2009 (Пт) 0:22

диалог завершения работы имеет класс #32770

Попробуй перехватить аналогично алгоритму запрета запуска TaskManager по тому же классу #32770. Смотри пример внизу страницы... http://centrlan.ru/node/27158
или здесь более детально...
http://bbs.vbstreets.ru/viewtopic.php?t=27015
Если не получится... тогда, как второй вариант, можно попробовать поставить хук-точку WH_CBT и в процедуре обработки CBTProc отловить событие HCBT_CREATEWND в wParam будет хэндл создаваемого окна, который можно проигнорировать. Более детально в MSDN.

Williams
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1280
Зарегистрирован: 06.05.2008 (Вт) 18:35
Откуда: System.Reflection.Williams (увидел себя в зеркале :))

Re: Перехват окна завершения работы.

Сообщение Williams » 22.05.2009 (Пт) 14:58

систему работы с WH_CBT кажется понял. Посмотрим, получится ли с этим окном...
И вы думаете, что вас оставят в живых после прочтения этого поста?


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 51

    TopList  
cron