Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/138: Рейтинг темы: голосов - 138, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
1

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

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

Author24 — интернет-сервис помощи студентам
при работе с курсовой столкнулся с задачей: выполнять действие сразу как только будет нажата какая-либо клавиша(желательно одна из стрелок). задача кажется несложной но никак не могу достигнуть желаемого. помогите каким нибудь исходником или примером.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.03.2008, 15:42
Ответы с готовыми решениями:

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

Управление клавиатурой
Как сделать, чтобы с помощью программы эмулировался ввод с клавиатуры? например после нажатия...

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

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

15
Администратор
83618 / 52196 / 244
Регистрация: 10.04.2006
Сообщений: 13,426
14.03.2008, 15:45 2
Работа с клавиатурой
Обнаружение нажатия клавиш
0
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
14.03.2008, 16:05  [ТС] 3
хороший пример Обнаружение нажатия клавиш но мне нельзя API использовать: я в Borland C++ делаю курсовик. в нём есть подобное? буду очень благодарен.
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
14.03.2008, 17:11 4
а почему нельзя апишные функции использовать?
0
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 11:02  [ТС] 5
я знаю только то что API функция работает и какой результат а мне надо знать алгоритм её и знать что делает каждая строчка
0
Администратор
83618 / 52196 / 244
Регистрация: 10.04.2006
Сообщений: 13,426
15.03.2008, 11:12 6
Цитата Сообщение от Torov
я знаю только то что API функция работает и какой результат а мне надо знать алгоритм её и знать что делает каждая строчка
) Апишные функции - это единственное средство использования возможностей ОС, дальше уже некуда. Чтобы знать, что делает каждая строчка такой функции, необходим доступ к исходникам ОС.
0
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 11:41  [ТС] 7
API функции в Borland C++ работают?
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.03.2008, 11:43 8
вообще-то апишные функции работают в винде, им все равно из какого компилера их вызывают
0
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 надо вставить названия кнопок со стрелками а я их не знаю. где это глянуть или напишите плз
1
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.03.2008, 12:16 10
в билдере в хелпе посмотри key codes, там все коды указаны
0
Администратор
83618 / 52196 / 244
Регистрация: 10.04.2006
Сообщений: 13,426
15.03.2008, 12:21 11
Цитата Сообщение от Torov
API функции в Borland C++ работают?
Любая программа в любой ОС взаимдействует с ней через какое-либо API. Поэтому эти функции доступны везде
0
1 / 1 / 0
Регистрация: 14.03.2008
Сообщений: 7
15.03.2008, 12:22  [ТС] 12
такое дело: билдера у меня нет я Visual предпочитаю а качать тока ради кодов нехочется
0
Супер-модератор
8783 / 2536 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
15.03.2008, 12:27 13
ну это будут VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT
0
Olegich
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 с интервалом.
В чем же ошибка я не пойму?
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)
внутрь цикла
0
Olegich
26.05.2009, 18:53 16
добавь
a=GetKeyState(VK_SCROLL)
внутрь цикла
оно и так ведь присутствует в цикле:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int a=GetKeyState(VK_SCROLL);
while (a==1)
{
[B]a=GetKeyState(VK_SCROLL);[/B]
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);
} 
}
26.05.2009, 18:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.05.2009, 18:53
Помогаю со студенческими работами здесь

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

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

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

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


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

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