Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   www.boolean.name > Программирование игр для компьютеров > Delphi

Ответ
 
Опции темы
Старый 29.10.2010, 13:12   #1
Winner
Нуждающийся
 
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
2 клавиатуры

Если подключить к компьютеру 2 клавиатуры, например, одну через usb порт, а другую через ps/2, то они будут работать одинаково.

Как в Delphi различать, на какой клавиатуре была нажата, например, клавиша ЭНТЕР?
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 01:52   #2
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,127
Написано 2,323 полезных сообщений
(для 6,464 пользователей)
Ответ: 2 клавиатуры

Сообщение от Winner Посмотреть сообщение
Если подключить к компьютеру 2 клавиатуры, например, одну через usb порт, а другую через ps/2, то они будут работать одинаково.
Даже больше. Они будут работать как одна.

Как в Delphi различать, на какой клавиатуре была нажата, например, клавиша ЭНТЕР?
На Delphi... Начни с написания специфического драйвера для клавиатуры.
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 08:12   #3
JACUK
Знающий
 
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений
(для 61 пользователей)
Ответ: 2 клавиатуры

Всё зависит от драйвера, это тоже самое что спросить "а что будет если подключить к ноуту две мышки???"
__________________




(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 08:32   #4
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 618 полезных сообщений
(для 2,416 пользователей)
Ответ: 2 клавиатуры

Стандартный драйвер будет распозновать как одну.
Помню подключал две мышки, если тянуть одновременно в разные стороны, то укозатель будет стоять на месте
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 10:56   #5
Winner
Нуждающийся
 
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
Ответ: 2 клавиатуры

А работать напрямую с портом нельзя в делфи? Клавиатуры подключены к разным типам портов. Неужели нельзя определить, с какого из них прошел сигнал?
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 12:53   #6
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: 2 клавиатуры

Если одна клава на USB, то она работает через HID.
Значит, теоретически, можно попробовать так:
-Берем компонент/модуль/DLL, реализующий работу с HID;
-Подключаемся этим компонентом к USB-клавиатуре;
-В стандартном обработчике OnKeyPressed проверяем, что в данный момент поступило с HID'а - если то же самое, что и в обработчик - значит нажато на USB-клаве, если ничего - значит на PS/2, если другое - значит, на USB нажато то, что поступило с HID, на PS/2 то, что поступило в обработчик.

Минусы - придется разобраться с HID, одновременное нажатие одинаковых кнопок на клавиатурах будет воспринято, как нажатие на USB.
Идея чисто теоретическая, я ничего подобного не делал.
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 13:38   #7
Winner
Нуждающийся
 
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
Ответ: 2 клавиатуры

Я уже пытался разобраться с hid компонентом, но не нашел, где принимаются данные. Нашел raw input метод, но там опять же не нашел фильтрации клавиатур. Хотя пока рыскал в гугле, попадал на тему, в которой человек выкладывал код, где он различал 2 мышки.
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 14:01   #8
WaReZ_MEN
Модератор
 
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений
(для 44 пользователей)
Ответ: 2 клавиатуры

вот вам заняться нечем... вы еще беспроводную клаву подрубите и сканер кредиток который на прерываниях клавы работает.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nex (01.11.2010)
Старый 01.11.2010, 15:27   #9
Winner
Нуждающийся
 
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
Ответ: 2 клавиатуры

У меня пульт с ИК-приемником, который подключается через USB и виден как HID keyboard, и 2 монитора. Я хочу сделать так, чтобы на одном мониторе можно было бы смотреть кино и управлять им через пульт, а на другом сидеть в интернете и чтобы никто друг другу не мешал. Думаю, это желание оправданное и возникло далеко не от страдания бездельем.
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 16:39   #10
den
Дэвелопер
 
Аватар для den
 
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 618 полезных сообщений
(для 2,416 пользователей)
Ответ: 2 клавиатуры

Можно перпаять клаву на COM / LPT порт, написать прогу улавливающие сигналы, и когда ловится определённый сигнал, стандартными WinApi функциями эммулировать нажатия кнопок на клавиатуре.
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 16:44   #11
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: Планета Земля
Сообщений: 4,127
Написано 2,323 полезных сообщений
(для 6,464 пользователей)
Ответ: 2 клавиатуры

А можно тостер подрубить и отлавливать вставляние хлебцев. Был бы в этом смысл. Winner, какую цель ты приследуешь?
__________________
Retry, Abort, Ignore? █
Пека: AMD Athlon II x4 2.6Ghz; 8Gb ram; Nvidia Geforce GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 01.11.2010, 17:13   #12
Winner
Нуждающийся
 
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
Ответ: 2 клавиатуры

Сообщение от Winner Посмотреть сообщение
У меня пульт с ИК-приемником, который подключается через USB и виден как HID keyboard, и 2 монитора. Я хочу сделать так, чтобы на одном мониторе можно было бы смотреть кино и управлять им через пульт, а на другом сидеть в интернете и чтобы никто друг другу не мешал.
Т.е. нажатия на пульте срабатывают только для моего проигрывателя, а основная клавиатура работает как раньше.

Это моя цель - написать программу, которая будет выполнять вышеупомянутые требования.

Мой план реализации:
1. распознать, откуда (чем) была нажата клавиша,
2. глобальным хуком перехватить нажатие,
3. отправить сигнал, например, winamp'u, а вообще kmplayer'u.

Из всего этого я самостоятельно не могу разобраться только с первым пунктом.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +1, время: 04:33.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com