【发布时间】:2009-10-27 18:22:16
【问题描述】:
我正在使用 C# 以编程方式创建一个文件夹,并且需要将文件夹的默认视图设置为“缩略图”。
【问题讨论】:
标签: c# filesystems directory
我正在使用 C# 以编程方式创建一个文件夹,并且需要将文件夹的默认视图设置为“缩略图”。
【问题讨论】:
标签: c# filesystems directory
此处列出了相关的注册表项: http://support.microsoft.com/kb/812003
但是,需要选择“记住每个文件夹的视图设置”才能使该知识库文章中的更改生效。程序在没有特定用户提示的情况下更改它似乎是“不良行为”。
更新:对于desktop.ini,我从来没有使用过它;但是,该站点似乎列出了一些可能值得研究的 CLSID: http://www.xs4all.nl/~hwiegman/desktopini.html
特别是 [ExtShellFolderViews] 部分。我试了一下,但没有任何运气。
【讨论】:
我知道操作此设置的唯一方法是通过 pInvoke,但似乎没有消息将视图设置为缩略图。 Here 是针对 WinXP 的代码 sn-p。
【讨论】:
假设您自己使用ListView 执行此操作,您可以将View 属性设置为LargeIcon,或者如果这还不够(您提到缩略图),您可能应该设置@987654324 @ 为 true 的项目并自己绘制它们。
【讨论】:
使用 FVM_THUMBSTRIP 调用 IFolderView::SetCurrentViewMode
不确定应该从哪个资源管理器窗口查询 IFolderView。用户桌面上可能有多个资源管理器窗口,如果您的完整性级别较低,则在较高完整性级别下运行的浏览器窗口将拒绝您访问。
【讨论】:
根据这个post可以引用shdocvw.dll来查询当前的IServiceProvider。然后得到theIShellBrowser --> IShellView --> IFolderView。当您拥有IFolderView 时,您可以获取/设置文件夹的当前查看模式。
【讨论】: