以编程方式更改C#中的Explorer视图

时间:2009-10-27 18:22:16

标签: c# filesystems directory

我是以编程方式使用C#创建文件夹,需要将文件夹的默认视图设置为“缩略图”。

5 个答案:

答案 0 :(得分:2)

此处列出了相关的注册表项: http://support.microsoft.com/kb/812003

但是,需要选择“记住每个文件夹的视图设置”才能使该KB文章中的更改生效。对于一个程序来说,如果没有特定的用户提示就改变它,这似乎是“不良行为”。

更新:对于desktop.ini,我使用它的运气量从未如此之高;但是,这个网站似乎列出了一些可能值得研究的CLSID: http://www.xs4all.nl/~hwiegman/desktopini.html

特别是 [ExtShellFolderViews] 部分。我给了它一个旋转,但没有任何运气。

答案 1 :(得分:0)

假设您自己使用ListView执行此操作,可以将View属性设置为LargeIcon,或者如果这还不够(您提及缩略图)您可能应该将OwnerDraw设置为true并自行绘制。

答案 2 :(得分:0)

我知道操作此设置的唯一方法是通过pInvoke,但看起来没有消息将视图设置为缩略图。 Here是针对WinXP的代码段。

答案 3 :(得分:0)

使用FVM_THUMBSTRIP

调用IFolderView :: SetCurrentViewMode

不确定您应该从哪个资源管理器窗口查询IFolderView。用户桌面上可能有多个浏览器窗口,如果您来自较低的完整性级别,那些在较高完整性级别下运行的窗口将拒绝您访问。

答案 4 :(得分:0)

根据此post,您可以引用shdocvw.dll来查询当前的IServiceProvider。然后获取theIShellBrowser - > IShellView - > IFolderView。当你有IFolderView时,你可以获得/设置文件夹的当前视图模式。