SendMessage

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

SendMessage

Сообщение kirrun » 25.04.2005 (Пн) 12:33

Блин... Объясните плиз вкратце что такое SendMessage и с чем его едят... Это ж вроде для отправки какого-то сообщения окну... Тогда такие вопросы:
    Какие сообщения можно отправлять? (и можно ли любой стринг отправить?)
    Как выловить приход сообщения и узнать что там написано?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 25.04.2005 (Пн) 12:58

Это возможность передать определённые параметры с помощью опеределённых допустимых сообщений, т.е. команд конкретному окну.

У каждого типа окна есть свой перечень сообщений, которое оно в состоянии обработать.

Можно определить своё сообщение, понятное только определённым окнам.

Любой стринг просто так отправлять нельзя. Вначале нужно зарегистрировать в системе своё пользовательское сообщение, и , естетвенно, продумать, как следует его обрабатывать на приёмном конце. Для этой цели есть какая-то ф-я, но я не помню, как она называется.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 25.04.2005 (Пн) 13:11

угу... пасиб... Тада следующая батарея вопросов
    Что за функция для регистрации?
    Чем отличается PostMessage?
    Как еще можно перекинуть сообщение программе (winsck не предлагать =))
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

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

Сообщение alibek » 25.04.2005 (Пн) 13:45

Предлагаю сходить в MSDN и читать, читать, читать...
Lasciate ogni speranza, voi ch'entrate.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 25.04.2005 (Пн) 14:29

Предложение отвергнуто ибо

1) Там слишком много, а мне надо только вкратце
2) Там как-то все оч сложно (в плане оглавления и поиска)
3) Лень
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 25.04.2005 (Пн) 18:19

3) Если лень - можно уборкой помещений заниматься, а не программировать
2) MSDN, IMHO, структурирована очень хорошо и понятно
1) Вкратце тебе уже объяснил Alexanbar

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение Amed » 25.04.2005 (Пн) 19:42

kirrun, спроси для начала у Яндекса, если к MSDN индивидуальная непереносимость.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 25.04.2005 (Пн) 19:44

эххх.. злые вы все... уйду я от вас...

Ладно.. авось, брат Гугля поможет...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 25.04.2005 (Пн) 22:13

Специально для ленививых решил не поленится, и нашел ф-ю для регистрации пользовательскго сообщения:

см. RegisterWindowMessage

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

P.S. не жалей времени, потраченного на изучение SendMessage. Это очень полезная штука, особенно тогда, когда средствами VB что-то сделать нельзя.

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 26.04.2005 (Вт) 20:21

А как вообще можно перекинуть сообщение программе (или окну)? Всмысле, любое? Ну, разумеется, кроме винсока =)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 26.04.2005 (Вт) 20:58

Что значит "сообщение"? А "всмысле, любое" - это как?
Ну можно SMS послать с сотового. Текст любой, огран 127 символов английского за раз.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

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

Сообщение Amed » 26.04.2005 (Вт) 21:17

Интересуетесь передачей данных между программами? В поиск по форуму ;)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 26.04.2005 (Вт) 21:45

А по какому слову искать не подскажете? ;)
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

GM
programador
programador
 
Сообщения: 1427
Зарегистрирован: 24.06.2003 (Вт) 15:56
Откуда: 194.67.52.100

Сообщение GM » 26.04.2005 (Вт) 22:57

SendMessage, отличается от PostMessage, тем что первый ждет пока окно обработает это сообщение, второй возращает управления программе немедленно.
Код: Выделить всё
Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Где hwnd, хендл окна. Окном также есть почти любой контрол(Frame,Button). В VB можна узнать через Объект.hwnd
wMsg - cобстевенно само сообщение, универсальные месаджы, начинаються на WM_ (например WM_NCLBUTTONDOWN), для каждого вида контрола уже по другому, например для TextBox, EM_*, как понимаю от Edit Message(в винде TextBox называется Edit'ом)
wParam - дополнительный параметр
lParam - дополнительный параметр, через него можна передавать что угодно, например струкутуры
Надеюсь понятно :roll:

ЗЫ: Все никак не понимаю причем тут винсок. Что-то мне напоминает ситуацию как кто-то на форуму хотел через винсок на COM1 порт данные отправлять :roll:
الفيجوال بيسك الرابح

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

Сообщение tyomitch » 26.04.2005 (Вт) 23:03

2GM: а чем, по-твоему, отличается SendNotifyMessage от PostMessage?
Хинт: разница далеко не только в том, что Post* возвращается немедленно.
Изображение

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 13:38

Винсок при том, что мне нужно передать строку от проги к другой (то есть прога запускается, начинает слушать порт, если он занят - вывод: другая копия уже запущена, значит нада сравнить версии и тд...). Вот я жто и делал через винсок, а потом подумпал, что наврено есть способ получше... Вот мне и надо его найти...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

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

Сообщение tyomitch » 27.04.2005 (Ср) 14:24

kirrun, WM_COPYDATA тебе поможет
Изображение

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.04.2005 (Ср) 14:34

ищи по interprocesscommunucations IPC

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 14:37

tyomitch писал(а):kirrun, WM_COPYDATA тебе поможет


Поподробнее...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 14:54

Так-ссс... Такая ситуация: перыв форум нашел только два подходящих (вроде) способа... Маилслтоы и WM_COPYDATA...

Про слоты на форуме ничего толкового нету... Объясните плиз...

А про WM_Copydata вот: http://www.vbaccelerator.com/home/NET/Code/Libraries/Windows_Messages/Simple_Interprocess_Communication/article.asp но там ниче не понятно.. Объясните вкратце и с примерами...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.04.2005 (Ср) 15:06


kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 15:07

Уже посмотрев на адрес страницы туда не полезу!
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 15:08

А если у юзера что-то в буфере важное?
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.04.2005 (Ср) 15:10


kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 15:13

Хотя поскоку там тока букмарк... может и стоит посомтреть...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.04.2005 (Ср) 15:18

Interprocess Communication Mechanisms

IPC Mechanism Win2000 WinNT Win9x Win32s(1) Win16(2) MS-DOS(2) POSIX OS/2
------------- ----- ----- ------ -------- -------- -------- ----- -----

DDE YES YES YES YES YES NO NO NO
OLE 1.0 YES YES YES YES YES NO NO NO
OLE 2.0 YES YES YES YES YES NO NO NO
NetBIOS YES YES YES YES YES YES NO YES
Named pipes YES YES YES(3) YES(3) YES(3) YES(3) YES(4) YES
Windows sockets YES(5) YES(5) YES YES YES(5) NO NO(6) NO
Mailslots YES YES YES YES(3) NO NO NO YES
Semaphores YES YES YES NO NO NO YES YES
RPC YES YES YES(7) YES(8) YES YES NO NO
Mem-Mapped File YES YES YES YES NO NO NO NO
WM_COPYDATA YES YES YES YES(9) YES NO NO NO

kirrun
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 06.04.2005 (Ср) 15:41
Откуда: Питер

Сообщение kirrun » 27.04.2005 (Ср) 15:27

Короче, результат таков: я нихрена не понял...

Напишите мне ЭЛЕМЕНТАРНЕЙШИЙ примерчик двух программ... Одна прогармма посылает СТРОКУ, а вторая ее принимает...
"Единственный безопасный компьютер - это тот, который выключен из электросети, закрыт в сейфе, который зарыт 20 футов под землей в засекреченной местности. И то я не уверен относительно его безопасности."
(Деннис Хьюджес, ФБР)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 27.04.2005 (Ср) 15:32

2 kirrun
Тебе ссылок насовали, все разжевали, в рот сложили. За тебе переварить еще надо?
Блин, если лень читать - найми себе учителя!

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 27.04.2005 (Ср) 15:35

Если уж так тебе тяжело с API, то сделай обычный свой COM-сервер, через который твои проги будут общаться

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.04.2005 (Ср) 15:44

И здесь вопрос свёлся к указателям, а, kirrun? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

След.

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

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

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

    TopList