我想用我编写的对话框替换标准的系统打开文件对话框,这意味着无论在哪个程序中打开文件,都将显示对话框而不是标准的对话框,这可能吗?

似乎没有提供这样的API来实现此目的,是否可以使用某种挂钩技术,但这必须可靠并且不能被防病毒工具视为 spy 软件?

还有其他选择吗?

如果无法做到这一点,则可以在标准打开文件对话框的空格键或工具栏中添加一个按钮,该按钮调用我的对话框,该按钮允许用户选择文件,然后将所选文件的路径返回到“文件名”。 “标准对话框的输入框?

任何点击,链接和代码示例将不胜感激。

最佳答案

从Vista开始,FileOpen/FileSave对话框现在为“Common Item Dialogs”,其中IFileOpenDialog和IFileSaveDialog是两个已发布的实现。

由于它们只是具有已知CLSID的COM对象,因此您可以通过使用其CLSID重新注册来替换它们,从而摆脱困境。从未尝试过类似的操作,可能会触发各种警钟。

Vista之前的文件对话框可以是hooked in process,但是我从来没有遇到过有关全局挂钩或类似内容的任何信息。

09-19 08:31