
Быстрый поиск
Введите фрагмент названия статьи для поиска
Как программно создать ярлык
08.06.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как программно создать ярлык
Ярлыки - одна из ключевых сущностей Windows. Это специальные файлы, служащие указателями на папки, программы или команды. Для управления ярлыками в Windows используется COM-объект ShellLink, точнее одна версия для ANSI и вторая для юникода. Они отличаются своими GUID. В любом из этих объектов реализовано по два интерфейса. Интерфейс IShellLink, с помощью которого можно получать и изменять свойства ярлыка, и интерфейс IPersistFile для работы непосредственно с самим файлом ярлыка.
Читать статью целиком »
Просмотров: 1574 | Комментариев: 0
Вывод изображения на Ассемблере с помощью OLE
21.09.2019 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ранее я уже разбирал загрузку и вывод изображения с помощью GDI+, но это далеко не единственный способ загрузки изображения из файла. В дополнение к этой теме предлагаю рассмотреть еще один способ, как можно загрузить изображение из файла средствами OLE. Сперва пропишем GUID объекта IID_IPicture и создадим структуру для методов интерфейса IPicture. В MSDN методы перечислены в алфавитном порядке, а не так, как они фактически идут в интерфейсе, имейте это в виду.Code (Assembler) : Убрать нумерацию
- ; GUID {7BF80980-BF32-101A-8BBB-00AA00300CAB}
- IID_IPicture dd 7BF80980h
- dw 0BF32h
- dw 0101Ah
- db 08Bh, 0BBh, 0h, 0AAh, 0h, 030h, 00Ch, 0ABh
- ; IPicture Interface
- struct IPicture
- ; IUnknown
- QueryInterface dd ?
- AddRef dd ?
- Release dd ?
- ; IPicture
- get_Handle dd ?
- get_hPal dd ?
- get_Type dd ?
- get_Width dd ?
- get_Height dd ?
- Render dd ?
- set_hPal dd ?
- get_CurDC dd ?
- SelectPicture dd ?
- get_KeepOriginalFormat dd ?
- set_KeepOriginalFormat dd ?
- PictureChanged dd ?
- SaveAsFile dd ?
- get_Attributes dd ?
- SetHdc dd ?
- ends
Code (Assembler) : Убрать нумерацию
- ; Прочитать файл в память
- invoke _lopen,fname,OF_READ
- cmp eax,-1
- je loc_free_1
- mov ebx,eax
- ; Получить размер файла
- invoke GetFileSize,ebx,NULL
- mov [file_size],eax
- ; Выделить память под файл
- invoke GetProcessHeap
- mov [hProcHeap],eax
- invoke HeapAlloc,[hProcHeap],0,[file_size]
- mov [hLock],eax
- ; Загрузить картинку в память
- invoke _lread,ebx,[hLock],[file_size]
- invoke _lclose,ebx
Читать статью целиком »
Просмотров: 3690 | Комментариев: 0
Как программно свернуть все окна
04.09.2019 | Категория: Образ мышления: Assembler | Автор: ManHunter
Есть разные способы программно свернуть все открытые окна. Простой и топорный вариант решения - эмуляция нажатия клавиш Win+M, которые и выполняют команду "Свернуть все окна". Делается это через последовательность вызовов keybd_event.Code (Assembler) : Убрать нумерацию
- ; Эмуляция нажатия клавиш Win+M
- invoke keybd_event,VK_LWIN,0,0,NULL
- invoke Sleep,1
- invoke keybd_event,'M',0,0,NULL
- invoke Sleep,1
- invoke keybd_event,VK_LWIN,0,KEYEVENTF_KEYUP,NULL
Code (Assembler) : Убрать нумерацию
- ; Эмуляция нажатия клавиш Win+Shift+M
- invoke keybd_event,VK_LWIN,0,0,NULL
- invoke Sleep,1
- invoke keybd_event,VK_LSHIFT,0,0,NULL
- invoke Sleep,1
- invoke keybd_event,'M',0,0,NULL
- invoke Sleep,1
- invoke keybd_event,VK_LSHIFT,0,KEYEVENTF_KEYUP,NULL
- invoke Sleep,1
- invoke keybd_event,VK_LWIN,0,KEYEVENTF_KEYUP,NULL
Читать статью целиком »
Просмотров: 2473 | Комментариев: 5
Обработка перетаскивания ссылок в окно приложения
16.04.2019 | Категория: Образ мышления: Assembler | Автор: ManHunter

Обработка перетаскивания ссылок в окно приложения
С перетаскиванием файлов в окно приложения мы уже давно разобрались, это реализуется несложно. Теперь давайте разберем более интересную задачу, а именно перетаскивание в окно приложения ссылок или текста из браузеров, текстовых редакторов и других программ.
Читать статью целиком »
Просмотров: 2204 | Комментариев: 0
Преобразование символических ссылок в путь к файлу
08.02.2019 | Категория: Образ мышления: Assembler | Автор: ManHunter

Преобразование символических ссылок в путь к файлу
"По следам наших публикаций". В одной из недавних статей я использовал код для преобразования символических ссылок на файл в привычный путь. Немного поразмыслив, я решил доработать его до полноценной универсальной функции, которая будет приводить любые "кривые" пути и символические ссылки к человекопонятному виду.
Читать статью целиком »
Просмотров: 2177 | Комментариев: 2


