【问题标题】:Replace windows controls with custom ones用自定义控件替换 Windows 控件
【发布时间】:2017-08-29 23:14:24
【问题描述】:

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

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

已尝试查看 microsoft 文档,我 99% 确定我要么无法搜索我需要的东西,要么它没有记录。

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

谁能指出我正确的方向?

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

【问题讨论】:

  • 没有记录的方法可以做到这一点。你必须自己破解它。
  • 那太可惜了,希望有人知道一些事情,这样我就不会盲目了。
  • 作为旁注。为什么这个问题被否决了?这是对我自己无法发现的信息的非常合理和具体的要求。除了一些为 Vista 写的文章
  • 正如我所说,没有任何文档或支持,因此您需要对其进行逆向工程。因此,这是一个非常广泛和模糊的问题。我想这解释了投票。确实应该关闭并删除问题。

标签: windows winapi com


【解决方案1】:

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

还有 CLSID_ProgressDialog 和一些进度相关的接口你可以接管,但我不知道 Explorer 是否真的使用这些或它自己的自定义版本。

这显然会破坏你的系统,所以如果你走这条路,你真的必须知道你在做什么。

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

可以使用Resource Hacker 更改existing dialogs(添加/移动/隐藏控件和图像)。这在 90 年代很容易,但现在问题更多了,因为一些文件受到保护并且 Windows 更新更常见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    相关资源
    最近更新 更多