是否可以替换系统打开文件对话框?

Edw*_*Yip 5 windows api openfiledialog

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

似乎没有提供这样的API可以完成此操作,是否可以使用某种挂钩技术,但这必须可靠并且不能被防病毒工具视为间谍软件?

还有其他选择吗?

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

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

Kev*_*ose 5

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

由于它们只是具有已知 CLSID 的 COM 对象,因此您可以通过使用其 CLSID 重新注册来替换它们。从来没有尝试过这样的事情,可能会敲响各种警钟。

Vista 之前的文件对话框可以在 process 中挂钩,但我从未遇到过有关全局挂钩或等效内容的任何内容。