Blog. Just Blog

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

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

Поздравляю с Днем сотрудника органов внутренних дел!

10.11.2021 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Днем сотрудника органов внутренних дел!

Поздравляю с профессиональным праздником всех сотрудников органов внутренних дел, всех тех, кто сейчас стоит на страже законности и правопорядка, всех тех, кто отдал свой долг Родине и находится на заслуженном отдыхе! Желаю вам крепкого здоровья, успехов в работе и всех делах, любви и понимания родных и близких, счастья и благополучия.

С уважением, -
капитан милиции ManHunter


Просмотров: 157 | Комментариев: 2

Получение координат иконки в трее

06.11.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Сегодняшний пример - получение координат иконки в трее. Для чего это надо, я поясню чуть ниже. Сам код основан на уже знакомом вам переборе иконок в трее, поэтому практически все структуры будут такими же. Теоретическая часть работы с треем расписана там же, дублировать ее не буду. Начнем с описания всех необходимых структур и данных:
  1. ; Сегмент данных
  2. section '.data' data readable writeable
  3.  
  4. ; Структура пользовательских данных иконки
  5. struct EXTRADATA
  6.         Wnd dd ?
  7.         uID dd ?
  8. ends
  9.  
  10. class1     db 'Shell_TrayWnd',0    ; Название класса окна трея
  11. class2     db 'TrayNotifyWnd',0    ; Название класса панели уведомлений
  12. class3     db 'SysPager',0         ; Трей
  13. class4     db 'ToolbarWindow32',0  ; Панель с иконками
  14.  
  15. ; Структура для кнопки
  16. button     TBBUTTON
  17. ; Структура для пользовательских данных иконки
  18. extra      EXTRADATA
  19. ; Иконка в трее
  20. node       NOTIFYICONDATA
  21. ; Координаты иконки в трее
  22. rc         RECT
  23.  
  24. ICON_ID = 777
  25.  
  26. hInstance  dd ?    ; Хэндл приложения
  27. hToolbar   dd ?    ; Хэндл окна с иконками
  28. IconsCount dd ?    ; Количество иконок в трее
  29. ProcId     dd ?    ; Id процесса
  30. hProcess   dd ?    ; Хэндл процесса
  31. lpData     dd ?    ; Указатель на блок памяти
  32. BytesRead  dd ?    ; Количество прочитанных символов
Но теории все равно не избежать. В отличие от упомянутого кода, мы будем проверять, чтобы очередная иконка в трее принадлежала нашему процессу и при этом ее идентификатор совпадал с нужным. Если все условия выполнены, то отправляем окну трея сообщение TB_GETITEMRECT и получаем указатель на структуру, в которой содержатся координаты иконки относительно окна трея. С помощью ReadProcessMemory читаем эти данные и преобразуем в абсолютные экранные координаты функцией MapWindowPoints.

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

Исследование защиты программы Magoshare Data Recovery

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

Скриншот программы Magoshare Data Recovery

Программа Magoshare Data Recovery, как можно понять из названия, - очередная утилита для восстановления удаленных данных с различных носителей. В пробном режиме позволяет обработать только 200 мегов, после регистрации все ограничения, естественно, снимаются. Насыпать почти сотню зелени за лицензию, на мой взгляд, слишком кучеряво, поэтому попробуем обойтись народными средствами.

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

Преобразование многомерного массива в одномерный на PHP

02.11.2021 | Категория: Web-мастеру и не только | Автор: ManHunter
Как гласит японская мудрость: "Даже если меч понадобится один раз в жизни, носить его нужно всегда". Следующий трюк как раз из этой серии. А именно, преобразование многомерного массива в одномерный.

Делается все при помощи стандартного класса RecursiveIteratorIterator, который берет на себя извлечение данных из многомерного массива, и функции iterator_to_array, которая преобразует эти данные в одномерный массив. Код будет выглядеть следующим образом:
  1. // Исходный многомерный массив
  2. $multi_array=array(
  3.     array('first',1,2,3),
  4.         'A'=>array(
  5.             'ZYXEL'=>array('banana','apple',7,'gnome'),
  6.             7=>array('a','b','c'),
  7.             'ROBOTIX'=>array('2400','3200','8000'),
  8.         ),
  9.     'INTEL' => array(
  10.         0=>array(8,'AMD'),
  11.         1=>array(
  12.             'groups' => array(
  13.                 array('metallica','accept','kiss'),
  14.                 'kurt'
  15.             )
  16.         )
  17.     )
  18. );
  19.  
  20. $iterator=new RecursiveIteratorIterator(new RecursiveArrayIterator($multi_array));
  21. $one_array=iterator_to_array($iteratorfalse);
  22. print_r($one_array);
На входе многомерный массив с совершенно разнобойными элементами и ключами. На выходе получаем одномерный массив, включающий в себя все элементы многомерного массива.

Array
(
    [0] => first
    [1] => 1
    [2] => 2
    [3] => 3
    [4] => banana
    [5] => apple
    [6] => 7
    [7] => gnome
    [8] => a
    [9] => b
    [10] => c
    [11] => 2400
    [12] => 3200
    [13] => 8000
    [14] => 8
    [15] => AMD
    [16] => metallica
    [17] => accept
    [18] => kiss
    [19] => kurt
)

На моей многолетней практике такая задача возникала всего один раз. Если вам когда-нибудь пригодится мое решение, то буду только рад.

Просмотров: 217 | Комментариев: 0

Острый соус "Шрирача"

31.10.2021 | Категория: А еще я туда ем! | Автор: ManHunter

Острый соус "Шрирача"

Шрирача - острый тайский соус, без преувеличения ставший классикой. Его история началась более 80 лет назад и за это время он успел завоевать признание во всем мире. Свое название соус получил от маленького тайского городка Си Рача (Si Racha), где его впервые начала готовить одна из местных жительниц. Потом она продала рецепт и права на этот соус компании Thai Theparos. С тех пор шрирачу производят в промышленных масштабах, но со строгим соблюдением рецептуры и только из натуральных ингредиентов. Свой неповторимый вкус шрирача приобретает за счет длительной (три месяца по оригинальному рецепту) естественной ферментации, то есть, проще говоря, брожению ингредиентов. Я буду готовить шрирачу в домашних условиях, но по слегка упрощенной технологии.

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

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