получение «дружественного» имени для элементов меню / ярлыков окна запуска - PullRequest
1 голос
/ 05 декабря 2010

Это любопытно, некоторые пункты стартового меню, похоже, преобразуются в «дружественные» имена, которых нет в реальном файле .lnk. Например:

"c: \ ProgramData \ Microsoft \ Windows \ Пуск \ Меню \ Программы \ Стандартные \ Системные инструменты \ dfrgui.lnk" отображается в обозревателе как "Дефрагментатор диска", фактический файл ярлыка также не содержит реального имени, но ссылки на исполняемый файл "C: \ Windows \ system32 \ dfrgui.exe" "

Является ли это Win32 API или есть более простой способ получить "понятное" имя для файла / пункта меню "Пуск"?

1 Ответ

5 голосов
/ 05 декабря 2010

В этой папке есть скрытый файл с именем 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 указывает, что строка читается из строкового ресурса # 103 в dfrgui.exe. В Visual Studio я использовал File + Open + File, выбрав c: \ windows \ system32 \ dfrgui.exe. Открыл «Строковый стол» и дважды щелкнул по нему:

Shows string table content

Это может отличаться на вашей машине, в зависимости от того, где вы живете. То, что я показал, для английской версии Win7.

...