|
29.10.2010, 17:12
|
#1
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
2 клавиатуры
Если подключить к компьютеру 2 клавиатуры, например, одну через usb порт, а другую через ps/2, то они будут работать одинаково.
Как в Delphi различать, на какой клавиатуре была нажата, например, клавиша ЭНТЕР?
|
(Offline)
|
|
01.11.2010, 04:52
|
#2
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: 2 клавиатуры
Сообщение от Winner
Если подключить к компьютеру 2 клавиатуры, например, одну через usb порт, а другую через ps/2, то они будут работать одинаково.
|
Даже больше. Они будут работать как одна.
Как в Delphi различать, на какой клавиатуре была нажата, например, клавиша ЭНТЕР?
|
На Delphi... Начни с написания специфического драйвера для клавиатуры.
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
01.11.2010, 11:12
|
#3
|
Знающий
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений (для 61 пользователей)
|
Ответ: 2 клавиатуры
Всё зависит от драйвера, это тоже самое что спросить "а что будет если подключить к ноуту две мышки???"
|
(Offline)
|
|
01.11.2010, 11:32
|
#4
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: 2 клавиатуры
Стандартный драйвер будет распозновать как одну.
Помню подключал две мышки, если тянуть одновременно в разные стороны, то укозатель будет стоять на месте
|
(Offline)
|
|
01.11.2010, 13:56
|
#5
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
Ответ: 2 клавиатуры
А работать напрямую с портом нельзя в делфи? Клавиатуры подключены к разным типам портов. Неужели нельзя определить, с какого из них прошел сигнал?
|
(Offline)
|
|
01.11.2010, 15:53
|
#6
|
Модератор
Регистрация: 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, 16:38
|
#7
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
Ответ: 2 клавиатуры
Я уже пытался разобраться с hid компонентом, но не нашел, где принимаются данные. Нашел raw input метод, но там опять же не нашел фильтрации клавиатур. Хотя пока рыскал в гугле, попадал на тему, в которой человек выкладывал код, где он различал 2 мышки.
|
(Offline)
|
|
01.11.2010, 17:01
|
#8
|
Модератор
Регистрация: 20.06.2006
Сообщений: 363
Написано 24 полезных сообщений (для 44 пользователей)
|
Ответ: 2 клавиатуры
вот вам заняться нечем... вы еще беспроводную клаву подрубите и сканер кредиток который на прерываниях клавы работает.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
01.11.2010, 18:27
|
#9
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
Ответ: 2 клавиатуры
У меня пульт с ИК-приемником, который подключается через USB и виден как HID keyboard, и 2 монитора. Я хочу сделать так, чтобы на одном мониторе можно было бы смотреть кино и управлять им через пульт, а на другом сидеть в интернете и чтобы никто друг другу не мешал. Думаю, это желание оправданное и возникло далеко не от страдания бездельем.
|
(Offline)
|
|
01.11.2010, 19:39
|
#10
|
Дэвелопер
Регистрация: 13.02.2010
Сообщений: 1,645
Написано 620 полезных сообщений (для 2,419 пользователей)
|
Ответ: 2 клавиатуры
Можно перпаять клаву на COM / LPT порт, написать прогу улавливающие сигналы, и когда ловится определённый сигнал, стандартными WinApi функциями эммулировать нажатия кнопок на клавиатуре.
|
(Offline)
|
|
01.11.2010, 19:44
|
#11
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,361
Написано 2,473 полезных сообщений (для 6,856 пользователей)
|
Ответ: 2 клавиатуры
А можно тостер подрубить и отлавливать вставляние хлебцев. Был бы в этом смысл. Winner, какую цель ты приследуешь?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 4090 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
01.11.2010, 20:13
|
#12
|
Нуждающийся
Регистрация: 28.09.2008
Сообщений: 98
Написано одно полезное сообщение
|
Ответ: 2 клавиатуры
Сообщение от Winner
У меня пульт с ИК-приемником, который подключается через USB и виден как HID keyboard, и 2 монитора. Я хочу сделать так, чтобы на одном мониторе можно было бы смотреть кино и управлять им через пульт, а на другом сидеть в интернете и чтобы никто друг другу не мешал.
|
Т.е. нажатия на пульте срабатывают только для моего проигрывателя, а основная клавиатура работает как раньше.
Это моя цель - написать программу, которая будет выполнять вышеупомянутые требования.
Мой план реализации:
1. распознать, откуда (чем) была нажата клавиша,
2. глобальным хуком перехватить нажатие,
3. отправить сигнал, например, winamp'u, а вообще kmplayer'u.
Из всего этого я самостоятельно не могу разобраться только с первым пунктом.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 07:36.
|