Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
1

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

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

Author24 — интернет-сервис помощи студентам
Господа банальный вопрос , но решить не могу - как при помощи SendMessage нажать сочетание клавиш CTRL+D
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.02.2013, 12:54
Ответы с готовыми решениями:

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

Android нужно нажать две кнопки одновременно. Как?
Здравствуйте. Как реализовать нажатие на две кнопки, или их зажатие, не важно, главное что бы были...

Нажать кнопку в чужом приложении
Помогите нажать кнопку на "левом" приложение !!!!!

Нажатие кнопки в чужом приложении
Здравствуйте. Задался целью программно нажать на кнопку в чужой программе. using System; using...

4
836 / 343 / 67
Регистрация: 20.11.2012
Сообщений: 795
13.02.2013, 14:09 2
Жми ctrl с помощью AttachThreadInput, Get/SetKeyboardState, например.
С помощью одного только SendMessage не выйдет в общем случае (чтобы понять почему именно - смотри как обычно обрабатываются нажатия комбинаций в программах (GetAsyncKeyState)).
1
500 / 474 / 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
836 / 343 / 67
Регистрация: 20.11.2012
Сообщений: 795
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
500 / 474 / 63
Регистрация: 26.01.2011
Сообщений: 2,033
13.02.2013, 18:47  [ТС] 5
да действительно работает , но в другом приложении отказывается напрочь , хотя в меню написанно данное сочетание и при нажатии в ручную работает

Добавлено через 3 минуты
Всё разобрался , спасибо большое
0
13.02.2013, 18:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.02.2013, 18:47
Помогаю со студенческими работами здесь

Как можно нажать на "закрытую" кнопку в чужом приложении?
Имеется программа, в которой одна функция доступна по нажатию на определенную кнопку (Button). Как...

Нажать кнопку в чужом окне
Есть программа Steam нужно в ней нажать на кнопку "Создать новый аккаунт" Пробовал разные...

Нажать на кнопку в чужом окне
Добрый день, подскажите, есть ли возможность получить доступ к контролам чужой формы? Т.е. есть...

Нажать ctrl+s в чужом окне
почему не работаетprocedure TForm1.Button1Click(Sender: TObject); var h : thandle; begin ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru