Міністерство освіти і науки України
Національний університет “Львівська політехніка”
Кафедра АСУ
Звіт до
лабораторної роботи №2
з курсу « Системного програмування»
на тему «Структури даних для використання системних функцій»
Львів 2014
Мета роботи: навчитися будувати структури даних для використання функцій Win32API при програмуванні в операційній системі Windows.
Хід роботи:
Записую код програми:
include WINDOWS.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
FileName db 'D:\Andriy\qwe.txt',0
buf1 db 255 dup(0)
Titl db 'Lab2', 0
a1 db 'Read Only',13, 10, 0
a2 db 'Hidden', 13,10,0
a3 db 'Archive', 13, 10, 0
a4 db 'System', 13, 10, 0 .386
.model flat,STDCALL
option casemap :none ;case sensitive
include lab2.inc
.code
Begin:
call main
invoke ExitProcess,NULL
main proc
invoke GetFileAttributes,offset FileName
push eax
and eax, FILE_ATTRIBUTE_READONLY
jz next
invoke lstrcat,addr buf1,addr a1
next:
mov eax, [esp]
and eax, FILE_ATTRIBUTE_HIDDEN
jz next2
invoke lstrcat,addr buf1,addr a2
next2:
mov eax, [esp]
and eax, FILE_ATTRIBUTE_ARCHIVE
jz next3
invoke lstrcat, addr buf1, addr a3
next3:
mov eax, [esp]
and eax, FILE_ATTRIBUTE_SYSTEM
jz exit
invoke lstrcat,addr buf1, addr a4
jmp exit
exit:
invoke MessageBox,0, addr buf1, addr Titl, MB_OKCANCEL
cmp eax, IDOK
jz exit
ret
main endp
end Begin
Приклад виконання програми:
/
/
/
Висновок: на даній лабораторній роботі я вивів атрибути файлу за допомогою функції GetFileAttributes, використовуючи макроконстанти FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_ARCHIVE, FILE_ATTRIBUTE_SYSTEM.