delphi - SendInput for Non Unicode, Non Ascii characters -
i writing global hook procedure. using sendinput send ascii ( < 255 ) , unicode characters. far working well. in language, tamil there characters combination characters not have unicode code points. in fonts there glyphs defined above 255. how send virtual key codes them?
though glyphs not have code points have glyph names u0baf_u0bbf. first , second part defined in unicode. these names referred named sequence , approved unicode.
code:
procedure genukey(const vk: integer; const bunicode: bool); var kb: tkeybdinput; input: tinput; begin {keydown} { zeromemory(@kb,sizeof(kb));} { zeromemory(@input,sizeof(input));} {keydown} if bunicode begin kb.wvk:= 0; kb.wscan:= vk; ; kb.dwflags:= $4; { keyeventf_unicode=4} end else begin kb.wvk:= vk; kb.wscan:= 0; ; kb.dwflags:= 0; end; input.itype:= input_keyboard; input.ki:= kb; sendinput(1, input,sizeof(input)); {keyup} if bunicode begin kb.wvk:= 0; kb.wscan:= vk ; kb.dwflags:= $4 or keyeventf_keyup; {keyeventf_unicode=4} end else begin kb.wvk:= vk; kb.wscan:= 0; kb.dwflags:= keyeventf_keyup; end; input.itype:= input_keyboard; input.ki:= kb; sendinput(1,input,sizeof(input)); end;
edit: yes, send each code point individually. there glyphs attached each code point. there 1 combining design of both. looks better visually , behaves 1 character. defined separately thought there should way send using sendinput.
edit2:
there characters can not combined mechanically.
edit 3: tests prove rob kennedy correct. second code point not displayed mechanically. intelligently combined first 1 third new combined glyph. glyph (name) encoding used. code same programmatically has interfered in process , hence problem.
many thanks
Comments
Post a Comment