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

这是好奇的,一些startmenu项目似乎parsing为一个“友好”的名称,不包含在实际的.lnk文件中。 例如:

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

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

该文件夹中有一个名为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。