Jackeriss 发表于 2014-2-11 13:19:21

关于desktop.ini

本帖最后由 Jack 于 2014-2-11 13:21 编辑

1.桌面上为何有两个desktop.ini
大家知道Windows是不允许在同一个目录下存在同名文件的,那么为什么在Win7桌面会出现两个同名“desktop.ini”?其实这主要是大家对桌面理解有误,实际上桌面并非是一个单一目录,因为桌面上保存保存本机当前用户和公共用户对应桌面快捷方式(包括文件)和特殊文件(如我的电脑、回收站)。因此对于Win7来说,桌面实际上是多个目录结合体,其中的“desktop.ini”则是不同用户的桌面配置文件,它的作用是存储用户对文件夹的个性设置,并保存着系统文件夹(如我的文档、下载目录)、开始菜单在多语言环境下显示为对应的语言。

了解桌面真实面目后,现在就可以解释同名文件的存在了,实际上两个“Desktop.ini”是分别对应当前用户和公共用户的配置文件。我们只要依次选中这两个文件右击选择属性,就可以看到一个文件位置是“C:\users\当前用户\desktop”,另一个则位于“c:\users\public\desktop”,所以实际上“Desktop.ini”是位于不同目录下的两个文件,它也是系统正常文件并不是病毒。


小提示:
由于“desktop.ini”保存着系统文件夹、开始菜单在多语言环境下显示为对应的语言,如果误删这个文件,则可能造成当前用户下的目录如“下载”、“我的音乐”变为英文显示。此时只要启动记事本输入下列的代码保存为“desktop.ini”放置在“C:\users\当前用户\desktop”,并设置其系统、隐藏属性即可:
[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21769
IconResource=%SystemRoot%\system32\imageres.dll,-183


2.使用desktop.ini为任务计划程序建立一个固定目录
平时很多人喜欢使用任务计划执行一些自动任务,被执行的程序都是借助命令行完成,这就要求被执行程序需要有固定路径,如果更改程序所在目录名称就会导致任务无效。现在借助“desktop.ini”就可以建立一个固定目录,无论用户怎么更改目录名称,目录实际名称都不会改变。

第1步:在任意分区如I盘建立一个名为“Jack”的目录,然后将需要执行计划任务的程序如“Jack.exe”放置在该目录。接着启动“记事本”输入下列的代码,将文件保存为“desktop.ini”保存在“i:\Jack”下:
[.ShellClassInfo]
LocalizedResourceName=Jack

第2步:启动命令提示符依次输入下列的命令,为“desktop.ini”添加上“系统”、“隐藏”属性:
Cd k:\Jack
Attrib +s +h desktop.ini

第3步:现在任务计划中指定的命令“i:\Jack\Jack.exe”就可以固定执行了,不管用户以后将“i:\Jack”改为什么目录名称都可以执行“i:\Jack\Jack.exe”(因为Jack目录的实际名称是不会变化的)。比如将Jack目录名称更改为“0xAA55”,还可以再建立一个名为“0xAA55”目录,实现两个同名目录。

第4步:由于Windows是不允许在同一个目录下存在同名文件的,实际上包含“desktop.ini”的“0xAA55”目录,它的实际名称仍然是“i:\Jack”,它之所以能显示为“0xAA55”,正是“desktop.ini”的存在所致。打开命令提示符使用DIR命令可以看到前者真正名称仍为“Jack”,也就意味着我们无论将“I:\Jack”怎么改名,都可以让任务计划正常的运行。


小提示:
除了建立不可改名的目录外,我们还可以根据自己需要设置更多参数
1.设置一个永远显示同一名称目录。只要设置“desktop.ini”的属性为只读,这样用户就无法更改指定目录的显示名称了(只是显示名称不变,Dir命令显示的是最终更改的名称)。比如可以用于重要目录保护,使用户无法改变其显示。
2.建立一个醒目的目录。目录名称是通过“LocalizedResourceName=”后的参数显示,因此为了让目录更加醒目,可以设置“LocalizedResourceName=<>?/”(用Windows保留字符作为文件名,重启后生效),这样目录名称就显示为“<>?/”。

3.自定义文件夹图标、背景


1.文件夹图标
[.ShellClassInfo]
InfoTip=注释
IconFile=图标文件的路径
与注册表对应说明
与注册表对应说明
IconIndex=选择要使用文件中的第几个图标
自定义图标文件,其扩展名可以是.exe、.dll、.ico等。


2.文件夹背景

{BE098140-A513-11D0-A3A4-00C04FD706EC}={BE098140-A513-11D0-A3A4-00C04FD706EC}
[{BE098140-A513-11D0-A3A4-00C04FD706EC}]
Attributes=1
IconArea_Image=11.jpg
[.ShellClassInfo]
ConfirmFileOp=0
其中11.jpg是图片,把以上内容用记事本保存为desktop.ini ,和背图片一起放在要改变背景的文件夹内。为了防止误删,可以把desktop.ini和图片设为隐藏属性。



4.标示特殊文件夹
系统中有一些特殊的文件夹,如回收站、我的电脑、我的文档、网上邻居等。这些文件夹的标示有两种方法:


1.直接在文件夹名后续上一个"."再加对应的CLSID
如:把一个文件夹取名为:新建文件夹.{20D04FE0-3AEA-1069-A2D8-08002B30309D}
(注意:新建文件夹后面有一个半角的句号)
那么这个文件夹的图标将变为我的电脑的图标,并且在双击该文件夹时将打开我的电脑。
在下面查看CLSID
在注册表中展开HKEY_CLASSES_ROOT\CLSID\,在CLSID分支下面就可以看到很多的ID,这些ID对应的都是系统里面不同的程序,文件,系统组件等
常见组件类对应的CLSID:
我的文档:450D8FBA-AD25-11D0-98A8-0800361B1103
我的电脑:20D04FE0-3AEA-1069-A2D8-08002B30309D
网上邻居:208D2C60-3AEA-1069-A2D7-08002B30309D
回收站:645FF040-5081-101B-9F08-00AA002F954E
Internet Explorer:871C5380-42A0-1069-A2EA-08002B30309D
控制面板:21EC2020-3AEA-1069-A2DD-08002B30309D
拨号网络/网络连接 :992CFFA0-F557-101A-88EC-00DD010CCC48
任务计划:D6277990-4C6A-11CF-8D87-00AA0060F5BF
打印机(和传真):2227A280-3AEA-1069-A2DE-08002B30309D
历史文件夹:7BD29E00-76C1-11CF-9DD0-00A0C9034933
ActiveX缓存文件夹: 88C6C381-2E85-11D0-94DE-444553540000
公文包: 85BBD920-42A0-1069-A2E4-08002B30309D
当然还有Win7的上帝模式:ED7BA470-8E54-465E-825C-99712043E01C(详见http://www.0xaa55.com/forum.php?mod=viewthread&tid=124&fromuid=21)

2.通过desktop.ini文件来实现
还以我的电脑为例:
新建一个文件夹,名字随便,然后在其下边建立desktop.ini文件,内容如下:
[.ShellClassInfo]
CLSID={相应的ID}
注:有部分病毒会建立这样的文件夹以达到隐藏自身的目的.另外这也是一种我们隐藏小秘密的方法.






0xAA55 发表于 2014-2-11 19:38:13

惭愧啊,才知道这两个文件是不同位置的!

909683964 发表于 2014-2-13 23:09:25

恩,这个必须顶

55AA 发表于 2017-10-11 22:54:01

这个文件还可以实现这么多功能{:4_98:}
页: [1]
查看完整版本: 关于desktop.ini