为什么有时候开机会自动打开文件或者文件夹

问题

我最近总是会收到如标题所述的问题,于是我决定是时候从我的私人工具包中拿出些东西了 。(这其
中还包括为一些程序员准备的小知识)

第一个问题:当你登录后,一个类似于C:Program FilesLitWare的目录会自动打开

原因:你的系统里存在两个相邻的目录,其中一个是另一个的严格前缀,例如下面的两个目录:C:Program FilesLitWareC:Program FilesLitWare Deluxe
如果你去注册表看看,你就会发现在HKEY_LOCAL_MACHINEMicrosoftWindowsCurrentVersionRun或者HKEY_CURRENT_USERMicrosoftWindowsCurrentVersionRun下面会有这么一个条目指向一个很长的目录路径,类似于下面的:Reminder=REG_SZ:C:Program FilesLitWare Deluxereminder.exe
而且,你会发现,上面的路径中没有引号来保护嵌入在路径中的空格 。这个会导致一个结果:LitWare Deluxe希望开机时自动启动C:Program FilesLitWareDeluxereminder.exe 。但是 , 因为空格的原因,注册表条目第一次被解析为:app = C:Programcommand line=FilesLitWare Deluxereminder.exe因为上面的路径是无效的,所以系统会使用如下解析方式进行重试:app = C:Program FilesLitWarecommand line=Deluxereminder.exe
这次的解析会成功,所以你会看到开机后自动打开了C:Program FilesLitWare的目录 。解决方法就很简答了:修改注册表中的路径,然后加上引号 。
至程序员朋友:如果你的文件名或者文件路径中包含空格,请记得加上引号 。

第二个问题:当你登录后 , 一个名为desktop.ini的文件会被打开

原因:位于C:Documents and SettingsAll UsersStart MenuStartuppp或者C:Documents and SettingsyournameStart MenuStartup中的desktop.ini文件会丢失掉系统属性和隐藏属性 。你可以到资源管理器的高级选项中禁用这一选项:”Hide protected operating system files (Recommended)” 。
如果一个文件被设置为系统和隐藏属性,则资源管理器将不在枚举这个文件,因此用户将不会看到它 。如果你禁用了”Hide protected operating system files”,则这个规则就不会被执行 。
当你登录后,资源管理器需要做的一件事情就是枚举启动目录(Startup)中的文件并尝试运行它找到的每一个文件 。如果desktop.ini没有被设置为系统和隐藏属性的话 , 它就会被资源管理器自动打开 。
那么这个desktop.ini是干啥用的?这个文件是用来为WinXP的多语言界面(Multilingual User Interface)提供支持的,用来实现诸如修改系统显示界面的语言的特性 。例如,如果你说我想系统的显示全部变成法语的,那么Windows将会翻译系统的菜单,快捷键,对话框等为法语 。这个文件将帮助Windows来翻译”Startup”为法语,德语或者西班牙语等 。
至程序员朋友:你可以使用SHSetLocalizedName这个API来为某个文件或者目录来设置某种语言下的名字 。

总结

系统不会在开机的时候随机启动一个程序,如果它恰巧会,则应该是由某种原因导致的 。
【为什么有时候开机会自动打开文件或者文件夹】

为什么有时候开机会自动打开文件或者文件夹

相关经验推荐