Hom*_*mde 1 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的东西还是有一个更简单的方法来获取文件/开始菜单项的"友好"名称?
该文件夹中有一个名为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
Run Code Online (Sandbox Code Playgroud)
这是相关的:
dfrgui.lnk = @%SYSTEMROOT%\ SYSTEM32\dfrgui.exe,-103
-103值表示从dfrgui.exe中的字符串资源#103读取字符串.在Visual Studio中,我使用了File + Open + File,选择了c:\ windows\system32\dfrgui.exe.打开"String table"并双击它:

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