Discussion:
Как убрать Alt из ввода ?
(слишком старое сообщение для ответа)
Serj Kondryukov
2005-10-05 08:49:31 UTC
Permalink
Вобщем мне нужно, чтобы любое нажатие клавиш с альтом передавалось в
программу как без оного.
Я пробовал писать PreFilterMessage и потом, удалив альт их LParam и заменив
WM_SYSKEYDOWN (UP) на WM_KEYDOWN(UP) просто возвращать false. Не работает.
Пробовал вызывать SendMessage из User32, а из PreFilterMessage возвращать
true. Не работает. Я бы еще попробовал SendKeys.Send, но не знаю как
преобразовать LParam в текстовую строку, которую разберет SendKeys.
Может кто знает как выйти из ситуации ?
Andrzej Novosiolov
2005-10-05 09:58:43 UTC
Permalink
Post by Serj Kondryukov
Вобщем мне нужно, чтобы любое нажатие клавиш с альтом передавалось в
программу как без оного.
Я пробовал писать PreFilterMessage и потом, удалив альт их LParam и заменив
WM_SYSKEYDOWN (UP) на WM_KEYDOWN(UP) просто возвращать false. Не работает.
Пробовал вызывать SendMessage из User32, а из PreFilterMessage возвращать
true. Не работает. Я бы еще попробовал SendKeys.Send, но не знаю как
преобразовать LParam в текстовую строку, которую разберет SendKeys.
Может кто знает как выйти из ситуации ?
Сам я этим не занимался, но судя по
http://msdn.microsoft.com/smartclient/community/wffaq/default.aspx#grl7f2p9
и
http://discuss.fogcreek.com/dotnetquestions/default.asp?cmd=show&ixPost=2358
, PreFilterMessage и SendKeys - правильное решение.

Похоже, что m.WParam.ToInt32 можно преобразовать к значению из Enum Keys, а
потом сделать ему ToString. Если не поможет, то я бы просто сделал
константный массив изо всех значений WParam и соответствующих им строк для
SendKeys.
--
ICQ 8481158, http://www.livejournal.com/users/andrzejn/
Loading...