Perl для системного администрирования




Управление процессами в NT/2000 - часть 9


В документации к модулю Win32: :Setupsup есть список свойств, и к ним можно обратиться. Используем одно из них для написания очень простой программы, которая выведет размеры окна на экране. GetWindowPropertiesO принимает три аргумента: дескриптор окна, ссылку на массив, содержащий имена запрашиваемых свойств, и ссылку на хэш, где будут храниться результаты запроса. Вот какой код мы применим для этого:

Win32: :Setupsup: :GetW:

ndowProperties($ARGV[0], ["reef, "id"], \%info);

print "\t" . $info{rect}{top} . "\n";

print $info{rect}{left} . " -" . $ARGV[0] .

"- " . $info{rect}{right} . "\n";

print "\t" , $info{rect}{bottom} . "\n";

Вывод получается несколько вычурным. Вот как выглядит вывод размеров (координат верхнего, левого, правого и нижнего края) окна с дескриптором 66180:

154

272 -66180- 903

595

GetWindowPropertiesO возвращает специальную структуру данных только для одного свойства rect. Все остальные будут представлены в хэше в виде обычных ключей и значений. Если вы не уверены в свойствах, возвращаемых Perl для конкретного окна, воспользуйтесь утилитой windowse, которую можно найти на http://greatis.virtualave.net/ products.htm.

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

"Prestidigitation In Progress ... 32% complete" Чтобы внести эти изменения, достаточно одного вызова функции:

Win32::Setupsup:SetWindow

Text($handle,Stext);

Свойство rect тоже можно установить таким образом. Следующие строки заставляют указанное окно переместиться в заданную позицию экрана:

use Win32::Setupsup;

$info{rect}{left} = 0;

$info{rect}{nght} = 600;

$info{rect}{top} = 10;

$info{rect}{bottom}= 500;

Win32::Setupsup::SetWindow




Содержание  Назад  Вперед