执行过“ 打开/保存 ”操作后,发现注册表里最新被访问的文件目录被更改,如何禁止CFileDialog修改注册表最新访问的目录?谢谢了!!!!!!被修改的注册表:
Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU\“最新访问文件的目录”
Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU\“最新访问文件的目录”
VC++的MFC对最近文件进行了包装,它使用户无需编写任何代码就可实现最近文件菜单。但这种方法也有缺陷:
①用户程序必须使用文档、视图结构,只能利用它提供的文档打开和保存文件,如果你使用自己编写的函数打开和保存文件,绕过了它的文档,则最近文件将无法使用。
②这种最近文件保存在注册表中,不易清除,容易形成注册表中垃圾,也没有提供用户清除最近文件的权利,不利于用户隐私的保护。
用ini文件实现最近文件可以解决上述问题,而且用编程控制MRU更灵活,可以提供更多功能。
但我不想修改打开菜单下的最近文件,而是禁止CFileDialog的“打开/保存”操作
修改注册表中的“最新访问文件的目录”。Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU\
“最新访问文件的目录”。
你也可以在程序运行前先把Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU\保存出来,完了之后再恢复:)