Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用自定义控件替换windows控件_Windows_Winapi_Com - Fatal编程技术网

用自定义控件替换windows控件

用自定义控件替换windows控件,windows,winapi,com,Windows,Winapi,Com,我一直在寻找改变windows控件外观的方法。 例如,在windows级别更改OpenFileDialog UI,或者将文件复制/删除/移动对话框完全转换为其他内容,例如一系列磁盘或装满液体的桶 环顾四周,我发现我可以编写一个com应用程序来代替默认的windows应用程序。但我不知道从何处或如何开始,甚至不知道如何才能看到我必须实现什么才能实现这一点,也不知道如何告诉windows使用自定义的而不是默认的 我已经尝试查看microsoft文档,我99%确定我无法搜索我需要的内容,或者它没有文档

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

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

我已经尝试查看microsoft文档,我99%确定我无法搜索我需要的内容,或者它没有文档记录

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

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


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

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

还有
CLSID\u ProgressDialog
和一些与进度相关的接口,您可以接管,但我不知道Explorer是否实际使用了这些接口或它自己的自定义版本

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

在开发过程中,您可以选择选择性地注入有限的一组进程,并钩住
CoCreateInstance


可以使用来更改(添加/移动/隐藏控件和图像)。这在90年代非常容易,但现在问题更大,因为有些文件受到保护,Windows更新更常见。

没有记录在案的方法来做到这一点。你得自己动手。好吧,那太可惜了,我希望有人知道一些事情,这样我就不会瞎了。顺便说一下。为什么这个问题会被否决?这是一个非常合理和具体的信息要求,我还没有能够发现自己。除了我说过的为VistaAs编写的一些文章外,没有任何文档记录或支持,因此您需要对其进行反向工程。因此,这是一个非常广泛和模糊的问题。我想这就是投票的原因。事实上,这个问题应该被关闭和删除。