获取窗口开始菜单项/快捷方式文件的“友好”名称

时间:2010-12-05 11:34:42

标签: c# windows winapi startmenu

这很奇怪,一些startmenu项目似乎解析为一个“友好”名称,该名称未包含在实际的.lnk文件中。例如:

“c:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Accessories \ System Tools \ dfrgui.lnk”在资源管理器中显示为“磁盘碎片整理程序”,实际的快捷方式文件也不包含实名。链接到exe“C:\ Windows \ system32 \ dfrgui.exe”“

这是一个Win32 API的东西,还是有一种更简单的方法来获取文件/开始菜单项的“友好”名称?

1 个答案:

答案 0 :(得分: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。打开“String table”并双击它:

Shows string table content

根据您居住的地方,您的机器可能会有所不同。我展示的是英文版的Win7。