Home

Page 87
Page 87
background image

80 Глава 3

CloseFile(f);

end;

Имя окна мы можем определить из последнего полученного параметра вот

таким образом:

Теперь проверяем: если оно пустое, то мне нет смысла связываться с этим

окном, потому что оно невидимо. Видимые окна в 99% случаев имеют заго-

ловок, поэтому я делаю такую проверку, а погрешность в своей программе

в 1% считаю нормальной.

Затем проверяем, является ли это окно главным. Если следующая конструк-

ция не равна нулю, значит, это дочернее окно:

Параметр

 содержит указатель на главное окно по отношению

к нашему. Если этот параметр равен нулю, то у этого окна нет владельца,
а это может быть только в том случае, если наше окно само является

главным.
С дочерними окнами тоже не хочется связываться, потому что это чаще

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

Далее вызывается функция

 (wnd, windtext, 255), чтобы по-

лучить заголовок окна. После этого вся полученная информация формати-

руется в строку и сохраняется в log-файле уже использованным способом.

Код обработки события

 (ОКНО

 разрушено) идентичен тому,

что написан для записи о создании окна. Здесь точно так же определяется

заголовок разрушаемого окна и все сохраняется в log-файле. Единственное,

что тут не делается

 проверка на то, является ли окно главным. То есть

будет ли сохраняться в log-файл информация обо всех разрушаемых окнах.
Это может сильно испортить читаемость журнала, и вы можете добавить

проверку, если собираетесь реально использовать программу. Я же этого не

стал делать в целях экономии места.

Пример получился достаточно хороший и рабочий, только есть у него един-

ственный недостаток — код, который добавляет строку в файл, повторяется
дважды. Именно поэтому его лучше вынести в отдельную процедуру и по-
том использовать ее для записи. Это можно сделать следующим образом

 3.6).


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.