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

Получение данных из консольного окна другого приложения
02.11.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter
Мы уже умеем перехватывать ввод и вывод консольных приложений, но этот способ работает только для тех процессов, которые мы сами запустили. Но иногда надо получать информацию из консольных приложений, которые уже были запущены в системе или могут быть запущены в дальнейшем, но не нами. А еще бывают консольные приложения, вывод которых невозможно перенаправить и, соответственно, невозможно получить описанным ранее способом. Для них также придется использовать способ из этой статьи.Для начала как всегда несколько структур, которые изначально не описаны в FASM. Они нам понадобятся для работы с консольным окном:
Code (Assembler) : Убрать нумерацию
- struct COORD
- X dw ?
- Y dw ?
- ends
- struct SMALL_RECT
- Left dw ?
- Top dw ?
- Right dw ?
- Bottom dw ?
- ends
- struct CONSOLE_SCREEN_BUFFER_INFO
- dwSize COORD
- dwCursorPosition COORD
- wAttributes dw ?
- srWindow SMALL_RECT
- dwMaximumWindowSize COORD
- ends
Читать статью целиком »
Просмотров: 889 | Комментариев: 0

Убираем контекстное меню "Закрепить на панели задач" для отдельных приложений
15.10.2018 | Категория: Software | Автор: ManHunter

Убираем контекстное меню "Закрепить на панели задач" для отдельных приложений
Очередная хитрость по настройке Windows. На этот раз для отдельных приложений мы будем убирать из контекстного меню пункты "Закрепить на панели задач" и "Закрепить в меню Пуск". Пожалуй, это тот редкий случай, когда я не смогу с ходу ответить на вопрос зачем это нужно. Будем считать, что просто еще одно полезное знание о системе.
Читать статью целиком »
Просмотров: 1640 | Комментариев: 3

Как получить реальную версию Windows из режима совместимости
25.09.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как получить реальную версию Windows из режима совместимости
Одной из основных политик компании Microsoft является поддержка обратной совместимости программ, то есть программы для Windows, написанные даже очень давно, теоретически должны работать на современных системах. Один из механизмов обеспечения такой работоспособности - запуск программ в режиме совместимости. Достаточно в свойствах исполняемого файла указать, какую версию Windows надо использовать, и система при запуске программы будет эмулировать для нее окружение именно этой версии. Если при этом из программы попытаться получить версию Windows при помощи функции GetVersion, GetVersionEx или даже RtlGetVersion, то результат вернет версию эмулируемой ОС. А можно ли как-то определить, что программа запущена в режиме совместимости и получить реальную версию Windows, на которой она работает? Можно!
Читать статью целиком »
Просмотров: 1806 | Комментариев: 11

Как открыть файлы XLSX и DOCX в Office XP
22.09.2018 | Категория: Software | Автор: ManHunter

Как открыть файлы XLSX и DOCX в Office XP
Вы можете сколько угодно называть меня ретроградом и консерватором, но некоторые дизайнерские решения, ставшие стандартом современных интерфейсов, я категорически не приемлю. Одно из таких решений - это так называемый "ленточный" интерфейс панели инструментов. Особенно он меня напрягает в офисных приложениях. Я бы с удовольствием продолжал пользоваться любимым Office XP, но он не поддерживает формат документов Office 2007, а именно XLSX и DOCX. Из-за этого приходилось пользоваться новыми версиями Microsoft Office, что причиняло мне душевную боль и вызывало кровотечение из глаз, или тормозным OpenOffice, который даже на мощных машинах запускается так, словно грузится с кассетного магнитофона. К моей безмерной радости, решение проблемы нашлось.
Читать статью целиком »
Просмотров: 5486 | Комментариев: 21

Как узнать загруженность процессора
24.08.2018 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как узнать загруженность процессора
Очередная интересная задача для программирования - узнать загруженность центрального процессора компьютера в процентах. Проблема в том, что система ни через какие API не предоставляет такого значения, как "загруженность", его просто нет. Зато есть хорошая функция GetSystemTimes, которая возвращает три значения: время, которое система бездействовала, время работы системы в режиме ядра и время работы системы в пользовательском режиме. Узнав разницу значений между этими таймингами за определенный интервал, можно определить загруженность процессора за этот интервал. На многоядерных системах эта функция возвращает суммарные значения по всем ядрам.
Читать статью целиком »
Просмотров: 1289 | Комментариев: 9
