Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
13
Добавлен:
12.03.2016
Размер:
232.96 Кб
Скачать

Для работы с окнами Windows предоставляет большое количество функций, которые описаны в модуле Windows.pas, и экспортируются из Windows'овских библиотек (DLL - Dynamic Link Library).

функции API

BringWindowToTop - Выводит окно поверх других по Z- порядку

CloseWindow - Минимизирует (не закрывает) окно EnableWindow - Делает окно доступным/недоступным EnumChildWindows - Просматривает все дочерние окна EnumWindows - Просматривает все главные окна FindWindow - Ищет окно в системе

FindWindowEx - Ищет дочернее окно GetClassName - Узнает имя класса заданного окна

GetClassLong - Узнает информацию о данном классе GetClientRect - Достает Rect клиентской области окна GetDesktopWindow - Возвращает дескриптор Desktop GetForegroundWindow - Ищет верхнее окно системы GetNextWindow - Находит следующее или предыдущее окно

GetWindow - Возвращает дескриптор окна, с заданным положением

GetDC - Ищет дисплейный контекст окна

GetWindowLong - Узнает информацию о заданном окне GetWindowRect - Достает Rect всего окна GetWindowText - Возвращает текст окна GetWindowTextLength - Возвращает длину текста окна GetWindowThreadProcessId - Узнает процесс, которому принадлежит заданное окно

IsChild - Дочернее ли окно IsIconic - Свернуто ли окно

IsWindow - Есть ли такое окно в системе IsWindowVisible - Видимое ли это окно IsZoomed - Максимизировано ли это окно MoveWindow - Перемещает окно

OpenIcon - Восстанавливает окно из иконки SetForegroundWindow - Назначает верхнее окно системы SetWindowLong - Устанавливает новые параметры окна SetWindowPos - Устанавливает позицию окна SetWindowText - Изменяет заголовок окна

ShowWindow - Показывает окно с заданными параметрами WindowFromPoint - Возвращает окно из заданной позиции

Ниже представлен фрагмент кода, позволяющий определить наличие окна в системе:

if findwindow(nil, '1.txt - Блокнот') <>0 then showmessage ('Окно присутствует');

SetWindowPos(findwindow(nil,'1.txt - Блокнот'),HWND_BOTTOM,1,1,20,20,SWP_nosize);

Первый параметр - заголовок окна, с которым надо что-либо сделать ( в данном случае - передвинуть). Заголовок передается функцией "ловли" окна findwindow(nil,'1.txt - Блокнот') , где 1.txt - Блокнот заголовок окна

Второй параметр - положение окно ( т.е. его Z-расположение ) он нам сейчас не нужен. Просто считайте, что он должен быть HWND_BOTTOM

Третий параметр - координыты окна по "Оси X" в пикселах.

Четвертый параметр - координыты окна по "Оси Y" в пикселах (т.е. этими координмтами вы указываете куда двигать окно).

Пятый - размер окна по горизонтали Шестой - размер окна по вертикали

Седьмой параметр, он имеет несколько значений. Вот основные из них:

HWND_BOTTOM - Размещает окно внизу Z - последовательности. Если параметр hWnd идентифицирует самое верхнее окно, окно теряет свое самое верхнее

состояние и помещается внизу всех других окон.HWND_NOTOPMOST - Помещает окно выше всех не

самых верхних окон (то есть позади всех самых верхних окон). Этот флажок не имеет никакого эффекта, если окно - уже не самое верхнее окно.

HWND_TOP - Помещает окно наверху Z -

последовательности.

HWND_TOPMOST - Помещает окно выше всех не самых верхних окон. Окно поддерживает самую верхнюю позицию даже, когда оно дезактивировано.

SWP_HIDEWINDOW - после проделаных действий над окном ( перемещением и изменением размера ) окно прячется

SWP_NOSIZE - если указан этот параметр, то 5й и 6й параметры учитываться не будут, т.е. окно менять размер не будет (этот параметр указан в нашем примере )

SWP_NOMOVE - если указан этот параметр, то 3й и 4й параметры учитываться не будут, т.е. окно не будет перемещаться.

SWP_SHOWWINDOW - после проделанных действий над окном

( перемещением и изменением размера ) окно будет показано ( работает только если окно было спрятано)

setwindowtext (findwindow(nil,'1.txt - Блокнот'),'Окно Хакера')

Showwindow(findwindow(nil,'1.txt - Блокнот'),sw_hide);

SW_HIDE -Прятать окно SW_MAXIMIZE -Максимизировать окно SW_MINIMIZE -Минимизировать окно

SW_SHOW -показать окно (Его надо вызывать если вы хотите показать уже спрятанное окно)

postmessage( findwindow(nil,'заголовок окна'), wm_команда,

парам3, парам4);

В первом параметре - findwindow(nil,'заголовок окна')

передается заголовок окна.

Второй пареметр - комманда, указывающая какое действие должно совершиться над окном.

Все эти комманды начинаются на WM_

(wm_size, wm_quit, и т.д.)

Третий и четвертый параметры(парам3 и парам4) - это параметры wm_комманды.

postmessage(findwindow(nil,'1.txt - Блокнот'), wm_quit,0,0);

Функция GetNextWindow

Синтаксис: function GetNextWindow(Wnd: HWnd; Flag: Word): Hwnd;

Описание: Считывает из Wnd следующее или предыдущее окно. В случае окна верхнего уровня ищется следующее окно верхнего

уровня, а в случае дочернего окна ищется следующее дочернее окн

параметры:

Wnd: идентификатор окна.Flag: Одна из констант

gw_HWndNext - искать следующее окно gw_HwndPrev - искать предыдущее окно.

возвращаемое значение: Идентификатор окна.

Функция GetNextWindow находит все окна текущего уровня (если задано окно верхнего уровня, - то ищет окно верхнего уровня, если дочернее окно - то список дочерних)

Осталось определить, как найти исходный описатель окна, от которого будем плясать (параметр WND функции)

Можно попробовать начать поиски с верхнего окна системы. Его можно определить при помощи следующей функции API:

Соседние файлы в папке Операционные системы презентации