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

C++

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 92, средняя оценка - 4.65
Torov
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
#1

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

14.03.2008, 15:42. Просмотров 11828. Ответов 15
Метки нет (Все метки)

при работе с курсовой столкнулся с задачей: выполнять действие сразу как только будет нажата какая-либо клавиша(желательно одна из стрелок). задача кажется несложной но никак не могу достигнуть желаемого. помогите каким нибудь исходником или примером.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2008, 15:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с клавиатурой (C++):

Работа с клавиатурой в C++ Builder - C++ Builder
Кто знает ресурсы где есть обучение про работу с клавиатурой в С++ ,в инете ссылки какието или книги!Срочно нужно!

Управление клавиатурой - C++ Builder
Как сделать, чтобы с помощью программы эмулировался ввод с клавиатуры? например после нажатия кнопки нажимались по порядку буквы a b c?

Сделать перемещение клавиатурой по MainMenu - C++ Builder
Пожалуста помогите!!! Как в С++ Builder нажатием на пробел перебирать пункты меню компоненты MainMenu,и когда перебераешь чтоб...

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

Работа с Меню. Сохранение, печать, создать новый. Работа с рисованием - Visual C++
В общем сабж. Делается программа, которая должная Сохранять, печатать и очищать поле (создать новый/очистка). Также хочу спросить как...

Работа с файлами(Запись,чтение,работа с данными) - Visual C++
Здравствуйте, никак не могу осилить файлы... Для начала вот само задание: В справочной автовокзала хранится расписание движения автобусов....

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mik-a-el
CyberForum Owner
57391 / 37139 / 231
Регистрация: 10.04.2006
Сообщений: 12,690
14.03.2008, 15:45 #2
Работа с клавиатурой
Обнаружение нажатия клавиш
Torov
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
14.03.2008, 16:05  [ТС] #3
хороший пример Обнаружение нажатия клавиш но мне нельзя API использовать: я в Borland C++ делаю курсовик. в нём есть подобное? буду очень благодарен.
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,885
Завершенные тесты: 1
14.03.2008, 17:11 #4
а почему нельзя апишные функции использовать?
Torov
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 11:02  [ТС] #5
я знаю только то что API функция работает и какой результат а мне надо знать алгоритм её и знать что делает каждая строчка
mik-a-el
CyberForum Owner
57391 / 37139 / 231
Регистрация: 10.04.2006
Сообщений: 12,690
15.03.2008, 11:12 #6
Цитата Сообщение от Torov
я знаю только то что API функция работает и какой результат а мне надо знать алгоритм её и знать что делает каждая строчка
) Апишные функции - это единственное средство использования возможностей ОС, дальше уже некуда. Чтобы знать, что делает каждая строчка такой функции, необходим доступ к исходникам ОС.
Torov
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 11:41  [ТС] #7
API функции в Borland C++ работают?
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,885
Завершенные тесты: 1
15.03.2008, 11:43 #8
вообще-то апишные функции работают в винде, им все равно из какого компилера их вызывают
Torov
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 12:15  [ТС] #9
C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include "windows.h"
#include "iostream.h"
 
void main()
{
if (GetKeyState(VK_NUMLOCK)==1)
cout << "NumLock ON" << endl; 
else
cout << "NumLock OFF" << endl;
}
пример хороший я попробовал тока вместо VK_NUMLOCK надо вставить названия кнопок со стрелками а я их не знаю. где это глянуть или напишите плз
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,885
Завершенные тесты: 1
15.03.2008, 12:16 #10
в билдере в хелпе посмотри key codes, там все коды указаны
mik-a-el
CyberForum Owner
57391 / 37139 / 231
Регистрация: 10.04.2006
Сообщений: 12,690
15.03.2008, 12:21 #11
Цитата Сообщение от Torov
API функции в Borland C++ работают?
Любая программа в любой ОС взаимдействует с ней через какое-либо API. Поэтому эти функции доступны везде
Torov
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 12:22  [ТС] #12
такое дело: билдера у меня нет я Visual предпочитаю а качать тока ради кодов нехочется
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,885
Завершенные тесты: 1
15.03.2008, 12:27 #13
ну это будут VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT
Olegich
Сообщений: n/a
26.05.2009, 16:22 #14
Помогите пожалуйста, столкнулся с такой проблемой. Необходимо, чтобы при условии активного Scroll Lock, запускался цикл и как только Scroll Lock становится неактивным, прерывался.
С первым все в порядке, проблема в том, что как я не старался не могу цикл прервать, цикл продолжает работу не зависимо от Scroll lock.
Пробовал различные варианты, как только не мудрил-все равно, софтина не отзывается, не реагирует не начто, тока Kill.
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int a=GetKeyState(VK_SCROLL);
while (a==1)
{
a=GetKeyState(VK_SCROLL);
keybd_event(VK_PRIOR, 0,0,0);
keybd_event(VK_PRIOR, 0,KEYEVENTF_KEYUP,0);
Sleep(2000);
keybd_event(VK_NEXT, 0,0,0);
keybd_event(VK_NEXT, 0,KEYEVENTF_KEYUP,0);
Sleep(2000);
}
 
}
Сам цикл-нажатие клавиш PageDown-PageUp с интервалом.
В чем же ошибка я не пойму?
Rumata
4 / 4 / 0
Регистрация: 10.04.2009
Сообщений: 23
26.05.2009, 18:38 #15
Цитата Сообщение от Olegich Посмотреть сообщение
Помогите пожалуйста, столкнулся с такой проблемой. Необходимо, чтобы при условии активного Scroll Lock, запускался цикл и как только Scroll Lock становится неактивным, прерывался.
С первым все в порядке, проблема в том, что как я не старался не могу цикл прервать, цикл продолжает работу не зависимо от Scroll lock.
Пробовал различные варианты, как только не мудрил-все равно, софтина не отзывается, не реагирует не начто, тока Kill.
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int a=GetKeyState(VK_SCROLL);
while (a==1)
{
a=GetKeyState(VK_SCROLL);
keybd_event(VK_PRIOR, 0,0,0);
keybd_event(VK_PRIOR, 0,KEYEVENTF_KEYUP,0);
Sleep(2000);
keybd_event(VK_NEXT, 0,0,0);
keybd_event(VK_NEXT, 0,KEYEVENTF_KEYUP,0);
Sleep(2000);
}
 
}
Сам цикл-нажатие клавиш PageDown-PageUp с интервалом.
В чем же ошибка я не пойму?
Здесь:
C++
1
while (a==1)
у тебя а всегда одинаковое, добавь
C++
1
a=GetKeyState(VK_SCROLL)
внутрь цикла
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2009, 18:38
Привет! Вот еще темы с ответами:

Работа с клавиатурой - C++ WinAPI
Добрый день:)У меня тут програмка новая нарисовалась там предназначена работа с клавой так вот в окне в котором нужна клава нет ни одного...

Работа с клавиатурой win api - C++ WinAPI
case WM_PAINT: hdc = BeginPaint(hWnd, &amp;ps); GetClientRect(hWnd, &amp;rect); InvalidateRect(hWnd, NULL, TRUE); hdc =...

Какое событие работает с клавиатурой? - C++ WinAPI
Какое событие необходимо создать в главной функции для того, чтобы программа реагировала на нажатие определенной клавиши. Нигде не могу...

Взаимодействие кнопок и форм(созданных) с клавиатурой - C++ WinAPI
Всем привет. Два дня изучаю Win API(пытаюсь по-крайней мере), вопросов куча, но главный пока один. Как сделать так, чтобы я вводил в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.05.2009, 18:38
Ответ Создать тему
Опции темы

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