Как узнать свойства ярлыка ?

Тема в разделе "WASM.BEGINNERS", создана пользователем Hmm, 29 апр 2008.

  1. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Надо проверить является ли фаил ярлыком и прочесть его св-ва.
    Ст-ра , которую возвращает FindFirstFile почему-то не дает ответа даже на 1 вопрос ...
    В примерах , что я видел здесь и на rsdn , народ читает ярлыки через COM .
    Меня терзаютъ смутные сомнения . Неужели нет нормального(естественного) api способа обработать ярлык ? :\
    Или , таки , придется подключать ради этого COM ...
     
  2. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    Hmm а наличие у файла расширения lnk и то, что первые четыре байта 4Ch,0,0,0 не является подтверждением того, что это ярлык? И то что внутри него есть ASCII и Unicode строки - путь к ехе?
     
  3. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Искал я это .lnk .Раза 2 искал . Нету у них расширений .
    То ли у меня ярлыки не той системы , то ли ищу их не там ...

    Что там внутри , я это конечно видел .
    Но тогда надо формат файла перечитывать . (Может подскажешь
    где нормально описан ?) . Только вот , стоит ли оно того . :\
    Из-за такой рутины парсить фаил ?
     
  4. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Hmm
    Расширений у них в проводнике не видно. Протрассируй чем проводник свойства ярлыка смотрит и найдешь API. Хотя может тоже COM используется.
     
  5. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    См. интерфейс IShellLink.
     
  6. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Кстати , никто не в курсе , где взять iid для
    интерфейсов IShellLink. CLSID нагуглил .
    А методов нема. И в реестре тоже их не вижу . :dntknw:
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Hmm http://www.realcoding.net/article/view/445
     
  8. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    В пакете vc++ есть такая утиль (по-моему comviewer называется).
    Она расписывает все com-объекты, clsid, методы, свойства, прототипы, типы параметров и т.д. и т.п.
    Для всех зарегистрированных в системе com объектов.

    И делает файлы .idl типа хидеров для подключения к с++ проектам.
     
  9. Hmm

    Hmm New Member

    Публикаций:
    0
    Регистрация:
    22 ноя 2006
    Сообщения:
    162
    Спасибо всем . Буду добивать его .
     
  10. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    ?; Не нашёл. Не вспомнишь поточнее, как называется?
    Есть ещё oleview в Platform SDK. Правда .idl она не делает.
     
  11. comrade

    comrade Константин Ёпрст

    Публикаций:
    0
    Регистрация:
    16 сен 2002
    Сообщения:
    232
    Адрес:
    Russian Federation
    COM IShellLink это и ЕСТЬ НОРМАЛЬНЫЙ способ работы с ярлыками.

    Everytime you start using undocumented functions for reasons as such this one, stuff breaks in future versions of Windows. And its your fault!