![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| danilsl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 15.3.2006 Репутация: нет Всего: нет |
Как мне из моей проги сказать другой, например винампу, что была нажата определённая комбинация клавиш?
PS. Пожалуйста ответте, я новичок в программировании и хочу только заюзать пульт от тв-тюнера для управления другими прогами.
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Смотри SDK Winamp(если для него или для другой проги)
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| CrazyIvan |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 7.12.2005 Репутация: 1 Всего: 1 |
WinAmp управляется через систему сообщений, смотри сдк, у тебя получится что-то вроде SendMessage(winamp_hwnd,тут команды).
Кстати СДК для винампа написано и для делфи (неофицальное, смотри форум винампа) Если нужна функция для нажатия кнопок то вот:
Взял из DelphiWorld, еще рекомендую поставить паузу, для того чтобы прога успела отреагировать. П.С. Кстати эта функция удобнее чем та которая в DRKB, неплохо бы обновить. |
|||
|
||||
| danilsl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 15.3.2006 Репутация: нет Всего: нет |
Попробовал функцию PostKeyExHWND, реакции со стороны винампа - ноль. Вдобавок при первом вызове этой функции нажатая клавиша почемуто попадает в дельфу (моя прога запускается свёрнутая в трей). Решил посмотреть чево из себя представляют функции GetKeyboardState и SetKeyboardState. Написал такую дрянь:
Timer1.Intervar:=20; Пощёлкал клавиши в етой проге - не интересно. Самое интересное вылезло когда форма перестала быть активной. Чё бы я не жал на клаве текст лабела не менялся. Отсюда напрашивается вывод, что винда для каждой проги создаёт экземпляр TKeyboardState отсюда и отсутствие реакции винампа - все альты и контролы получается я шлю СВОЕЙ ПРОГЕ! а до винампа доходят только остатки. Так какже всётаки сообщить об альте и контроле именно чужой проге, а не своей? Перед вызовом PostKeyExHWND пробовал Windows.SetForegroundWindow(h) и Windows.SetFocus(h). Тоже не помогает. |
|||
|
||||
| Msl |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 18.8.2005 Репутация: нет Всего: нет |
Маленький SendKey Engine От Utilmind:
Удачи! |
|||
|
||||
| danilsl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 78 Регистрация: 15.3.2006 Репутация: нет Всего: нет |
Спасибо всем. keybd_event нашёл сам в дельфишном хелпе. Кстати для того чтобы передать проге к примеру комбинацию alt+Enter вовсе не обязательно её активировать. У меня прокатил такой вариант даже для свёрнутых прог(Пишу по памяти, если посадил ошибку не ругайтесь):
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |