微软拼音卡顿的问题

微软拼音最近每次激活的时候都要卡上个几分钟。而且不是一个程序只卡一次,中英文切换之后还会继续卡。

用了Process Monitor跟踪了一下,发现每次切换中英文的时候,微软拼音都会在%appdata%\Microsoft\InputMethod\Chs下面创建一个名字为UDPXXXX(这里XXXX是16进制数字).tmp的文件,我这个目录下有六万五千多个这样的文件。从命名风格来看,很明显是在调用GetTempFileName,而这个函数有65535个文件的限制,不删除文件的话,第65536次调用会失败,应该是微软拼音没有处理好调用这个函数失败的情况,也没有删除临时文件的代码,就卡住了。

目前的绕过这个问题的方法是把

del %appdata%\Microsoft\InputMethod\Chs\*.tmp /q

加到每日备份脚本。

已经向微软反映了这个问题。不知道微软为什么临时文件不放%TEMP%放应用程序目录下,以及为什么不定期清理自己创建的临时文件。

Advertisement

One response to “微软拼音卡顿的问题”

  1. […] 在网上搜索的时候,发现了一位仁兄写的文章,看了下,发现确实在%AppData%MicrosoftInputMethodChs 产生了很多UDP开头的临时文件,而且来源可能是GetTempFileName,删除之后,输入法就恢复正常了。但是每次切换输入法都会产生一个临时文件,用一个批处理每次开机就删除下文件感觉还是不爽,特别是我基本能不关机就不关机,都是休眠。 […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.