Как программно создать ярлык
08.06.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ярлыки - одна из ключевых сущностей Windows. Это специальные файлы, служащие указателями на папки, программы или команды. Для управления ярлыками в Windows используется COM-объект ShellLink, точнее одна версия для ANSI и вторая для юникода. Они отличаются своими GUID. В любом из этих объектов реализовано по два интерфейса. Интерфейс IShellLink, с помощью которого можно получать и изменять свойства ярлыка, и интерфейс IPersistFile для работы непосредственно с самим файлом ярлыка.Для доступа к COM-объектам первым делом надо обозначить их GUID:
Code (Assembler) : Убрать нумерацию
- ; GUID {00021401-0000-0000-C000-000000000046}
- CLSID_ShellLink dd 00021401h
- dw 0000h
- dw 0000h
- db 0C0h, 000h, 000h, 000h, 000h, 000h, 000h, 046h
- ; GUID {000214F9-0000-0000-C000-000000000046}
- IID_IShellLinkW dd 000214F9h
- dw 0000h
- dw 0000h
- db 0C0h, 000h, 000h, 000h, 000h, 000h, 000h, 046h
- ; GUID {0000010B-0000-0000-C000-000000000046}
- IID_IPersistFile dd 0000010Bh
- dw 0000h
- dw 0000h
- db 0C0h, 000h, 000h, 000h, 000h, 000h, 000h, 046h
Code (Assembler) : Убрать нумерацию
- ; IID_IShellLinkW Interface
- struct IShellLinkWDispatch
- QueryInterface dd ?
- AddRef dd ?
- Release dd ?
- GetPath dd ?
- GetIDList dd ?
- SetIDList dd ?
- GetDescription dd ?
- SetDescription dd ?
- GetWorkingDirectory dd ?
- SetWorkingDirectory dd ?
- GetArguments dd ?
- SetArguments dd ?
- GetHotkey dd ?
- SetHotkey dd ?
- GetShowCmd dd ?
- SetShowCmd dd ?
- GetIconLocation dd ?
- SetIconLocation dd ?
- SetRelativePath dd ?
- Resolve dd ?
- SetPath dd ?
- ends
- ; IID_IPersistFile Interface
- struct IPersistFileDispatch
- QueryInterface dd ?
- AddRef dd ?
- Release dd ?
- GetClassID dd ?
- IsDirty dd ?
- Load dd ?
- Save dd ?
- SaveCompleted dd ?
- GetCurFile dd ?
- ends
Читать статью целиком »
Просмотров: 1170 | Комментариев: 0