windows库
今天又特别注意了一下windows 7上的库(音乐库、视频库)等等,原以为是使用注册表累加的每一项,但后来不经意间发现是使用的特殊后缀的xml文件,当每添加或删除库中的文件夹时,就在这个xml文件里修改。
它的后缀是".library-ms",位置是在 "%appdata%Microsoft\Windows\Libraries",在资源管理器里面,它们看起来就像是文件夹,不过右键属性中比常规文件夹多一个“库”的选项卡,在这里可以增删包含文件夹和是否显示在导航窗格中。
在资源管理器中显示的名称并不是真实文件夹的名称,在命令行中显示出来的文件名称列表如下:
2010/12/09 09:01 <DIR> .
2010/12/09 09:01 <DIR> ..
2010/09/06 14:19 3,212 Documents.library-ms
2010/09/30 08:39 3,496 Music.library-ms
2010/09/30 08:39 3,532 Pictures.library-ms
2010/09/25 11:20 1,539 utilitys.library-ms
2010/09/30 08:39 3,510 Videos.library-ms
2010/12/09 09:01 1,456 迅雷下载.library-ms
6 个文件 16,745 字节
2 个目录 30,784,176,128 可用字节
其中,代表音乐库的Music.library-ms的文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
<name>@shell32.dll,-34584</name>
<ownerSID>S-1-5-21-3545117420-170660103-4234457633-1002</ownerSID>
<version>3</version>
<isLibraryPinned>true</isLibraryPinned>
<iconReference>imageres.dll,-1004</iconReference>
<templateInfo>
<folderType>{94d6ddcc-4a68-4175-a374-bd584a510b78}</folderType>
</templateInfo>
<searchConnectorDescriptionList>
<searchConnectorDescription publisher="Microsoft" product="Windows">
<description>@shell32.dll,-34586</description>
<isDefaultSaveLocation>true</isDefaultSaveLocation>
<simpleLocation>
<url>knownfolder:{4BD8D571-6D19-48D3-BE97-422220080E43}</url>
<serialized>MBAAAEAFCAAAAAAAADAAAAAAAY0gAAQBRAAAAsyOeXPxItcAD5wDCUMSLHwQ
O8gAFj0yBAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAMWAUAwHQB+TQDi66kGEiiNCAsCMw0ZGA8yQ6wFA
AAAAAAAAAAAAAAAAAAAAAAAA0BQMAAAAAAwH9EVRRAQVzVmczBAYAgAAEAw7+6uOjSxH9EVRqAAAAY+i
AAAAAEAAAAAAAAAAAAgNAAAAAAQVAMHAlBgcAMHAAAAQAMHAoBQZAwGAsBwMAIDAuAAZAwGAsBALA0CA
yAQMAgDAxAwMAAAAUAATAEDAAAAAA8RPZOCEA02b5VWYAgDAIAABA8uvf0zjj8RPZOiKAAAA+FAAAAAA
dAAAAAAAAAAAAAAAAAAAA0GAvBQeAUGAhBAAAQBA0BQMAAAAAAwH9k5IRAQT1NXajBAYAgAAEAw7++RP
POyH9k5IqAAAAQdGAAAAAMAAAAAAAAAAAAgNAAAAAAQTAUHAzBQaAMGAAAAQAMHAoBQZAwGAsBwMAIDA
uAAZAwGAsBALA0CAyAQMAcDA5AAMAAAAUAAAAUEAAAAHAAAABAAAAwBAAAwLAAAAAAAAAQEAAAwEAAAA
DAAAAgCB17LEAAAAPNFADpDXVNXZyNHXt9WelFGXNV3cpNGAAABAAAQBAAAoNAAAAEWAAAAHAAAALAAA
gGX1YvUGtNNS+epQiACCOMUYBAAAVCAAAkAAAAaiAAAAxMFUTJuiYZEvMhzQ7y/ETaCmt5cbAAAAEAAA
AAwHAAAAuAAAAMFAtAQMA0CA1AQLAIDAxAQLAMDA1AANAUDAxAQMAcDA0AgMAADAtAQMAcDAwAgNAYDA
wAQMAADAzAQLAQDAyAwMAQDA0AQNAcDA2AwMAMDAtAQMAADAwAgMAAAAAAAAAAAAAAAYAAAADAAAgiFA
AAAAAAAA0VmcylHAAAAAAAAAAAAAAQjz+1UllhyRnSAXIr0CT4rdzOMF4S73Rw4hEuyKHiEA04sfNVZZ
oc0pEwFyKtwE+a3sDTBu0+dEMeIhrsyhIBAAAAAA</serialized>
</simpleLocation>
</searchConnectorDescription>
<searchConnectorDescription publisher="Microsoft" product="Windows">
<description>@shell32.dll,-34588</description>
<isDefaultNonOwnerSaveLocation>true</isDefaultNonOwnerSaveLocation>
<simpleLocation>
<url>knownfolder:{3214FAB5-9757-4298-BB61-92A9DEAA44FF}</url>
<serialized>MBAAAEAFCAAAAAAAADAAAAAAAY0gAAQBRAAAAUEFZo/KEocAY1xOr1DBKHAW
dsza9QgyBAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA8YAUAwHQB+TQDi66kGEiiNCAsCMw0ZGA8yQ6wFA
AAAAAAAAAAAAAAAAAAAAAAAA0BQMAAAAAAwH9EVRRAQVzVmczBAYAgAAEAw7+6uOjSxH9EVRqAAAAY+i
AAAAAEAAAAAAAAAAAAgNAAAAAAQVAMHAlBgcAMHAAAAQAMHAoBQZAwGAsBwMAIDAuAAZAwGAsBALA0CA
yAQMAgDAxAwMAAAAUAAeAEDAAAAAA4RP0pTEAAVdixWajBAAiBACAQAAv7r76MKFe0Dd6oCAAAAcMCAA
AAQAAAAAAAAAAAAA4AAAAAAAQBQdAIGAsBQaAMGAAAAQAMHAoBQZAwGAsBwMAIDAuAAZAwGAsBALA0CA
yAQMAgDAxAgNAAAAWAAdAEDAAAAAA4uO9USEA0Udzl2YAAGAIAABA8uvurzoU4uO9UiKAAAA2xIAAAAA
BAAAAAAAAAAAAYDAAAAAA0EA1BwcAkGAjBAAAAEAzBAaAUGAsBAbAMDAyAgLAQGAsBAbAwCAtAgMAEDA
4AAMAMDAAAAFAAAAGBAAAwBAAAQAAAAAcAAAA8CAAAAAAAAAFBAAAMBAAAwAAAAAoQQ9+CBAAAwTTBwQ
6wVVzVmczxFU1JGbpNGXNV3cpNGAAABAAAQBAAAo1AAAA0YAAAAHAAAALAAAgWr+UIzVXipQ7Gmkp6tq
E9fjBAAAVCAAAkAAAAaiAAAAxMFUTJuiYZEvMhzQ7y/ETaCmt5cbAAAAEAAAAAwHAAAAuAAAAMFAtAQM
A0CA1AQLAIDAxAQLAMDA1AANAUDAxAQMAcDA0AgMAADAtAQMAcDAwAgNAYDAwAQMAADAzAQLAQDAyAwM
AQDA0AQNAcDA2AwMAMDAtAQMAADAwAgMAAAAAAAAAAAAAAAYAAAADAAAgiFAAAAAAAAA0VmcylHAAAAA
AAAAAAAAAQjz+1UllhyRnSAXIr0CT4rKjWNx5P73RoZmEuyKHiEA04sfNVZZoc0pEwFyKtwE+qyoVTc+
z+dEamJhrsyhIBAAAAAA</serialized>
</simpleLocation>
</searchConnectorDescription>
</searchConnectorDescriptionList>
</libraryDescription>
“发送到”菜单
文件右键菜单中的“发送到”菜单中的每一项的命令都由一个文件指定,文件在%AppData%Roaming\Microsoft\Windows\SendTo中,其中有普通的.lnk快捷方式,还有一个特殊后缀的文件。如下:
“发送到”菜单中的“邮件收件人”
%appdata%Microsoft\Windows\SendTo
中有一个文件名为"Mail Recipient.MAPIMail"的文件,它的文件内容只有"mail"4个字,它代表的就是文件的右键菜单中的“发送到”中的“邮件发件人“,使用此菜单可以快速调用默认邮件发送程序将文件当做附件,发送出去。
"发送到"中“文档”菜单
这个是一个名为“文档.mydocs”的空文件。
"发送到"中“压缩(zipped)文件夹”菜单
文件名为“Compressed (zipped) Folder.ZFSendToTarget”,内容为“Zip”。
"发送到"中“桌面快捷方式”菜单
文件名为"Desktop (create shortcut).DeskLink",内容为“Desktop”.
显示桌面命令
显示桌面在vsista之后有了些改动,使用了新的方式实现 ,当然也可以使用老的方式。
在xp、2003等老操作系统下面,显示桌面的功能%AppData%Roaming\Microsoft\Internet Explorer\Quick Launch下面的“Show Desktop.scf”文件(scf的全称是shell command file)完成,这个文件在资源管理器中显示由于desktop.ini中的设置而导致显示文件名为显示桌面。
[LocalizedFileNames]
Show Desktop.scf=@%SystemRoot%\system32\shell32.dll,-10113
它的文件内容为:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
在windows 7下面,显示桌面由%AppData%Roaming\Microsoft\Internet Explorer\Quick Launch下面的“Shows Desktop.lnk”文件实现,这个链接文件实际指向应该是@%SystemRoot%\system32\shell32.dll,-10113,但是我不知道这个链接如何被windows 7解释的,因为lnk文件是二进制格式,我还没有细致地研究它。同样地还有一个“windows Switcher.lnk”的快捷方式用来打开窗口切换界面。它们在资源管理器中显示的名称同样由“desktop.ini”更改了。
字体文件
%windir%fonts下面直接显示的字体名称并不是实际的字体文件,实际上一个字体文件可以包含多种字体,字体的文件后缀有.fon、.ttf和.ttc等。以“华文仿宋”为例,它的实际文件为STFANGSO.TTF。
如果还有其它的想起来或者遇到了,再添加之……