Blog. Just Blog

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

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

Исследование защиты программы Disk Size Manager

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

Скриншот программы Disk Size Manager

Программа Disk Size Manager предназначена для ответа на вопрос: куда делось место на диске? Она показывает в виде диаграммы какие файлы и в каких папках занимают больше всего места. Проблема нехватки дискового пространства возникает регулярно, поэтому триальный срок в 30 дней надо устранить.

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

Государственный музей-заповедник В.Д.Поленова

29.09.2020 | Категория: Жизнь в оффлайне | Автор: ManHunter

Государственный музей-заповедник В.Д.Поленова

Государственный музей-заповедник В.Д.Поленова - объект культурного наследия России федерального значения. Художник Василий Дмитриевич Поленов в 1887 году увидел Оку, и раз и навсегда попал под обаяние этой дивной реки. В 1890 году он приобрел имение на высоком берегу Оки и перебрался сюда из Москвы вместе с семьей. Изучение архитектуры и впечатления от путешествий по странам Западной Европы придали творчеству Поленова-архитектора широту и индивидуальность. Все постройки Поленов проектировал сам. Ему очень хотелось, чтобы в его усадьбе нашли отражение черты столь полюбившейся ему западноевропейской средневековой архитектуры. Поленов мечтал, что усадьба станет "гнездом художников", а со временем превратится в первый провинциальный общедоступный музей.

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

Как добавить иконку щита UAC на кнопку

26.09.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Начиная с Windows Vista, в интерфейсе системы на некоторых элементах управления появился значок в виде щита. Он означает, что при взаимодействии с таким элементом у пользователя будут запрошены повышенные права доступа. Если ваша программа выполняет действия, которые требуют повышенных прав, то хорошим тоном будет тоже отмечать специальной иконкой элементы управления, запускающие такие функции. Но совсем не обязательно таскать иконку в ресурсах или в каких-то отдельных файлах, тем более, что на разных системах она выглядит по-разному. Все делается очень просто, достаточно отправить нужной кнопке сообщение BCM_SETSHIELD и система сама дополнит кнопку иконкой щита, принятой в данной версии Windows. Если lParam сообщения равен TRUE, то иконка щита добавляется, а если FALSE, то, соответственно, удаляется.
  1.         BCM_SETSHIELD = 0x160C
  2.  
  3.         ; Установить иконку на кнопку
  4.         invoke  SendDlgItemMessage,[hwnddlg],ID_BTN1,BCM_SETSHIELD,0,TRUE
К сожалению, узнать наличие иконки щита на кнопке невозможно, по крайней мере я такой информации нигде не нашел. Если планируется динамически добавлять и удалять иконку, то установленное состояние придется хранить где-то в вашей программе.

В официальной документации сказано, что единственными элементами управления, на которые таким образом можно навесить значок щита, являются кнопки и командные ссылки. Но никто не запрещает загрузить изображение щита как обычную иконку и затем использовать ее хэндл. Иконка загружается с небольшим подвыподвертом - через функцию LoadIconWithScaleDown. Загруженную иконку можно установить в заголовок окна, на STATIC, в заголовок вкладки, точно так же на кнопку или на любой другой элемент диалогового окна, который поддерживает отображение HICON.
  1.         IDI_SHIELD    = 0x7F06
  2.  
  3.         ; Загрузить иконку щита
  4.         invoke  GetSystemMetrics,SM_CXSMICON
  5.         invoke  LoadIconWithScaleDown,0,IDI_SHIELD,eax,eax,hShieldIcon
  6.         ; [hShieldIcon] --> хэндл иконки щита
  7.  
  8.         ; Установить иконку на кнопку
  9.         invoke  SendDlgItemMessage,[hwnddlg],ID_BTN2,BM_SETIMAGE,\
  10.                 IMAGE_ICON,[hShieldIcon]
  11.         ; Установить иконку в заголовок окна
  12.         invoke  SendMessage,[hwnddlg],WM_SETICON,ICON_SMALL,[hShieldIcon]
  13.         ; Установить иконку на STATIC
  14.         invoke  SendDlgItemMessage,[hwnddlg],ID_STAT,STM_SETIMAGE,\
  15.                 IMAGE_ICON,[hShieldIcon]
Важное замечание. Чтобы программа могла использовать сообщение BCM_SETSHIELD и функцию LoadIconWithScaleDown, она должна быть скомпилирована с манифестом, в котором заявлена поддержка динамической библиотеки comctl32.dll версии 6.

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

Разделение ввода от нескольких клавиатур

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

Разделение ввода от нескольких клавиатур

В одной из прошлых статей мы научились получать список всех устройств, реальных и виртуальных, которые используются для ввода. А можно ли каким-то образом разделять данные, полученные от разных источников? Например, к компьютеру подключены несколько клавиатур и надо определить, на какой именно клавиатуре была нажата клавиша. Ответ - да, можно. Приложение может подписаться на нужные устройства ввода при помощи функции RegisterRawInputDevices. При получении "сырого" ввода от каждого из устройств выбранного типа, система будет посылать приложению сообщение WM_INPUT, а приложению останется его правильно обработать.

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

Hotkey Helper 1.1

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

Скриншот программы Hotkey Helper

Небольшая программа-помощник для программистов. Показывает коды нажатых клавиш, значения параметров wParam и lParam сообщений WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_UNICHAR, WM_APPCOMMAND (мультимедийные клавиши), WM_DEADCHAR и WM_SYSDEADCHAR (умляуты, акуты, ударения и подобные модификаторы), а также коды горячих клавиш из поля msctls_hotkey32. Предусмотрены отдельные версии для работы с юникодом и ANSI. Программа написана для личных нужд, но может быть пригодится кому-нибудь еще.

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

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2020
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0096 сек.) / Память: 4.75 Mb
Наверх