我正在寻找一种以编程方式使用资源管理器shell提示用户输入文件名,我只想加载系统shell扩展。
我正在寻找此功能的原因是我想要消除第三方shell扩展,以此作为崩溃和其他不确定行为的可能原因。
理想情况下,我错过了一个标记,我可以将其传递给一个函数,这对于一个只安装系统shell扩展的资源管理器实例来说就像是一个“安全模式”。这似乎是一个必不可少的功能,我花了很多时间仔细研究文档,发现它无济于事。
我查看了CFileDialog,GetOpenFileName和IFileOpenDialog的API文档。看起来防止加载非系统shell扩展的唯一方法是通过注册表处理或使用软件实用程序来做某种全局的hackery。这些都不适合表现良好的应用程序。
我知道我可以使用不是基于资源管理器的“旧样式”文件对话框,但是如果我强制使用它,我的用户会杀了我。 :)
我能想到的唯一方法是(重新)重新发明轮子并编写一个类似浏览器的文件打开对话框。