Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
Игорь с++
473 / 465 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
1

Нажать одновременно две кнопки в чужом приложении

13.02.2013, 12:54. Просмотров 1370. Ответов 4
Метки нет (Все метки)

Господа банальный вопрос , но решить не могу - как при помощи SendMessage нажать сочетание клавиш CTRL+D
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 12:54
Ответы с готовыми решениями:

Событие нажатия кнопки в чужом приложении
Здравствуйте! Можно как то отловить нажатие кнопки в другом приложении зная его...

Отлов сообщений в чужом приложении
Доброго. Начал изучать cpp, но так как имхо быстрое изучение - практика то...

Считать нажатие клавиш в чужом приложении C++
Добрый день. Задача состоит в следующем: Считать нажатие клавиши клавиатуры...

Отслеживание нажатия моей кнопки в чужом окне
Доброго времени суток прошу вашей помощи в некой задаче Вобщем есть...

Отловить окна и нажать в них требуемые кнопки
Мне требуется отловить окна и нажать в них требуемые кнопки. Например всякие...

4
WhiteP
611 / 209 / 32
Регистрация: 20.11.2012
Сообщений: 435
Завершенные тесты: 1
13.02.2013, 14:09 2
Жми ctrl с помощью AttachThreadInput, Get/SetKeyboardState, например.
С помощью одного только SendMessage не выйдет в общем случае (чтобы понять почему именно - смотри как обычно обрабатываются нажатия комбинаций в программах (GetAsyncKeyState)).
1
Игорь с++
473 / 465 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
13.02.2013, 16:11  [ТС] 3
WhiteP, мне надо окну без фокуса передать данное сочетание клавиш.Кодом не богаты?

Добавлено через 1 час 56 минут
блин даже когда я активирую окно и посылаю ему такой код , всё равно не работает
C++
1
2
3
4
5
6
7
8
SetForegroundWindow(MyFine);  
Sleep(1000);
 
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event(111, 0, 0, 0);
Sleep(100);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(111, 0, KEYEVENTF_KEYUP, 0);
Но если попробывать отправить не комбинацию клавиш , а одну клавишу , то всё норм. Пробывал так же и в обыкновенном текстовом документе отправлять CTRL+O для открытие документа , даже он не обрабатывает это нажатие.
0
WhiteP
611 / 209 / 32
Регистрация: 20.11.2012
Сообщений: 435
Завершенные тесты: 1
13.02.2013, 18:03 4
Так у меня работает

C
1
2
3
4
5
6
7
8
9
    HWND hWin = FindWindow(NULL, L"Документ — Блокнот");
    SendMessage(hWin, WM_SYSCOMMAND, SC_RESTORE,0);
 
    SetForegroundWindow(hWin);
 
    keybd_event(VK_LCONTROL,0,0,0); 
    keybd_event(0x4F,0,0,0);        
    keybd_event(0x4F,0,KEYEVENTF_KEYUP,0);
    keybd_event(VK_LCONTROL,0,KEYEVENTF_KEYUP,0);
1
Игорь с++
473 / 465 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
13.02.2013, 18:47  [ТС] 5
да действительно работает , но в другом приложении отказывается напрочь , хотя в меню написанно данное сочетание и при нажатии в ручную работает

Добавлено через 3 минуты
Всё разобрался , спасибо большое
0
13.02.2013, 18:47
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2013, 18:47

Не получается найти хендл кнопки и нажать на нее
У меня проблема в следующем всплывает дочернее окно и спрашивает разрешить или...

Опрос нажатия кнопки в стороннем приложении
Добрый день, пишу на VS2017 код, который должен выдать реакцию при клике мышкой...

Как используя MessageBoxA сдлеать две кнопки OK и CANCEL
Использую MessageBoxA(NULL, "Text", "Error", MB_OK); Получается одна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru