将窗口控件替换为自定义控件



我一直在尝试寻找改变窗口控件外观的方法。 例如,在窗口级别更改 OpenFileDialog UI,或者将文件复制/删除/移动对话框完全转换为其他内容,例如一系列磁盘或装满液体的存储桶。

环顾四周,我发现我可以编写一个可以使用的 com 应用程序,而不是默认的 Windows 应用程序。但是我不知道从哪里或如何开始这些,甚至不知道我如何看到我必须实现什么才能实现这一目标,也不知道我如何能够告诉 Windows 使用我的自定义而不是默认的。

尝试查看Microsoft文档,我99%确定我无法搜索我需要的内容或未记录。

我知道Stardock有一些应用程序可以做到这一点,我可以制作图形,但是其中的乐趣在哪里?

有人能为我指出正确的方向吗?

只对能够为 Windows 10 实现这一点感兴趣。

理论上,您可以编写自己的IFileOpenDialogIFileSaveDialog实现,并在HKCRCLSID中覆盖Windows注册。这可能不会影响使用较旧的打开/保存通用对话框的旧应用程序。

您还可以接管CLSID_ProgressDialog和一些与进度相关的界面,但我不知道资源管理器是否真的使用这些或它自己的自定义版本。

这显然可能会破坏您的系统,因此如果您沿着这条路走下去,您真的必须知道自己在做什么。

在开发此功能时,您可以选择选择性注入到一组有限的进程中,并改为挂钩CoCreateInstance

对现有对话框的更改(添加/移动/隐藏控件和图像)可以使用资源黑客完成。这在 90 年代很容易,但现在问题更大,因为有些文件受到保护,而 Windows 更新更常见。

最新更新