Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Кафедра автоматизованих систем управління
Звіт
з предмету
“Системне програмування і операційні системи”
з лабораторної роботи №6
Підготував:
студент групи КН-21
Славич Юрій
Перевірила:
Павлюк О.М.
Львів - 2011
Лабораторна робота №6
Тема – Спеціалізовані каталоги WINDOWS.
Мета – Отримати інформацію про спеціалізовані каталоги та навчитись з ними працювати.
Теоретичні відомості
ExitProcess завершує процес і всі його потоки.
VOID ExitProcess
UINT uExitCode / / код виходу для всіх потоків
Lstrlen функція повертає довжину в байтах (ANSI версії) або символів (Unicode версії) зазначеної рядку (не включаючи нульовий символ).
Int lstrlen
LPCTSTR lpString / / адреса рядка в кол –
Функція MessageBox створює, відображає і управляє вікні повідомлення. Вікно повідомлень містить додаток певних повідомлень і назви, а також будь-яку комбінацію зумовлених іконок і натискати кнопки.
Int MessageBox
HWnd HWND, / / дескриптор вікна власника
LPCTSTR lpText, / / адреса тексту у вікні повідомлення
LPCTSTR lpCaption, / / адреса Тема повідомлення вікна
UINT uType / / Стиль вікна повідомлення
SHGetPathFromIDList перетворює список ідентифікаторів виробу на дорогу файлової системи.
WINSHELLAPI BOOL WINAPI SHGetPathFromIDList
LPCITEMIDLIST pidl
LPSTR pszPath
SHGetSpecialFolderLocation Відновлює розташування теки спеца.
WINSHELLAPI HRESULT WINAPI SHGetSpecialFolderLocation
HWND hwndOwner
int nFolder
LPITEMIDLIST *ppidl
FindFirstFile шукає директорій для файлу, чиє ім'я відповідає вказане ім'я файлу. FindFirstFile досліджує імена підкаталогів також як і імена файлу.
УПРАВЛЯЙТЕ FindFirstFile
LPCTSTR lpFileName // покажчик на ім'я файлу для пошуку
LPWIN32_FIND_DATA lpFindFileData // покажчик на повернену інформацію
FindNextFile продовжує пошук файлу від попереднього виклику до функції FindFirstFile.
BOOL FindNextFile
УПРАВЛЯЙТЕ hFindFile // ручка для пошуку
LPWIN32_FIND_DATA lpFindFileData // покажчик, аби структурувати для даних на знайденому файлі
. .386
.model flat, STDCALL
extrn MessageBoxA:proc
extrn ExitProcess:proc
extrn SHGetPathFromIDList:proc
extrn SHGetSpecialFolderLocation:proc
extrn FindFirstFileA:proc
extrn FindNextFileA:proc
EXTRN lstrcat:proc
extrn _wsprintfA:proc
.data
buf db 250 dup(0)
rf db 'ê-òü ôàéë³â: %d',0
INVALID_HANDLE_VALUE equ -1
n dd 0
T db 'Øðèôòè '
DIRECTORY_NAME db 2000 dup(0)
FindFileData:
dd 0
dq 0,0,0
dd 0,0
dd 0,0
s3 db 260 dup(0)
s4 db 14 dup(0)
DIRECTORY_ID dd 0 ; õåíäë ïàïêè;
INDEX dd 14h
cat db '\*.*',0
HndFindFile dd 0
.code
BEGIN:
push offset DIRECTORY_ID ; âèõ³äíèé ïàðàìåòð;
push INDEX ; âõ³äíèé íîìåð ïàïêè;
push 0 ; õåíäë âëàñíèêà;
call SHGetSpecialFolderLocation
push offset DIRECTORY_NAME ; Àäðåñà âèõ³äíîãî ³ìåí³;
push DIRECTORY_ID ; âõ³äíèé õåíäë ïàïêè.
call SHGetPathFromIDList
call lstrcat,offset DIRECTORY_NAME,offset cat
call FindFirstFileA,offset DIRECTORY_NAME,offset FindFileData
mov HndFindFile,eax
cmp eax,-1
jz EX
;call MessageBoxA,0,offset s3,offset DIRECTORY_NAME,0
find:
call FindNextFileA,HndFindFile,offset FindFileData
cmp eax,-1
jz EX
;call MessageBoxA,0,offset s3,offset DIRECTORY_NAME,0
inc n
cmp n,354
jz EX
jmp find
EX:
call _wsprintfA, offset buf,offset rf, n
call MessageBoxA,0,offset buf,offset T,0
call ExitProcess,0
end BEGIN
Висновок: під час лабораторної роботи я навчитися отримувати інформацію про спеціалізовані каталоги та працювати з ними.