如何解决输入法问题

coffeman 2002-02-21 10:34:24
各位大哥大姐们:
小弟正在做一个应用程序,想在该应用程序中的系统设置中添加关于输入法的设置,如把输入法设置为全拼或五笔等,保存退出后,当焦点在输入框时,自动输入法自动为该所设置的输入法。望各位高手们尽快给我回复,不胜感激!

coffeman
...全文
36 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
williamyu 2002-02-26
  • 打赏
  • 举报
回复
建一表,输入法名称varchar(20)、输入法(16进制)char(8)、输入法(16进制)ulong、是否选种char(1).
从注册表中读取输入法。
string ls_preload[]
int temp,upper

RegistryKeys("HKEY_CURRENT_USER\keyboard layout\preload",ls_preload[])
upper=UpperBound(ls_preload)
FOR temp=1 TO upper
RegistryGet(&
"HKEY_CURRENT_USER\keyboard layout\preload\"+ls_preload[temp],&
"",ls_layout[temp])
RegistryGet(&
"HKEY_LOCAL_MACHINE\System\CurrentControlSet\control\keyboard layouts\" &
+ls_layout[temp],"layout text",ls_layout_text[temp])

NEXT
存入表中,计算16进制->10进制。再做上选种标记。
声明:function boolean ActivateKeyboardLayout(long var1,uint var2 ) library "user32.dll"

需要时:ActivateKeyboardLayout(16进制的输入法,1)

njscorpio 2002-02-25
  • 打赏
  • 举报
回复
楼上的!他要的不是这个啊
programbcb 2002-02-24
  • 打赏
  • 举报
回复
function boolean ImmSimulateHotKey (UnsignedLong hWnd,UnsignedLong dwHotKeyID) library "IMM32.dll"
function unsignedlong GetKeyboardLayout (unsignedlong wLayout)library "user32.dll"
function boolean ImmIsIME(unsignedLong hklKeyboardLayout)library "IMM32.DLL"

//设置中文
ulong hklKeyboardLayout

hklKeyboardLayout=GetKeyboardLayout(0)
if not ImmIsIME(hklKeyboardLayout) then
ImmSimulateHotKey(handle ( adr_dragobject ),112)
end if
//设置英文
ulong hklKeyboardLayout

hklKeyboardLayout=GetKeyboardLayout(0)
if ImmIsIME(hklKeyboardLayout) then
ImmSimulateHotKey(handle ( adr_dragobject ),112)
end if
njscorpio 2002-02-24
  • 打赏
  • 举报
回复
继续观望
njscorpio 2002-02-23
  • 打赏
  • 举报
回复
观望中~~~~~~~
njscorpio 2002-02-21
  • 打赏
  • 举报
回复
观望中~~~~~~~

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧