如何发汉字给其他程序而不出现乱码 (不切换输入法状态) (30

  • 主题发起人 刘麻子
  • 开始时间

刘麻子

Unregistered / Unconfirmed
GUEST, unregistred user!
如何发汉字给其他程序而不出现乱码 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (不切换输入法状态) (300分)<br /> &nbsp; &nbsp; 我写了个非正规的输入法初步实现,用键盘钩子拦截屏蔽按键消息<br>&nbsp; &nbsp; &nbsp;转发汉字消息,(用WM_IME_CHAR),后来发现一个问题。在某些情<br>&nbsp; &nbsp; &nbsp;况下,比如98下的Word程序,如果该程序的输入法状态在EN,那么<br>&nbsp; &nbsp; &nbsp;得到将是乱码,我估计可能是WORD认为当前是英文输入状态,把发来的<br>&nbsp; &nbsp; &nbsp;汉字消息当做了2个ASCII字符之类的。后来我跟踪了Word收到的消息,<br>&nbsp; &nbsp; &nbsp;发现他根本没有收到WM_IME_CHAR消息。。我又找到钱达智先生的例子<br>&nbsp; &nbsp; &nbsp;一试,也是和我那程序类似的情况,出现乱码。。我不想用程序切换<br>&nbsp; &nbsp; &nbsp;输入法状态。。也不想写成真正的输入法程序,只想给他汉字就可以了..这个有可能么?<br>&nbsp; &nbsp; &nbsp;:)我的QQ:71892967 邮箱:liu_mazi@163.com &nbsp; 我那代码下载地址:<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;http://www.efile.com.cn/efile/liumazi/Testing.rar<br>&nbsp; &nbsp; &nbsp; 还有个问题,imm32.dll中的ImmGenerateMessage这个函数的作用到底<br>&nbsp; &nbsp; &nbsp; 是什么?就是把缓冲区里面的消息都发出去么?如何利用他发送给程序<br>&nbsp; &nbsp; &nbsp; 汉字?能举个简单例子吗?WM_IME_COMPOSITION消息到底起什么作用的?<br>&nbsp; &nbsp; &nbsp; 如何利用他发汉字给程序??具体怎么做呢? &nbsp;万分感谢!
 
不知是不WORD 是用uni-code的原因??
 
谢谢kouchun的回复!不错,开始我也考虑到了编码的问题,怀疑是否word用宽字符?<br>后来我做了试验,应该不是这个原因。。 :) &nbsp;另外,如果把输入法切换到中文状态<br>(任意一种),就不会出现乱码了。。 &nbsp;但是我不想我的程序去切换输入法状态。。:)
 
帮朋友顶一下
 
用键盘钩子拦截屏蔽按键消息<br>&nbsp; &nbsp; &nbsp;转发汉字消息,(用WM_IME_CHAR),<br><br>可以用 剪贴板 吗?
 
我以前是通过 剪贴板 完成的。
 
&nbsp;先谢谢hfghfghfg , 各位大哥请继续讨论 &nbsp; :)<br>&nbsp; 我再去找找资料看 &nbsp;如果实在不行只有用这个办法了。。。但是<br>1。这可能会影响用户正常使用<br>2。可能仍然有乱码的问题
 
我以前做过一个类似的程序。<br>&nbsp; 是为了辅助录入的。类似 delphi的Ctrl+Space 或 Vb 的Ctrl+J。<br><br>其实用 剪贴板 也很麻烦。还有监控 剪贴板 的变化。<br><br>我手里没有98 所以没法测试。<br>不过建议你先写个程序 通过 剪贴板 向 word 发汉字试试
 
最好不要用剪贴板 &nbsp; &nbsp;:)<br>&nbsp;如何利用WM_IME_COMPOSITION发汉字?哪位给个例子?
 
不懂, 帮顶...
 
&nbsp;各位富翁,不要光顶嘛。。。。 帮我一下,谢谢了! &nbsp; &nbsp; :)
 
这个问题的产生,是编码的问题.汉字在计算机系统中是必须要有接口才能和应用程序衔接的,如果直接调用,就不能从字库中输出汉字编码,所以在调用前有一个步骤,就是从汉字库中提出这个汉字.具体怎么实现,我没弄清楚.如果在EN状态下输入汉字编码,就等于绕开了汉字库,直接打英文字母一样,就象是在E文的操作系统显示汉字一样的道理.
 
是丫是丫,说的有道理!! &nbsp; 谢谢!! 谢谢!!<br>但是如果我把输入法状态设为中文状态(任意一种)就不会乱了,<br>还有其他普通的程序(比如记事本)无论是否EN状态 也不会乱。<br><br>据说,“萬能五筆一類的外掛軟件有一個時期就是依靠這種方法的。”(要把输入法状态设为CN)<br>还有,我大哥说:“象IBM的VV(语音输入程序)也是要求把当前输入法设为CN才能正常工作” :( &nbsp;
 
&nbsp;肯定有办法的!! &nbsp;苦苦寻找中。。。 &nbsp; :~( &nbsp;<br>&nbsp; 谁来救我?? Help me ! Help me ! Help me ! Help me ! Help me ! Help me !
 
问题的根源已经找到了<br>你还要什么?
 
就是要“如何发汉字给其他程序而不出现乱码 (不切换输入法状态)”<br>&nbsp; 否则我就不发帖子了,你说的根源是什么?难道我发帖子之前不知道这些么 &nbsp; :(<br>&nbsp;难道我300分求的就是确认 -&gt; “ 会出现乱码” 吗??? 我要的是解决办法!
 
我想知道.<br>
 
三个字<br>"源代码"
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部