经过Filemon(注意:现在官方只有Process Monitor下载了)定位,程序频繁访问了msctf.dll和msimtf.dll。
这两个是输入法相关的DLL。
于是做了测试:
在Edit中输入时,把中文输入法打开,那么,用户输入时,不会读写硬盘;如果关掉输入法,则会读写硬盘文件。
但是,总不能让用户只输入数字还要把输入法打开吧?
于是,程序启动时关闭输入法:
HWND hWnd = GetDlgItem(IDC_EDIT_USER_RESULT)->m_hWnd;这样,用户无需操作。
HIMC hIMC = ImmGetContext(hWnd);
ImmAssociateContext(hWnd, NULL);
ImmReleaseContext(hWnd, hIMC);
测试了一下,不论是否打开中文输入法,均没有频繁读写文件现象。
No comments:
Post a Comment