C# 获得;友好的;窗口开始菜单项/快捷方式文件的名称

C# 获得;友好的;窗口开始菜单项/快捷方式文件的名称,c#,windows,winapi,startmenu,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还是有更简单的方法来获取文件/开始菜单项

这很奇怪,一些startmenu项似乎解析为实际的.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。

在名为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。

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