0 / 0 / 0
Регистрация: 11.04.2015
Сообщений: 45
1
RAD XE3+

Замена действий клавиш клавиатуры

27.07.2018, 23:32. Показов 586. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В созданном мною потоке пишу
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
  slp:=25;
  repeat
    while GetKeyState(hhotkey)<0 do begin
      SimulateKeyDown(81); Sleep(slp);//Q
      SimulateKeyUp(81); Sleep(slp);
      SimulateKeyDown(87); Sleep(slp);//W
      SimulateKeyUp(87); Sleep(slp);
    end;
  until Terminated;

где SimulateKeyDown и SimulateKeyUp:
Кликните здесь для просмотра всего текста
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const
  ExtendedKeys: set of Byte = [VK_INSERT, VK_DELETE, VK_HOME, VK_END, VK_PRIOR, VK_NEXT, VK_LEFT, VK_UP, VK_RIGHT, VK_DOWN, VK_NUMLOCK];
 
procedure SimulateKeyDown(Key: byte);
var flags: DWORD;
begin
  if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY
  else flags := 0;
  keybd_event(Key, MapVirtualKey(Key, 0), flags, 0);
end;
 
procedure SimulateKeyUp(Key: byte);
var flags: DWORD;
begin
  if Key in ExtendedKeys then flags := KEYEVENTF_EXTENDEDKEY
  else flags := 0;
  keybd_event(Key, MapVirtualKey(Key, 0), KEYEVENTF_KEYUP or flags, 0);
end;

Проблема в том, что когда в hhotkey забита какая-либо клавиша с буквой/цифрой, то например при hhotkey=105 (numpad 9) в том же блокноте при зажатии хоткея будет писаться белиберда "9q9w99q99w9q99w9q99w9q99w9q99w", где именно сама 9 не нужна. Нужно как-то отключить собственный ввод клавиши и заменить на ввод "Q" "W"
В поисковике спустя пару тройку часов не смог найти для себя решения, может и правда плохо искал, а может с хуками у меня совсем не клеется, несколькими готовыми способами через них пробовал блокировать собственную функцию клавиши, но так ничего и не получилось..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2018, 23:32
Ответы с готовыми решениями:

Замена клавиш клавиатуры
Ребят помогите сообразить. Есть массив в котором мы содержим клавиши и библиотека которая...

HotKeyManager - перехват клавиш без отмены их действий
Добрый день, нашел компонент HotKeyManager1 для перехвата нажатых клавиш , но вот проблема в том,...

Ввод цифр и действий с клавиатуры
Как сделать ввод цифр и действий (+,-,*,/) в калькулятор с клавиатуры, при этом действия при...

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

0
27.07.2018, 23:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2018, 23:32
Помогаю со студенческими работами здесь

Имитация нажатия клавиш клавиатуры
Всем привет! Прошу помочь мне. Я искал в интернете но там как то сложно. Я думаю можно обойтись...

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

Реагируем на нажатие клавиш клавиатуры
к примеру при нажатии на клавишу F2 В ЕDIT1 вписывается слово привет Как реализовать? ...

где взять кодировку клавиш клавиатуры
Подскажите где взять кодировку клавиш клавиатуры(например enter=#13 или backspase=#8)


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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