本帖最后由 insomnia 于 2011-6-4 12:59 编辑
WIN7 要想改文件夹背景取消自动排列,并以平铺显示,目前还解决不了,现在只能不在同以文件夹实现。
Windows XP 可以很简单的设置文件夹背景更换且有自动排列选项,但micosoft 对windows7系统的文件夹预设的读取方式作了更改,所以用以前的更改winXP的方法来硬套win7身上是不行的,有个ThemeFolder软件可以更改,但改软件缺点很多,且操作很麻烦。所以本人还是选择另一个软件。有个国外有人开发了Windows 7 Folder Background Changer软件,这个软件可以实现windows7系统文件夹背景更换,但缺点是,该软件第一次打开会复制到C:\Windows\W7FBC 一个文件夹,并生成dll.dll和i.reg 两个文件,他对注册表注入的值就在i.reg里面,(网友可以自己打开查看),从而导致系统所有文件的查看方式都是“扩展的平铺” 很多人不能接受这种查看方式,本人也不能接受这样的瑕疵,但要实现既要有平铺查看又要更换背景,本人研究了几天,鉴于网上目前还没有人站出来为此做出一些突破。写了此日志供网友参考,希望有人能继续研究获得实质突破。
在没有打开Windows 7 Folder Background Changer软件之前,系统的查看方式是有平铺的,但打开之后,平铺查看方式就换了 扩展的平铺了。
打开Windows 7 Folder Background Changer后,该软件会复制到C:\Windows\W7FBC \下一些文件并对注册表注入新值,这样explorer启动后会加载他的链接库文件,从而实现预读各文件夹下的desktop.ini里的配置信息。他复制了什么文件我们不要管,我们的目标是 注册表:
他会对HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell 和HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\ 和其他几个地方注入新值和新键。
至于网上流行的 把查看方式改回平铺的VB脚本,我也用过,并仔细分析了下,这个脚本就是用 - 命令 直接删除
HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags
和HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU
和HKEY_CURRENT_USER\Software\Classes\Local Settings\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Streams\Defaults",
这样的话当然可以实现文件夹回复原样,因为Windows 7 Folder Background Changer注入的起作用的新值就这几处,且windows 发现bags 被删除,只要打开一个文件件,注册表会总动恢复bags,当然本人研究了几天发现,真正起作用的是HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags这个项,也就是说出现扩展的平铺后,只要把这个项删除了,Windows 7 Folder Background Changer访问不到其预设的注册表值,就会恢复到平铺了。但是删除后,又不能实现文件夹背景了,所以必须在这上面下刀。
先介绍下HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags这个项:
该项保存了系统已经打开过的各文件夹配置信息。Bags 项下会有很多从数字命名的子键,这些数字对应的就是已经访问过的文件夹,这些键的子键下的值就对应这些文件夹的配置信息。
再介绍下HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders
这个就是Windows 7 Folder Background Changer修改的关键所在,打开其下面的shell键会发现这些GUID 都是很熟悉的,对没错,{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}就是通用(普通)文件夹,
普通文件夹 {5c4f28b5-f869-4e84-8e60-f11db97c5cc7}
文档 {7d49d726-3c21-4f05-99aa-fdc2c9474656}
图片 {b3690e58-e961-423b-b687-386ebfd83239}
音乐 {94d6ddcc-4a68-4175-a374-bd584a510b78}
视频 {5fa96407-7e77-483c-ac93-691d05850de8}
库 {5f4eab9a-6833-4f61-899d-31cf46979d49}
文档库 {fbb3477e-c9e4-4b3b-a2ba-d3f5d3cd46f9}
图片库 {0b2baaeb-0042-4dca-aa4d-3ee8648d03e5}
音乐库 {3f2a72a7-99fa-4ddb-a5a8-c604edf61d6b}
视频库 {631958a6-ad0f-4035-a745-28ac066dc6ed}
所以到这里就可以发现我们可以在这里做些手脚,也就是说,Windows 7 Folder Background Changer在打开时会把系统的查看方式改为扩展的平铺,在系统访问一个文件夹时,系统会访问该键的不同文件夹类型的模版设定值,也就是上面几个DUID 里面的值来对一个打开的文件夹进行文件件视图配置。比如,打开一个都是音乐的文件夹时,系统就以音乐文件夹来定义这个文件夹,然后就访问[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{94d6ddcc-4a68-4175-a374-bd584a510b78}]下各项值,来配置这个文件夹的视图。所以我们只要把这些GUID简单的重命名,比如把{94d6ddcc-4a68-4175-a374-bd584a510b78-old}],然后他访问不到,就自然不会更改了。所以首先肯定把通用文件夹重命名了,因为系统默认文件夹类型是通用文件夹,且win7安装后所有文件件是以详细查看方式显示的,要想所有文件夹以平铺方式查看,就得点查看-平铺,然后点文件夹选项-应用到所有文件夹。这时候,系统的通用文件夹就是以平铺查看了。所以,我们要定义的可改背景和取消自动排列的文件夹类型不能是通用文件夹,随便选个,比如文档文件夹来作为我们的改背景文件夹模版。那么就是把
普通文件夹 {5c4f28b5-f869-4e84-8e60-f11db97c5cc7} 重命名,比如 {5c4f28b5-f869-4e84-8e60-f11db97c5cc7-old}
文档 {7d49d726-3c21-4f05-99aa-fdc2c9474656}
图片 {b3690e58-e961-423b-b687-386ebfd83239} 重命名,比如{b3690e58-e961-423b-b687-386ebfd83239-old}
音乐 {94d6ddcc-4a68-4175-a374-bd584a510b78} 重命名,比如{94d6ddcc-4a68-4175-a374-bd584a510b78-old}
视频 {5fa96407-7e77-483c-ac93-691d05850de8} 重命名,比如 {5fa96407-7e77-483c-ac93-691d05850de8-old}
文档文件夹就不要改名了。
这时候,所有文件夹都是以平铺方式查看了,当然了,也改不了背景了,所以要改背景,只要把改文件夹定义为文档文件夹,就可以改了,(鼠标右键-自定义文件夹-优化此文件夹改为文档文件夹)
对于有的 把shell下的项都重命名了,还是不能平铺显示,原因就在于系统已经定义了文件夹视图设置,就是bags下面的许多数值名的子键,把bags下面的所有数字名字的项全删了,并确保SHELL下面的几个GUID也重命名了,系统就回到平铺了。
同理,对于文件夹类型都改了,且文档类文件夹没动,仍然改不了文件夹背景,也是因为系统已经定义了这个文件夹视图设置,同样做法, 把bags下面的所有数字名字的项全删了,再用那个改背景软件 改就可以了。
对于要取消自动排列,大家可以网上下载这个取消自动排列的reg,再导入时注意,把里面的
;Generic - Folder Template
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{5C4F28B5-F869-4E84-8E60-F11DB97C5CC7}]
"Rev"=dword:00000000
"FFlags"=dword:43000000
"Vid"="{0057D0E0-3573-11CF-AE69-08002B2E1262}"
"Mode"=dword:00000001
"LogicalViewMode"=dword:00000001
"IconSize"=dword:00000010
"GroupView"=dword:00000000
"GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}"
"GroupByKeyID"=dword:00000000
"GroupByDirection"=dword:00000001
;Music - Folder Template
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{94d6ddcc-4a68-4175-a374-bd584a510b78}]
"Rev"=dword:00000000
"Vid"="{0057D0E0-3573-11CF-AE69-08002B2E1262}"
"Mode"=dword:00000001
"LogicalViewMode"=dword:00000001
"IconSize"=dword:00000010
"GroupView"=dword:00000000
"GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}"
"GroupByKeyID"=dword:00000000
"GroupByDirection"=dword:00000001
"FFlags"=dword:43000000
ictures - Folder Template
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{b3690e58-e961-423b-b687-386ebfd83239}]
"Rev"=dword:00000000
"Vid"="{0057D0E0-3573-11CF-AE69-08002B2E1262}"
"Mode"=dword:00000001
"LogicalViewMode"=dword:00000001
"IconSize"=dword:00000010
"GroupView"=dword:00000000
"GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}"
"GroupByKeyID"=dword:00000000
"GroupByDirection"=dword:00000001
"FFlags"=dword:43000000
;Videos - Folder Template
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{5fa96407-7e77-483c-ac93-691d05850de8}]
"Rev"=dword:00000000
"Vid"="{0057D0E0-3573-11CF-AE69-08002B2E1262}"
"Mode"=dword:00000001
"LogicalViewMode"=dword:00000001
"IconSize"=dword:00000010
"GroupView"=dword:00000000
"GroupByKey:FMTID"="{00000000-0000-0000-0000-000000000000}"
"GroupByKeyID"=dword:00000000
"GroupByDirection"=dword:00000001
"FFlags"=dword:43000000
这几个删除再导入,不然...。。。。。,也就是只导入我们要保留的文档文件夹类型,其他都不要导入,
到此,文档类文件夹就可以实现改背景和取消自动排列了,其他非文档类文件夹则保持原样,
用Windows 7 Folder Background Changer设置改文件夹的背景即可,关于Windows 7 Folder Background Changer的几个细节:
1.该软件不能设置包含中文路径的文件夹背景
2.在设置不了文件夹字体颜色的话取消show shadow under text即可。
虽然这样不是真正实现平铺和背景完全解决,但也解决了部分网友实实在想该背景有实在不忍心全部都是扩展的平铺,起码要做到我的电脑里面的几个硬盘要平铺显示吧。暂时先部分满足下需求,把要求不严格的文件夹视图设为大图标中等图标,看上去和平铺差不多,是可以的,
不要到WINDOWS8都发布了,我们还没明白WIN7是怎么回事。所以可惜的是到现在还没有研究出来怎么实现可以原封不动的像XP那样改背景,而且中文文件夹也可以改。
关于扩展的平铺的原因,本人也想过他其实就是平铺的改版,只是他都是以一行一个文件的方式平铺,也显示文件类型,文件大小,等信息,还显示以前没有的脱机可用性,不显示脱机可用性,在注册包里可以改掉,我试过,所以我想办法能不能把这个扩展的平铺显示的占位宽变短,不让整行显示,实现一行排列多个文件,那样就可以达到和平铺一样了,但是研究好久还没结果, 看下shell项的项值可以发现右边的FolderType,SniffedFolderType,FFlags,ColInfo,等就会有想法了,但是,经过参考国外网友对这里的研究我对这里解释下:
经过这些扩展平铺定义后的注册表,shell 下多了SniffedFolderType等,他的过程就是,当打开一个文件夹时,系统的SniffedFolderType功能就自动判断该文件夹是音乐文件夹还是 文档文件夹还是视频文件夹等,如果判断出来则自动定义该文件夹为。。。。,然后读取文件夹模版设置对该文件夹进行配置,并在KnownFolderDerivedFolderType项写入的文件夹代码,若没判断出,则视为通用文件夹,则写入FolderType 为NotSpecified,其他的有关值的解释如下:
“Rev”=dword:00000000 = 这个是设置自动排列和对齐到网格的,.
“FFlags”=dword:43000001 =自动排列并是否显示,. 43000000 关闭,43000001 打开.
“Vid”=”{0057D0E0-3573-11CF-AE69-08002B2E1262}” = 这是图标视图.
图标视图vid代码
图标视图 1 {0057D0E0-3573-11CF-AE69-08002B2E1262}
列表 3 {0E1FA5E0-3573-11CF-AE69-08002B2E1262}
详细信息 4 {137E7700-3573-11CF-AE69-08002B2E1262}
缩列图5 {8BEBB290-52D0-11D0-B7F4-00C04FD706EC}
平铺 6 {65F125E5-7BE1-4810-BA9D-D271C8432CE3}
内容 7 {8EEFA624-D1E9-445B-94B7-74FBCE2EA11A}
“Mode”=dword:00000001 = 图标视图(same as vista)
“LogicalViewMode”=dword:00000001 = 对齐到网络dword:00000003 不检查
“IconSize”=dword:00000030 图标大小.
10/30/60/100 小图标/中等图标/大图标/特大图标
ColInfo 这个是 文件显示的信息,比如System.ItemTypeText;文件类型System.Size;文件大小System.DateModified;修改时间System.OfflineAvailability脱机可用性
GroupView 排列方式
GroupByKey 分组依据
GroupByDirection 分组依据递减、递增
对为改动的shell 项里的WinPos1366x768x96(1).bottom,WinPos1366x768x96(1).right等,我也留意了,但还是一点办法没有。
所有这些只是研究的推测,供参考,也许有错误之处,
目前国外网友对此也还没有解决对策,所有我研究几天也放弃了,对于目前的解决方案,只能是这样了,有网页能解决此问题,一定要站出来。
具体图文解释请看http://user.qzone.qq.com/365965114/blog/1303972572
http://hi.baidu.com/insomniashu/blog/item/6ef13181881703a96c8119fd.html
|