Vista无法正常用输入法的两个解决方法
2008-01-20 17:02:17 来源:WEB开发网Windows Vista中很多朋友抱怨无法正常使用输入法,例如无法正常使用五笔输入,无法使用紫光拼音,无法使用拼音加加等。尤其是在IE浏览器里运行的时候。
这时候一般是由于IE保护模式的作用,由于IE保护模式依赖于UAC、UIPI和MIC的作用,所以大概可以认为是UAC、UIPI或者MIC的安全功能导致这些输入法出现问题。
1、一山不容二虎
保护模式下的IE进程运行在“低”级别,所以无法写入用户配置文件的区域,这样就可以阻止恶意网页破坏用户和系统数据。同时IE会自动把这种写入操作重定向到一个特定的区域。这样既能够确保安全,同时又能让IE的组件和加载项继续正常运行。
但是如果IE加载项必须要和一个“中级”的进程一起共享数据,那么可能就会有问题,因为这时候IE进程(加载项)所访问的数据实际上被重定向了,而“中级”依然会去访问原来的位置,这可能导致错误。
解决的办法:修改这些加载项,让它和外部进程一样同时有权限访问某个特定的区域;或者让外部进程也运行在“低级”级别。
此外,也可以手工修改系统,把该共享区域设置为允许“低级”进程访问。
2、UIPI惹的祸
如果IE加载项需要给外部进程发送Windows消息,就会被阻止。这是由于UIPI的作用,只允许高级进程给平级或者低级的进程发送消息,这有点类似以前的地下党,只允许上级联系下级(单线联系)。但是这可能会对一些老的输入法产生影响,导致无法正常工作。
解决的办法:对输入法进行修改,允许外部进程接受指定的Windows消息。或者使用RPC等安全机制,在IE进程和高级进程之间通信。
目前,只能手动修改系统,强行禁用UIPI,确保输入法的兼容性。不过这会减弱系统的安全性,同时也等于阉割了IE保护模式的功能(尽管系统提示IE保护模式仍然在起作用,实际上已经被大大削弱)。
在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem,新建一个DWORD键值EnableUIPI,设置为0即可。
重启系统,再测试几下,应该可以解决类似紫光拼音、拼音加加的问题,而且是真正的“彻底”解决。
赞助商链接