Объединенный архив форумов UniverClub и StudLife (2006-2010). Поддерживает: Леонид Шевцов.

проблема с *.lnk в виндовом шелле

26
почему если запускать ярлык с рабочего стола, то он запускается, а из консоли в виде
Код:

"tut_imya_linka.lnk"



винда пишет, что ей неизвестен этот тип файлов, что он не привязан ни к одному приложению. Парадокс или как?


да, забыл сказать, что пробовал все что только можно: и start, и просто из выполнить-путь к линку, и полный путь писать в консоли. Дело не в том, что винда не видит файл, а в том, что, как это не странно, с расширением lnk не связана ни одна программа. Вот такие пироги...

ЗЫ, попрошу не писать, тут типо "а у меня пошло"... Я знаю, что идет, но у мну где-то в реестре не то, подскажите кто знает.
1081
Самое интересное, что у меня все тупо заработало... :)
Для тест-рана создал ярлык текстового документа и exe-шника, оба запустились из консоли без всяких проблем.

Попробуем разобраться... лезем в регедит, хкей_классез_рут...

Pаздел .lnk

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.lnk]
@ ="lnkfile"

[HKEY_CLASSES_ROOT\.lnk\ShellEx]

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214EE-0000-0000-C000-000000000046}]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{000214F9-0000-0000-C000-000000000046}]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{00021500-0000-0000-C000-000000000046}]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\.lnk\ShellNew]
"Command"="rundll32.exe appwiz.cpl,NewLinkHere %1"



Раздел lnkfile

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\lnkfile]
@ ="Ярлык"
"EditFlags"=dword:00000001
"IsShortcut"=""
"NeverShowExt"=""

[HKEY_CLASSES_ROOT\lnkfile\CLSID]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile\shellex]

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers]

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\Offline Files]
@ ="{750fdf0e-2a26-11d1-a3ea-080036587f03}"

[HKEY_CLASSES_ROOT\lnkfile\shellex\ContextMenuHandlers\{00021401-0000-0000-C000-000000000046}]

[HKEY_CLASSES_ROOT\lnkfile\shellex\DropHandler]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler]
@ ="{00021401-0000-0000-C000-000000000046}"

[HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHandlers]

[HKEY_CLASSES_ROOT\lnkfile\shellex\PropertySheetHandlers\ShimLayer Property Page]
@ ="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"



Попробуй заимпортить эту пару файлов, может и поможет. =)

ЗЫ: в универе ктото из HKCR удалил расширение .exe - приложения перестали запускаться напрямую... хотя через ассоциации с файлами все работало прекрасно. :-D
13
А с чем ехе"шник ассоциировать??? О_о
1081
2 MegaTherion: а ты открой и посмотри. Там у него CLSID прописан, кажись.

Вот в никсах у файла есть атрибут "исполняемый". Если его убрать - программа не будет запускаться.