Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
MickeyBlueEyes
Студент
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
#1

Работа с клавиатурой - C++

15.08.2012, 01:27. Просмотров 1243. Ответов 9
Метки нет (Все метки)

Здраствуйте, есть задача эмулировать нажатия клавиш, но winapi не выход, либо там где нада использовать эмуляцию срабатывает защита от эмуляции, хотел узнать как можна решить проблему? Писать драйвер или возможно есть варианты проще?
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.08.2012, 01:27     Работа с клавиатурой
Посмотрите здесь:

Работа с клавиатурой. - C++
Итак, понадобилось поработать с клавой. Прочитал про keybd_event и иже с ними. Но вопрос-можно ли отключить клавиатуру? То есть, чтобы при...

Работа с клавиатурой - C++
Чюваки!!! подскажите плз какие есть операции с клавиатурой в c/c++.....ну типа redkey как в паскале... заранее спасибо

Работа с клавиатурой. Графический режим. - C++
Построить прямоугольник фиксированных размеров. Нажатие на клавишу Enter циклически изменяет цвет прямоугольника, F10 — завершает работу...

Работа с клавиатурой в графическом режиме - C++
Пишу программу в графическом режиме. Для ввода чисел написал свою функцию, где использую getch(). Но заметил, что если запустить программу...

проверка оборудования, управление клавиатурой с++ - C++
Написать программу на С++ ( у меня стоит Visual Studio 2010 Express , C++) с помою вместе нажатых клавиш правый Shift + левый Alt + F7 ...

проверка оборудования, управление клавиатурой с++ - C++
ПРОВЕРКА ОБОРУДОВАНИЯ, УПРАВЛЕНИЕ КЛАВИАТУРОЙ С++ Задание Разработать программу обработки прерывания от клавиатуры, которая должна: ...

Проверить, пользуются ли сейчас клавиатурой - C++
Другими словами, нужна функция, которая возвращает true, если нажата хотя бы одна клавиша и false, если ни одна не нажата. Я так понимаю,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
15.08.2012, 01:59     Работа с клавиатурой #2
Цитата Сообщение от MickeyBlueEyes Посмотреть сообщение
Здраствуйте, есть задача эмулировать нажатия клавиш, но winapi не выход, либо там где нада использовать эмуляцию срабатывает защита от эмуляции, хотел узнать как можна решить проблему? Писать драйвер или возможно есть варианты проще?
Спасибо.
- попробуй keybd_event(детальное описание в гугле)
C
1
keybd_event(VK_LEFT, 0, KEYEVENTF_KEYUP, 0);//Отжимаем кнопку
- это кусок кода из моего блога Стрелки клавиатуры в консоли
MickeyBlueEyes
Студент
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
15.08.2012, 15:31  [ТС]     Работа с клавиатурой #3
Спасибо, но keybd_event - winapi, а его использовать мне нельзя ;( Если кто знает в какую сторону копать?
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
15.08.2012, 16:57     Работа с клавиатурой #4
Иначе никак, ибо зависит от платформы, для winapi - mouse_event, keybd_event, в crt ничего подобного я не видел.
-=ЮрА=-
Заблокирован
Автор FAQ
15.08.2012, 17:20     Работа с клавиатурой #5
Цитата Сообщение от MickeyBlueEyes Посмотреть сообщение
Спасибо, но keybd_event - winapi, а его использовать мне нельзя ;( Если кто знает в какую сторону копать?
- ну можно ещё SetKeyboardState
http://vsokovikov.narod.ru/New_MSDN_...boardstate.htm
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
15.08.2012, 17:24     Работа с клавиатурой #6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- ну можно ещё SetKeyboardState
http://vsokovikov.narod.ru/New_MSDN_...boardstate.htm
Это ведь тоже winapi.
D-Vampire
3 / 3 / 0
Регистрация: 16.05.2012
Сообщений: 36
16.08.2012, 09:03     Работа с клавиатурой #7
Все в конечном итоге все равно сведется к винапи. Если стоят хуки на функции, то можно либо пытаться использовать то, что не перехватывается (SendMessage например), либо снимать/блокировать их.
KostyaKulakov
Заблокирован
16.08.2012, 11:50     Работа с клавиатурой #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <conio.h>
using namespace std;
 
int main()
{  
    cout << "Press a key" << endl;
 
    int key = _getch();
    
    if (key == 224)
    {
        int code = _getch();
        
        switch (code)
        {
            case 75:
                cout << "Arrow Left" << endl;
                break;
            case 72:
                cout << "Arrow Up" << endl;
                break;
            case 77:
                cout << "Arrow Right" << endl;
                break;
            case 80:
                cout << "Arrow Down" << endl;
                break;
            default:
                cout << "Not an arrow key" << endl;
        }
    }
 
}
Добавлено через 45 секунд
если нужно повторение. то заключи в while(true)
-=ЮрА=-
Заблокирован
Автор FAQ
16.08.2012, 13:14     Работа с клавиатурой #9

Не по теме:

KostyaKulakov, задание стоит эмулировать нажатие клавиши, тобишь програмно нажать кнопку

Цитата Сообщение от MickeyBlueEyes Посмотреть сообщение
Здраствуйте, есть задача эмулировать нажатия клавиш
а не парсить стрелки


На счёт альтернативы АПИ MickeyBlueEyes, без него наверное только драйвером надо пытаться, я привёл SetKeyboardState в предположении что для программ с защитой от эмуляции возможно она не будет "видна", также можно непосредственно послать сообщение WM_KEYDOWN либо WM_CHAR непосредственно в окно программы, как ещё можно сделать по другом даже затрудняюсь ответить
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2012, 21:00     Работа с клавиатурой
Еще ссылки по теме:

Слежка за клавиатурой другого компьютера в реальном времени - C++
Нужно объединить компьютер через сеть с другим компьютером(или виртуальной машиной). При нажатии клавиши на одном компьютере, на другом...

Работа с клавиатурой - C++
при работе с курсовой столкнулся с задачей: выполнять действие сразу как только будет нажата какая-либо клавиша(желательно одна из...

Работа с клавиатурой - Arduino
Прошу сильно не ругать, т.к. мне до программиста как медному тазику до ржавчины. Есть код который я мурыжу 3 день и не могу реализовать...

Работа с клавиатурой - Pascal
Скажите, как с помощью встроенного в Pascal assemblera написать программу для управления светодиодами (Num, Caps, Scroll Lock) на...

работа с клавиатурой - Visual C++
скажите пожалуйста как сделать так ,чтобы сразу после нажатия клавиши включался автоповтор.


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

Или воспользуйтесь поиском по форуму:
MickeyBlueEyes
Студент
120 / 131 / 12
Регистрация: 07.04.2011
Сообщений: 503
16.08.2012, 21:00  [ТС]     Работа с клавиатурой #10
спасибо, да прийдётся решать проблему драйвером.
Yandex
Объявления
16.08.2012, 21:00     Работа с клавиатурой
Ответ Создать тему
Опции темы

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