Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Перехват сообщений Windows Добавлено: 31.03.03 12:16  

Автор вопроса:  Smith | Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой. | ICQ: ненавижу 

Как перехватить сообщение Windows?

Например, для того, чтобы озвучить его.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Gravity



Вопросов: 6
Ответов: 120
 Профиль | | #1 Добавлено: 01.04.03 01:54

Не знаю какие ты собрался сообщения перехватывать ...  но знаю что в программах на VB не существует способов обнаружить сообщения windows. Возможность перехвата и изменения сообщений win, получаемых элементом называется, насколько я знаю, субклассированием...

Субклассирование делается при помощи функции API SetWindowLong, она заменяет текущую функцию окна другой, заданной вами. Её используют вместе с оператором AddressOf (Это только для VB 5.0 и выше)..... Но я этим никогда не занимался так что ... может ты разберёшся ... НО ЕСТЬ ВТОРОЙ СПОСОБ ----- использование нестандартных компонентов DLL

Вот мой совет !!! Так как addressof не может использоваться для перехвата сообщений другим приложениям (не твоему) ....................ТАК ЧТО ИЩИ ЭЛЕМЕНТ DWSBC32D ИЗ СОСТАВА DESAWARE SPYWORKS

Ответить

Номер ответа: 2
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #2 Добавлено: 01.04.03 02:21

2 Славик.

Перехват дело хлопотное. Тут эта тема уже перетиралась, сидеть в памяти и через PEEKMESSAGE перехватывать запросы, все это дело в лупе. Это вобщем, а более конкретно все не так просто. Сейчас просто времени нет, поищи по имени функции в инете.

2Gravity

А вы молодой человек не сбивайте людей с пути истинного, я понимаю что вы почитали немного Эплмана и горите желанием поделится информацией, но для этого надо бы еще и суть понимать а вы извините чушь нагородили... Хотя бы то что addressof не имеет никакого отношения к перехвату сообщений Функция возвращает пойнтер на другую функцию...

Ответить

Номер ответа: 3
Автор ответа:
 Gravity



Вопросов: 6
Ответов: 120
 Профиль | | #3 Добавлено: 01.04.03 03:44

Объясняю:

1-ОЕ никаких эпплманов я не читал !!!!!!!

2-ое : прочитал я это в какой-то статье в инете, и никаких эпплманов не видел ........ и никода с этим на практике не встречался !!! AdressOf и SetWindowLong , насколько я понял из той статьи, определяют процедуру стандартного приложения, которая потом используется в качестве новой функции окна.... вот и всё.

А наезжать нехорошо .... Если бы это мне очень срочно надо было, я бы нормально разобрался безо всяких Биллов гейтсов вроде тебя - MAGNUS 

Ответить

Номер ответа: 4
Автор ответа:
 Gravity



Вопросов: 6
Ответов: 120
 Профиль | | #4 Добавлено: 01.04.03 03:50
И ещё ! ............ Если ты такой вумный, может  ответишь на вопрос: "Как сделать эквалайзер для MP3-Playera ?"

Ответить

Номер ответа: 5
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #5 Добавлено: 01.04.03 19:06

Не читали Эплмана? А вот это зря батенька :). Цитатка то как раз из него была. Вот совет вам мой: вместо неопределенных источников, купите и почитайте WIN32 API и VISUAL BASIC Dan Appleman.

Это библия использования АПИ.  

Кстати ;Dan Appleman является основателем упомянутой вами Desaware.

AdressOf  я уже описывал, а вторая упомянутая ВАМИ вункция устанавливает различные атрибуты окна. Обе эти функции МОГУТ использоваться в процедурах перехвата сообщений(в зависимости от самой процедуры конечно), но напрямую в перехвате не участвуют.

В том то и дело что ВЫ не зная точно о чем говорите , даете совет другому человеку, тем самым сбивая с толку и его и себя.И если ВЫ заметили я не наезжал а в довольно корректной форме поправил вас и попросил хотябы проверять информацию которой снабжаете других , иначе в таком ответе нет никакого смысла. Для этого достаточно было бы почитать МСДН.

И последнее: не очень хорошая манера просить помощи , начиная просьбу словами "Если ты такой вумный". Но это все мелочи. :)

Просто будьте немного аккуратнее в постах.

Ответить

Номер ответа: 6
Автор ответа:
 Gravity



Вопросов: 6
Ответов: 120
 Профиль | | #6 Добавлено: 02.04.03 12:44

Ну знаете уважаемый Magnus, я считаю что лучше говорить то что знаешь !!!!! ЧЕМ бездумно сувать в ответы на вопросы в форуме куски кода (даже иногда взятые с VBNET или с др. сайта) и считать себя самым крутым программистом вселенной :). Причём ТАК ДЕЛАЮТ БОЛЬШИНСТВО общающихся в этом форуме .... :(((

То что знаю, то и говорю, причём я предупредил автора этого вопроса что никогда не занимался перехватом сообщений в винде ... я просто хотел помочь ...... от того что он прочитал мой ответ на вопрос у него мозгов не убавиться !

Ответить

Номер ответа: 7
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #7 Добавлено: 02.04.03 13:56

Вы совершенно правы. Нужно говорить то что знаешь. Но в этом случае вы противоречите сами себе. Вы дали ответ не полностью соотносящийся с вопросом и к тому же неверный. Вопрос был о перехвате сообщение а ответ об изменении функции окна... Не совсем неверно но все же. И еще уважаемый Gravity , поменьше эмоций... Я здесь не модератор и не админ, поэтому не нужно мои слова воспринимать в штыки. Я просто дал вам совет на правах старшего и более опытного. А укорять вас в чем то это не моя задача. ОК?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам