Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Эмитация нажатия сочетания клавиш в другой программе


Tailno ©   (2006-02-15 23:21:00) 

Есть программа, которая реагерует на нажатие сочетания клавиш "shift+\" причем срабатывает только на английской раскладке.

Как можно отправить это сочетание чужому окну?


kaZaNoVa   (2006-02-16 06:37:00) [1]

Tailno   (16.02.06 4:33) [10]
клавиатурным хуком или   VkKeyScanпо таймеру в цикле .....


kaZaNoVa   (2006-02-16 06:37:00) [2]

хотя про  VkKeyScan не уверен .. хук лучше


Tailno   (2006-02-16 04:33:00) [3]

Такой вопрос, а как отследить нажатие клавиш в другой программе? Допустим кнопку на которой символ ']'.


Tailno   (2006-02-16 04:18:00) [4]

Просто пример корявый, посмотри повнимательней. Спасибо.


Marser   (2006-02-16 02:06:00) [5]

Повторяю в послений раз для хитрых и для бобров тоже:VkKeyScan
The VkKeyScan function translates a character to the corresponding virtual-key code and shift state for the current keyboard.

SHORT VkKeyScan(

   TCHAR ch  // character to translate
  );


Parameters

ch

Specifies the character to be translated into a virtual-key code.



Return Values

If the function succeeds, the low-order byte of the return value contains the virtual-key code...


> Сэмулировать нажатие этой кнопки вместе с шифтом.

Я тебе это уже показал в [1]. Читай хелп и будет тебе счастье.


Tailno   (2006-02-16 01:46:00) [6]

Сэмулировать нажатие этой кнопки вместе с шифтом.


Tailno   (2006-02-16 01:45:00) [7]

Хитер бобер) А теперь как его представить в виде byte чтоыб послать окну?


Marser   (2006-02-16 00:47:00) [8]

Левее BackSpace в английской раскладке и в русской/украинской тоже.


Tailno   (2006-02-16 00:45:00) [9]

Суть в том, что найти этот символ не могу. Вот и вся проблема, остальное спросил попутно, но  в принципе это главное.


Marser   (2006-02-16 00:24:00) [10]

> сочетание именно shift+\, а не нолика

А не один чёрт? Это что-то меняет?

> Вопрос остается открытым, как переключить раскладку в окне
> rus->eng

ActivateKeyboardLayout
LoadKeyboardLayout


Tailno   (2006-02-16 00:01:00) [11]

Вопрос остается открытым, как переключить раскладку в окне rus->eng, затем отправить сочетание именно shift+\, а не нолика, и переключиться обратно на русскую раскладку.


Marser   (2006-02-15 23:48:00) [12]

Наводим фокус на нужное окно и
keybd_event(VK_SHIFT,0,0,0);
keybd_event(VkKeyScan('0',0,0);
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
keybd_event(VkKeyScan('0',KEYEVENTF_KEYUP,0);

Эмулируем, к примеру, SHIFT+'0'


Наверх

Титульная страница Поиск, карта сайта Написать письмо