1

这很奇怪,一些开始菜单项似乎解析为实际 .lnk 文件中不包含的“友好”名称。例如:

“c:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\System Tools\dfrgui.lnk”在资源管理器中显示为“Disk Defragmenter”,实际的快捷文件也不包含真实名称,而是链接到exe "C:\Windows\system32\dfrgui.exe""

这是 Win32 API 的事情还是有更简单的方法来获取文件/开始菜单项的“友好”名称?

4

1 回答 1

5

该文件夹中有一个名为desktop.ini的隐藏文件。这是我机器上的内容:

[.ShellClassInfo]
LocalizedResourceName=@%SystemRoot%\system32\shell32.dll,-21788
[LocalizedFileNames]
System Information.lnk=@%systemroot%\system32\msinfo32.exe,-100
Resource Monitor.lnk=@%SystemRoot%\system32\wdc.dll,-10030
dfrgui.lnk=@%systemroot%\system32\dfrgui.exe,-103
Task Scheduler.lnk=@%SystemRoot%\system32\miguiresource.dll,-201
System Restore.lnk=@%systemroot%\system32\rstrui.exe,-100
Disk Cleanup.lnk=@%SystemRoot%\system32\shell32.dll,-22026
Character Map.lnk=@%SystemRoot%\system32\shell32.dll,-22021
Windows Easy Transfer.lnk=@%windir%\system32\migwiz\wet.dll,-588
Windows Easy Transfer Reports.lnk=@%windir%\system32\migwiz\wet.dll,-591

这是相关的行:

dfrgui.lnk=@%systemroot%\system32\dfrgui.exe,-103

-103 值表示该字符串是从 dfrgui.exe 中的字符串资源 #103 读取的。在 Visual Studio 中,我使用 File + Open + File,选择 c:\windows\system32\dfrgui.exe。打开“字符串表”并双击它:

显示字符串表内容

这在您的机器上可能会有所不同,具体取决于您居住的地方。我展示的是Win7的英文版。

于 2010-12-05T14:37:34.557 回答