Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

SendMessage F7

3.2K
27 августа 2007 года
nikipelovav
152 / / 12.04.2006
Пытаюсь "нажать" клавишу F7 в окне другого приложения

 
Код:
SendMessage( hWnd, WM_KEYDOWN, VK_F7, 0x01000000 );
SendMessage( hWnd, WM_KEYUP    , VK_F7 , 0xc1000000 );


Не работает. Помогите.
246
28 августа 2007 года
GIZMO
1.8K / / 30.07.2004
Цитата: nikipelovav
Пытаюсь "нажать" клавишу F7 в окне другого приложения

 
Код:
SendMessage( hWnd, WM_KEYDOWN, VK_F7, 0x01000000 );
SendMessage( hWnd, WM_KEYUP    , VK_F7 , 0xc1000000 );


Не работает. Помогите.


Это наверно надо делать не из своего процесса, а из процесса того приложения. Для этого надо туда внедрится: CreateRemoteThread, SetWindowsHookEx и т.д.

3.2K
28 августа 2007 года
nikipelovav
152 / / 12.04.2006
Интересно, а почему тогда работает вставка символа в окошко Edit
эмуляцией нажатия символьной клавиши

 
Код:
SendMessage( hWnd2, WM_KEYDOWN, 'Z', 0x00000000 );
SendMessage( hWnd2, WM_CHAR   , 'Z', 0x40000000 );
SendMessage( hWnd2, WM_KEYUP  , 'Z', 0xc0000000 );


или нажатие Enter

 
Код:
SendMessage( hWnd2, WM_KEYDOWN, VK_RETURN, 0x00000000 );
SendMessage( hWnd2, WM_KEYUP  , VK_RETURN, 0xc0000000 );


Почему это работает, а с функциональной клавишей нет.
И вроде все необходимые биты в параметре lParam ставлю.

Вопросы:

1) Если Я пытаюсь иметировать нажатие функциональной клавиши,
которая является "горячей" клавишей в другом приложении,
может необходимо послать ещё какое-либо сообщение кроме
WM_KEYDOWN + WM_KEYUP?

2) сообщения должны посылаться главному окну или
какому-либо "wincontrol" типа TEdit, TButton ?
3.2K
28 августа 2007 года
nikipelovav
152 / / 12.04.2006
На форуме тема использования SendMessage подымалась не раз, но все в основном "отправляют читать HELP" или приводят пример с кликом кнопки мыши. ;)))

Прочитал, что SendMessage не возвращает управление программе, пока сообщение не обработано другим приложением. По совету, попробовал PostMessage. С клавишей F7 полчилось! Но только в программе TecDoc. А вот эксперемент с "Калькулятором" в инженерном режиме дал отрицательный результат.

Пожалуйста объясните тонкости "удалённого управления клавиатурой".
92
28 августа 2007 года
Тень Пса
2.2K / / 19.10.2006
попробуй запользовать SendInput (посылается активному окну - SetForegroundWindow).. у меня Ctrl+Insert работает отменно

Код:
INPUT inp[4];
        SetForegroundWindow(win);
        memset(inp,0,sizeof(inp));
        inp[0].type=INPUT_KEYBOARD;
        inp[0].ki.wVk=VK_CONTROL;
        inp[1].type=INPUT_KEYBOARD;
        inp[1].ki.wVk=VK_INSERT;
        inp[2].type=INPUT_KEYBOARD;
        inp[2].ki.wVk=VK_INSERT;
        inp[2].ki.dwFlags=KEYEVENTF_KEYUP;
        inp[3].type=INPUT_KEYBOARD;
        inp[3].ki.wVk=VK_CONTROL;
        inp[3].ki.dwFlags=KEYEVENTF_KEYUP;
        SendInput(4,inp,sizeof(INPUT));
16K
29 августа 2007 года
Zbyszek
118 / / 08.08.2007
Попробуй через keybd_event.
3.2K
02 сентября 2007 года
nikipelovav
152 / / 12.04.2006
Кому интересен результат поисков решения проблемы,
качните мой исходник ProjBeam и изучите класс BSendWM.
(Файлы BSendMess.h и BSendMess.cpp)
40K
07 июня 2008 года
ForAll
1 / / 07.06.2008
Цитата: nikipelovav
Кому интересен результат поисков решения проблемы,
качните мой исходник ProjBeam и изучите класс BSendWM.
(Файлы BSendMess.h и BSendMess.cpp)



А где можно скачать твой исходник ?:confused:

5.3K
07 июня 2008 года
Somebody
185 / / 24.12.2006
Цитата: nikipelovav

Прочитал, что SendMessage не возвращает управление программе, пока сообщение не обработано другим приложением. По совету, попробовал PostMessage.


Если с SendMessage всё нормально, а с PostMessage - нет, то можно попробовать с SendNotifyMessage.

246
07 июня 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: ForAll
А где можно скачать твой исходник ?:confused:


Наверное Здесь

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог