Ловля сообщений чужим окнам

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Ловля сообщений чужим окнам

Сообщение Kovu » 06.05.2005 (Пт) 18:27

Есть такой код:
Sub SysFreeze
dim lp&
lp&=EnumWindows(addressof EnFunk,0)
end sub

function EnFunk(BYVAL hwnd as long, ByVal lpData as long)
if hwnd<> form1.hwnd then
redim preserve hwndmass(ubound(hwndmass)+1)
redim preserve PrevFunk(ubound(PrevFunk)+1)
hwndmass(UBound(hwndmass))=hwnd
PrevFunk(UBound(PrevFunk))=SetWindowLong _(hwnd,GWL_WNDPROC,addressof NewWinProc)
End If
EnFunk=1
End Function

function NewWinProc(ByVal hwnd as long,ByVal uMsg as Long, ByVal wParam as long,ByVal lParam as Long) as long
NewWinProc=0
End Function


А заморозить таким способом можно только своё окно(если убрать условие) или ещё лучше VB при отладке

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.05.2005 (Пт) 20:19

Вопрос-то в чём? :-)
Изображение

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 06.05.2005 (Пт) 20:20

А заморозить таким способом можно только своё окно??? (если убрать условие) или ещё лучше VB при отладке

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 13.05.2005 (Пт) 17:07

Вопрос в том, почему сабклассинг нельзя применить к чужим окнам? :wink:

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 13.05.2005 (Пт) 17:09

Почему нельзя? Можно. В Windows 9x.
Lasciate ogni speranza, voi ch'entrate.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 13.05.2005 (Пт) 17:27

Amed
Если ты не знаешь , что такое условная конструкция, я не виноват.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 13.05.2005 (Пт) 17:41

alibek
А в ХР? Может кто-нибудь знает как? :?: :)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.05.2005 (Пт) 18:21

Kovu писал(а):Amed
Если ты не знаешь , что такое условная конструкция, я не виноват.

Моя цитата была адресована Тёмычу.

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 13.05.2005 (Пт) 18:29

Amed
Ну извини, обидел :oops:

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 13.05.2005 (Пт) 19:40

Да не-е, я не обиделся, отнюдь.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 13.05.2005 (Пт) 20:44

Kovu писал(а):Вопрос в том, почему сабклассинг нельзя применить к чужим окнам? :wink:

Потому что у каждого процесса своё адресное пространство. Значит, сабклассер должен быть в том же процессе, где и окно. Как его туда запихнуть - твоё личное дело. Можно, например, через хук ( http://bbs.vbstreets.ru/viewtopic.php?t=16020 )
Изображение


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 166

    TopList