Обзор компонентов Фленов Михаил aka Horrific Хакер, номер #079, стр. 079-124-1 (www.vr-online.ru) Memory Map Для Delphi [описание:] Не всегда удобно читать и писать файлы стандартными методами. Часто приходится загружать файл в память и только потом использовать его, что отнимает очень много времени. А как хорошо было бы работать с файлом сразу же без загрузки, как с памятью! Ось же умеет делать это. Классический пример такой работы – файл подкачки, с которым система работает как с оперативкой. Однако некоторые программисты не используют функции отображения файлов в памяти из-за их «сложности». Вот почему сегодня я привожу компонент, максимально упрощающий эту задачу. [особые отличия:] + Профессиональная реализация. Чтобы программа не завалилась, есть все необходимые проверки. Все работает «на ура». Сразу становится понятно, что автор – наш соотечественник. + К компоненту прилагаются полный исходник и понятный пример использования. - Если запросить данных больше, чем есть в файле, то просто сгенерируется ошибка и работа продолжится, а не помешало бы сразу уменьшить значение читаемых данных до максимального. [диагноз:] Отображение действительно необходимо всегда, особенно если приходится работать с большим количеством данных. К примеру, очень и очень сложно обходиться без него при работе с видео. Ты только представь, что программе пришлось бы грузить в память здоровенный образ DVD – был бы просто кошмар. Сплошные тормоза и глюки, особенно если мало оперативки. [ссылки:] Забираем здесь: www.torry.net/vcl/system/memory/jmm.zip MiTeC – SystemInformation Для Delphi [описание:] Неделю назад мне задали очень интересный вопрос: «Изменяется ли идентификатор жесткого диска при форматировании и сохраняется ли он при переносе образа с помощью Norton GHOST?» Автор вопроса хотел заставить свою программу запускаться только на определенном компьютере и чтобы она была привязана к диску. Замысел хороший, но, боюсь, одной привязкой к харду тут ограничиваться не получится, так как можно подделать идентификатор если не собственно жесткого диска, то идентификатор функций, которые определяют его. По-моему, лучший вариант – привязаться к идентификаторам нескольких устройств и материться, если изменились, скажем, три из них. [особые отличия:] - В этом случае я начну с недостатка, потому что он единственный, но серьезный – отсутствие исходного кода. Я не смог проанализировать код, поэтому пришлось основываться на примерах и документации, которая доступна на сайте. + Компоненты позволяют определить многие параметры всех основных устройств. Подробность данных поражает, тут есть к чему привязаться для обеспечения защиты от копирования. + Есть удобная возможность экспорта отчета в формат XML. + Можно в реальном времени следить за загрузкой памяти и процессора, хотя не так уж сложно реализовать это самостоятельно. + В качестве примера показано, как создать окно наподобие диспетчера устройств Windows. + Есть возможность просмотреть работающие процессы. [диагноз] Не видя исходного кода, очень сложно выносить какое-либо решение о том, нужен компонент или нет. Если системная информация берется из реестра без дополнительных проверок на достоверность данных, такому компоненту грош цена. Однако если информация проверяется, а там, где это возможно, берется напрямую от устройства, то такой компонент действительно невероятно полезен. |