Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Кафедра автоматизованих систем управління
Звіт
з предмету
“Системне програмування і операційні системи”
з лабораторної роботи №7
Підготував:
студент групи КН-21
Максимовський Андрій
Перевірила:
Павлюк О.М.
Львів - 2010
Лабораторна робота №7
Тема – Зворотній виклик та функції перебору системних об’єктів.
Мета – Отримати інформацію про систему методом перебору її об’єктів.
Теоретичні відомості
ExitProcess завершує процес і всі його потоки.
VOID ExitProcess
UINT uExitCode / / код виходу для всіх потоків
Функція MessageBox створює, відображає і управляє вікні повідомлення. Вікно повідомлень містить додаток певних повідомлень і назви, а також будь-яку комбінацію зумовлених іконок і натискати кнопки.
Int MessageBox
HWnd HWND, / / дескриптор вікна власника
LPCTSTR lpText, / / адреса тексту у вікні повідомлення
LPCTSTR lpCaption, / / адреса Тема повідомлення вікна
UINT uType / / Стиль вікна повідомлення
EnumWindows перераховує всі вікна верхнього рівня на екрані by прийняття ручки кожного вікна, у свою чергу, до певної додатком функції відгуку. EnumWindows продовжується, поки останнє вікно верхнього рівня не перераховане або БРЕХНЯ function повернень відгуку.
BOOL EnumWindows
WNDENUMPROC lpEnumFunc // покажчик на функцію відгуку
LPARAM lParam // прикладний-визначив значення
GetWindowText копіює текст вказаного заголовок (якщо це має один) вікна вікна в буфері. Якщо вказане вікно - контроль, текст контролю копіюється.
int GetWindowText
HWND hWnd // ручка вікна або управляють з текстом
LPTSTR lpString // адреса буфера для тексту
int nMaxCount // число максимуму символів для копіювання
SendMessage відправляє вказане повідомлення вікну або вікнам. Звернення до функції процедура вікна для вказаного вікна і не повертається, поки процедура вікна не обробила повідомлення. Функція PostMessage, в контрасті, вивішує повідомлення черги повідомлень нитки і повертається негайно.
LRESULT SendMessage
HWND hWnd // ручка вікна призначення
Повідомлення UINT // повідомлення для послання
WPARAM wParam // перший параметр повідомлення
LPARAM lParam // параметр повідомлення помічника
Lstrcmp функція порівнює двох рядків символів. Порівняння залежне від умов.
int lstrcmp
LPCTSTR lpString1 // адреса першого рядка
LPCTSTR lpString2 // адреса дублера
.386
.model flat,STDCALL
extrn ExitProcess:Proc
extrn MessageBoxA:Proc
extrn EnumWindows:Proc
extrn GetWindowTextA:Proc
extrn SendMessageA:proc
extrn lstrcmp:proc
.data
TITLE1 db 'закрити вікно',0
WND_NAME db 200 dup(0)
WM_CLOSE equ 10h
;===============================
.code
Start: push 0 ; додатковий параметр, що передається до CallBack – функції;
push offset PROG1 ; адреса CallBack – функції;
call EnumWindows
STOP: call ExitProcess,0
;================================
PROG1 proc hwnd:DWORD, wparam:DWORD ; CallBack – процедура;
push 200 ; максимальна довжина назви;
push offset WND_NAME ; адреса назви вікна;
push hwnd ; хендл вікна;
call GetWindowTextA ; отримати назву вікна;
or eax,1 ; 1 – шукати далі, 0 – закінчити перебір.
call MessageBoxA,0,offset WND_NAME,offset TITLE1,30h ; вивести назву;
cmp eax,6
jnz M1
call SendMessageA,hwnd,WM_CLOSE,0,0
;mov eax,1
Ret ; Повернутися до процедури EnumWindows.
Endp PROG1
End Start
Висновок: під час лабораторної роботи я навчитися отримувати інформацію про систему методом перебору її об’єктів.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!