![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| mrEvel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
Доброго времени суток всем. Мне требуется передать приложению, хэндл которого я знаю, комбинацию клавишь, типа "CTRL+UP". Как передать отдельное нажатие на форуме есть. Правда, есть листинг программы, где, вроде, реализуется передача комбинаций, но, в следствии своей универсальности, я ее не понял =) Там много всего ненужного мне... Поделитесь своими знаниями...
|
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
У меня тут компонент был. Кажется он такое умеет делать. Посмотри.
Присоединённый файл ( Кол-во скачиваний: 14 )
SendKeysRoutine.pas 13,98 Kb-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| mrEvel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
Дело в том, что это и есть тот "универсальный код", про который я писал выше... Если не сложно - напиши конкретный пример, тогда будет понятнее. Допустим надо послать, тот же самый CTRL+UP в приложение iTunes...
|
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
mrEvel, а ты устанавливал компонент? Там же все должно быть просто.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| mrEvel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
Виноват... всё оказалось легче, чем я думал, но опять же работают только одиночные клавиши. Почему-то когда я делаю так:
AppActivate(Pchar('iTunes')); SendKeys('^({UP})',false); то срабатывает только UP. Пытался и без круглых скобок - без разницы. В файле, который ты скинул, почему-то была не закончена строка "while(I ...". Наскоьлко я понимаю, там должно быть While(I<L) |
|||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Поищи в нэте хелпу по этому компоненту. Должна быть справка, как послать сочитание клавиш программе.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| mrEvel |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 19.12.2006 Репутация: нет Всего: нет |
P.O.D., спасибо огромное... разобрался. Правда я использую не sendinput. Смотрел описание к этой команде и наткнулся на keybd_event. С помощью этой команды легко имитируется CTRL+UP. Вот рабочий код:
AppActivate(Pchar('iTunes')); keybd_event(VK_CONTROL,55,KEYEVENTF_EXTENDEDKEY or 0, 0); keybd_event(VK_UP,55,KEYEVENTF_EXTENDEDKEY or 0, 0); keybd_event(VK_UP,55,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); keybd_event(VK_CONTROL,55,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP, 0); AppActivate - пользовательская функция, которая переключает фокус на нужное приложение (надеюсь правильно написал =) ) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |