Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2010, 01:24   #1
Faunris
 
Регистрация: 11.07.2010
Сообщений: 7
По умолчанию WM_IME_KEYDOWN & WM_IME_KEYUP

Как отправить комбинацию клавиш ctrl + F4 при помощи PostMessage

postmessage(handleokna, WM_IME_KEYDOWN, vk_Control,0 );
postmessage(handleokna, WM_IME_KEYDOWN, VK_F4,0 );
postmessage(handleokna, WM_IME_KEYUP, VK_F4,0 );
postmessage(handleokna, WM_IME_KEYUP, vk_Control,0 );

такой код почемуто не работает
Faunris вне форума Ответить с цитированием
Старый 11.07.2010, 14:15   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам именно IME сообщения нужны?
обычным приложениям нужно WM_KEYDOWN/WM_KEYUP слать.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.07.2010, 14:47   #3
Faunris
 
Регистрация: 11.07.2010
Сообщений: 7
По умолчанию

Да, именно IME ибо обычные сообщения как показала практика игры не понимают.
Faunris вне форума Ответить с цитированием
Старый 11.07.2010, 15:11   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а эти понимают?
судя по теме нет. многие игры использует DirectPlay с прямым опросом устройств.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.07.2010, 15:23   #5
Faunris
 
Регистрация: 11.07.2010
Сообщений: 7
По умолчанию

Добрый человек, я не спрашиваю работают ли эти сообщение ( а они прекрасно работают но только по одной клавише, а мне надо отправить комбинацию) я пытаюсь узнать как этими сообщениями пользоваться.
код выше как я понял из практики отдельно отправляет нажатия в свернутую игру т.е. нажал контрл отпустил, потом нажал ф4 и отпустил, а мне надо что бы нажал контрл нажал ф4 , отпустил ф4 , отпустил контрл

просьба не предлагать другие сообщения и функции.

Последний раз редактировалось Faunris; 11.07.2010 в 15:27. Причина: Дополнение
Faunris вне форума Ответить с цитированием
Старый 11.07.2010, 16:12   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а разве lParam не надо заполнять?(для игр может быть критично)
если есть возможность то посмотрите сообщения(Spy++ например)которые получает окно и сэмулируйте их.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.07.2010, 17:10   #7
Faunris
 
Регистрация: 11.07.2010
Сообщений: 7
По умолчанию

так отловить что приходит окну с игрой у меня получилось.
вопрос как мне заполнить lparam ?
Сюдя по spy ++ при нажатии комбинации используется примерно такое происходит
Код:
    postmessage(handleokna, WM_SYSKEYDOWN, keyOn1, );
    postmessage(handleokna, WM_SYSKEYDOWN, keyOn2,   );
    postmessage(handleokna, WM_SYSKEYUP, keyOn2,   );
    postmessage(handleokna, WM_KEYUP, keyOn1,   );
где KeyOn1 и KeyOn2 соответсвенно ctrl и F4
а вот чем заполнять lparam я не знаю в этом собстно и вопрос.
Faunris вне форума Ответить с цитированием
Старый 11.07.2010, 17:12   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так из Spy++ и возьмите значения.
скрин скиньте на крайняк
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.07.2010, 17:54   #9
Faunris
 
Регистрация: 11.07.2010
Сообщений: 7
По умолчанию

Так значение там шестнадцатиричное, клавишь в настройках программы много, для каждой это значение выяснять ? можно ли с помощью какойнибуть функции это значение узнать ?
Faunris вне форума Ответить с цитированием
Старый 11.07.2010, 17:55   #10
Faunris
 
Регистрация: 11.07.2010
Сообщений: 7
По умолчанию

Тьфу блин, не ту клавишу нажал.
Я прочитал описание сообщение что там идет 32 битное описаное собстно.
как мне это описание составить для любой клавиши ?
Faunris вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
INDY 10 (idCmdTCPServer & idCmdTCPClient) & Delphi 2009 S_Yevgeniy Работа с сетью в Delphi 24 27.02.2012 08:56
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46
Запрос UPDATE&INSERT&DELETE l0nley SQL, базы данных 5 17.07.2009 05:59
Просто не понимаю б чём проблема!!!!!!!(char* && index) artush1984 Общие вопросы C/C++ 12 30.05.2009 03:30
Проблема с MVC++ 2005 && 2008 на висте NetGod Софт 1 09.08.2008 17:14