функция WinApi SendMessage

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

функция WinApi SendMessage

Сообщение nikola20 » 02.05.2006 (Вт) 13:07

Объясните пожалуйста почему описанные ниже две строки посылают одно и то-же нажатие клавиши "А"?
Код: Выделить всё
t = SendMessage(lCurHwnd, WM_KEYDOWN, &H41, &H1EFFFF)
t = SendMessage(lCurHwnd, WM_KEYDOWN, &H44, &H1EFFFF)

И все-же как можно расчитать значение параметра lParam для нажатий других клавиш или их сочетание с управляющими клавишами?

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

Сообщение GSerg » 02.05.2006 (Вт) 13:12

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

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

Сообщение Kovu » 02.05.2006 (Вт) 13:18

nikola20
На XP не всегда работает с Сенд это раз. Во вторых читать МСДН тоже иногда полезно. Там например явно написано что можно передавать в lparam, ибо твой &H1EFFFF -бесконечное посылание нажатия.
Код: Выделить всё
t = PostMessage(Text1.hwnd, WM_KEYDOWN, &H41, &H0)
t = PostMessage(Text1.hwnd, WM_KEYDOWN, &H44, &H0)
Если всё делать своими ручками, они скоро отвалятся !

nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

Сообщение nikola20 » 02.05.2006 (Вт) 13:29

msdn я читал, только ничего не понял из того что написано.
Код: Выделить всё
t = SendMessage(lCurHwnd, WM_KEYDOWN, &H41, &H0)

не посылает ничего, тем более если я правильно понял декларирование функции sendmessage должно осуществляться с параметром lParam as Long (вместо Any).

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

Сообщение Kovu » 02.05.2006 (Вт) 13:43

nikola20
Я ж те ясно написал PostMesage
Если всё делать своими ручками, они скоро отвалятся !


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

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

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

    TopList  
cron