c++ - windows 7 和 8 的常用对话框可以 Hook 吗

标签 c++ winapi windows-7 hook filedialog

我正在尝试用我自己的自定义对话框替换所有 Windows 通用(打开/保存)文件对话框调用。从目前为止我读到的内容来看,我可以通过自己编写或使用诸如 detours 或 easyhook 之类的库来 Hook 调用。但是最近有人告诉我,由于 session 架构的变化,这种方法只能在 Vista 之前实现,并且不可能在 Win 7/8 中进行这种切换。现在,我不是一个喜欢“不可能”这个词的人 :) 因此,如果您对此事有任何建议,请务必告诉我,我将不胜感激。

对于我要做什么,我的应用程序将由用户运行,它将驻留在托盘中,当用户从任何应用程序调用打开/保存对话框时,它应该用自定义对话框替换默认的通用对话框对话。

最佳答案

较新的样式 Common Item dialogs作为标准 COM 对象实现,因此您可以只实现自己的 DLL,它公开相同的 COM 接口(interface)(IFileOpenDialogIFileSaveDialog 等),然后覆盖用你自己的注册。这样,每个使用对话框的应用程序都会加载您的 DLL 而不是 Microsoft 的。

关于c++ - windows 7 和 8 的常用对话框可以 Hook 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17951567/

相关文章:

c++ - 我怎样才能让它更快? (C/C++) OpenCV

c++ - 列出文件夹中的所有文件返回空列表

c - 如何不阻止设备被弹出/安全移除?

vb.net - 如何在后台线程中运行代码并仍然访问UI?

c# - schtasks 表示状态为 "could not start"

c++ - 如何在三元运算符中打破 for 循环

c++ - 在 C++ 中的 if 中分配指针

javascript - 是否可以像读取txt文件一样读取cpp文件?

c++ - 如何制作自定义系统范围的鼠标光标动画?

java 卡住我的计算机并需要硬重启