-
Допустим надо отправлять в приложение букву Ä или Ö.
-
> grigor (25.10.10 15:31)
> Допустим надо отправлять в приложение букву Ä
PostMessageW(wnd, WM_CHAR, WPARAM($00C4), 0)
-- Regards, LVT.
-
Спасибо!
-
А как определить хендл активного текстового поля в чужом приложении чтобы ему это отослать? А то GetActiveWindow принимает хендл окна, а оно не регистрирует сообщение WM_CHAR.
-
Все, спасибо, сам разобрался
-
> Допустим надо отправлять в приложение букву Ä
Пожалуйста, а от куда (и как) взялось $00C4 (196, decimal)?
-
> от куда (и как) взялось $00C4 (196, decimal)?
charmap.exe
-
> clickmaker (08.11.2010 16:26:06) [6]
Это ANSI код
-
ANSI - это 1252? > http://ascii-table.com/ansi-codes.php
А 1251 как сделать? Я писал маленкую прогу, которая работает с Yahoo msg и Skype (находит активное окно и т.д.), но не сумел послать 1251. В основном: if xWParam>=$20 then begin
SendMessage( aHandle, WM_CHAR, xWParam, 0); end else begin
SendMessage( aHandle, WM_KEYDOWN, xWParam, 0); SendMessage( aHandle, WM_CHAR, xWParam, 0); SendMessage( aHandle, WM_KeyUp, xWParam, 0); end;
-
> но не сумел послать 1251
1251 нельзя послать, ибо это зависит от набора символов, который использует тот, кому посылаешь можно послать код, а как его получатель отобразит - его дело
-
АNSI это 256 кодов, которые можно как угодно интерпритировать, тебе надо 1251 ну так и интерпритируй (считай) как 1251
-
Да, проблем. Вопрос был о Unicode, а Unicode не 255 кодов.
-
Зачем тогда спрашиваешь
> А 1251 как сделать?
Для Юникода надо использовать Юникод версию - SendMessageW Только проверь, что она объявлена в windows.pas
-
> Вопрос был о Unicode, а Unicode не 255 кодов.
а в уникоде нет понятия 1251 или 1252. Это отдельный набор символов см. SendInput()
-
> Вопрос был о Unicode, а Unicode не 255 кодов.
К тому же вопрос был не твой, ты в него влез, как будто места мало.
-
Извините, пожалуйста!
|