【问题标题】:getting the "friendly" name for window startmenu items/shortcut files获取窗口开始菜单项/快捷方式文件的“友好”名称
【发布时间】:2010-12-05 11:34:42
【问题描述】:

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

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

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

【问题讨论】:

  • 您使用的是什么版本的 Windows?我用 XP 进行了检查,似乎显示名称取自 .lnk 文件的名称。对于磁盘碎片整理程序,它实际上在 XP 上称为Disk Defragmenter.lnk

标签: c# windows winapi startmenu


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多