Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Получение списка программ, закрепленных на панели задач

15.04.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
В одной из старых статей о работе с панелью задач я написал, что узнать список закрепленных программ можно перебором ярлыков в папке %APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar. Действительно, это можно сделать и так, но лучше делать это правильно, с использованием предназначенных для этого COM-интерфейсов системы. Начнем с описания констант, GUID и интерфейсов, которые нам понадобятся для работы.
  1. CLSCTX_INPROC_SERVER    = 1
  2. S_OK                    = 0
  3.  
  4. ; Windows Vista
  5. ; GUID {C3C6EB6D-C837-4EAE-B172-5FEC52A2A4FD}
  6. IID_IPinnedList dd 0C3C6EB6Dh
  7.                 dw 0C837h
  8.                 dw 04EAEh
  9.                 db 0B1h, 072h, 05Fh, 0ECh, 052h, 0A2h, 0A4h, 0FDh
  10.  
  11. ; Windows 7, 8, 8.1
  12. ; GUID {BBD20037-BC0E-42F1-913F-E2936BB0EA0C}
  13. IID_IPinnedList2 dd 0BBD20037h
  14.                  dw 0BC0Eh
  15.                  dw 042F1h
  16.                  db 091h, 03Fh, 0E2h, 093h, 06Bh, 0B0h, 0EAh, 00Ch
  17.  
  18. ; Windows 10 build 1809+
  19. ; GUID {0DD79AE2-D156-45D4-9EEB-3B549769E940}
  20. IID_IPinnedList3 dd 00DD79AE2h
  21.                  dw 0D156h
  22.                  dw 045D4h
  23.                  db 09Eh, 0EBh, 03Bh, 054h, 097h, 069h, 0E9h, 040h
  24.  
  25. ; IID_IPinnedList Interface
  26. struct IPinnedList
  27.     ; IUnknown
  28.     QueryInterface dd ?   ; 000h
  29.     AddRef         dd ?   ; 004h
  30.     Release        dd ?   ; 008h
  31.     ; IPinnedList
  32.     EnumObjects    dd ?   ; 00Ch
  33.     Modify         dd ?   ; 010h
  34.     GetChangeCount dd ?   ; 014h
  35.     IsPinnable     dd ?   ; 018h
  36.     Resolve        dd ?   ; 01Ch
  37.     IsPinned       dd ?   ; 020h
  38. ends
  39.  
  40. ; GUID {90AA3A4E-1CBA-4233-B8BB-535773D48449}
  41. CLSID_TaskbarPin dd 090AA3A4Eh
  42.                  dw 01CBAh
  43.                  dw 04233h
  44.                  db 0B8h, 0BBh, 053h, 057h, 073h, 0D4h, 084h, 049h
  45.  
  46. ; IID_IEnumFullIDList Interface
  47. struct IEnumFullIDList
  48.     ; IUnknown
  49.     QueryInterface dd ?
  50.     AddRef         dd ?
  51.     Release        dd ?
  52.     ; IEnumFullIDList
  53.     Next           dd ?
  54.     Skip           dd ?
  55.     Reset          dd ?
  56.     Clone          dd ?
  57. ends
Как это ни странно, интерфейсы IPinnedList и их методы относятся к недокументированным и информации по ним в интернете практически нет. Для Windows 7-8 используется интерфейс IPinnedList2, а для Windows 10 сборки 1809 и выше нужен интерфейс IPinnedList3. Можно заморочиться даже для Windows Vista, там используется интерфейс IPinnedList. Для получения списка закрепленных приложений нам потребуется только один метод - EnumObjects, к счастью, во всех трех интерфейсах он совпадает.

Читать статью целиком »
Просмотров: 120 | Комментариев: 0

HtmlHelp Wrapper 2.0

12.04.2021 | Категория: Мои программы | Автор: ManHunter

Скриншот программы HtmlHelp Wrapper

HtmlHelp Wrapper - это программа-обертка для открытия .CHM-файлов и .HLP-файлов из командных файлов или приложений. От обычной утилиты HtmlHelp, которая идет в комплекте Windows, эта программа отличается тем, что при открытии файла справки позволяет искать ключевые слова, а для CHM-файлов дополнительно автоматически синхронизировать список ключевых слов и открытой статьи, а также открывать более одной копии справки для отдельного приложения и закрывать открытую справку по нажатию Esc. Есть возможность открывать файлы справки с именами в юникоде. Кроме своих функций и параметров запуска, поддерживаются все стандартные ключи утилиты HtmlHelp, поэтому можно заменить файл hh.exe в папке Windows на HtmlHelp Wrapper (не забывайте про резервные копии).

Читать статью целиком »
Просмотров: 13091 | Комментариев: 65

Упаковка и распаковка данных с помощью Delta-функций

11.04.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter

Упаковка и распаковка данных с помощью Delta-функций

В комментариях к предыдущей статье подсказали (DRON, спасибо!) еще один вариант компрессии данных, выполняемый штатными средствами системы. Речь идет о технологии Delta Compression, которая используется в первую очередь в обновлениях Windows. Суть этой технологии заключается в том, что берутся два массива информации, будь то файлы или блоки в памяти. Между ними определяются все различия, после применения которых из первого массива получается второй, такие различия называются "дельтой". Затем информация о дельте тщательно упаковывается высокоэффективными алгоритмами, а из упакованных блоков в дальнейшем формируются патчи. Delta Compression доступна в Windows Vista и более новых системах.

Читать статью целиком »
Просмотров: 164 | Комментариев: 3

Исследование защиты игры Kyodai Mahjongg

07.04.2021 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот игры Kyodai Mahjongg

Kyodai Mahjongg - сборник красивых китайских трехмерных головоломок. Хорошая графика, множество настроек, различные варианты игр, многоязычный интерфейс, поддержка сетевой игры. Я люблю коротать время за разбором маджонгов, но выкладывать за игры деньги - это уже за пределами моего понимания.

Читать статью целиком »
Просмотров: 346 | Комментариев: 4

Беспроводные наушники Baseus Encok D02 Pro

06.04.2021 | Категория: Обзоры техники | Автор: ManHunter

Беспроводные наушники Baseus Encok D02 Pro

Весна - время обновлений, девочки примеряют новые платья, а я вот решил заменить свои рабочие наушники. Согласно сложившейся культуре, все наши разработчики соблюдают тишину на рабочем месте, а музыку слушают, естественно, только через наушники. В качестве обновки я присмотрел беспроводные наушники Baseus Encok D02 Pro, тем более, что за последние месяцы у китайцев прошло много распродаж и "ушки" удалось прикупить по очень хорошей цене.

Читать статью целиком »
Просмотров: 234 | Комментариев: 2

prev 01 02 03 04 05 06 07 08 09 ... 325
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 2 (0.0003 сек.) / Память: 4.75 Mb
Наверх