- •Лабораторна робота 1 Тема: Процеси і потоки
- •Створення процесу в win32 api
- •Створення потоку в win32 api
- •Лабораторна робота 2 Тема: Планування і взаємодія процесів і потоків
- •1.Дослідити роботу програми.
- •Приклад синхронізації потоків за допомогою об’єкта critical_section
- •Лабораторна робота 3 Тема: Практична реалізація багатопотоковості
- •1.Дослідити роботу програми.
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого. Синхронізація потоків, які виконуються в різних процесах за допомогою м’ютекса
- •Лабораторна робота 4 Тема: Керування оперативною пам’яттю
- •1.Дослідити роботу програми.
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого. Ініціалізація і копіювання блоків віртуальної пам’яті
- •Лабораторна робота 5 Тема: Файлові системи і операції з файлами і каталогами
- •1.Дослідити роботу програми.
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого. Функції Win32api для файлових операцій
- •Лабораторна робота 6 (ч.1) Тема: Керування пристроями вводу-виводу
- •1.Дослідити роботу програми.
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого. Отримання інформації про перший фізичний диск в системі за допомогою функції DeviceIoControl
- •Лабораторна робота 6 (ч.2) Тема: Створення та використання dll
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого.
- •Створення модальних форм розміщених у dll
- •Лабораторна робота 7 Тема: Взаємодія з користувачем в Windows xp
- •1.Дослідити роботу програми.
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого. Основи створення gui в Win32api
- •Лабораторна робота 8 Тема: Мережні засоби операційних систем
- •3.За завданням викладача розробити власний проект на основі існуючого.
- •Лабораторна робота 9 Тема: Безпека даних в ос
- •1.Дослідити роботу програми.
- •2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
- •3.За завданням викладача розробити власний проект на основі існуючого. Додання елементів в список вибіркового керування доступом (dacl) файла або каталога
Лабораторна робота 5 Тема: Файлові системи і операції з файлами і каталогами
Завдання:
1.Дослідити роботу програми.
2.Описати документацію на типи даних, структури та функції win32 api, які використовуються в програмі.
3.За завданням викладача розробити власний проект на основі існуючого. Функції Win32api для файлових операцій
//---------------------------------------------------------------------------
#include <vcl.h>
#include <StrUtils.hpp>
#pragma hdrstop
#include "UShFile.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BFind1Click(TObject *Sender)
{
int i;
OpenDialog1->Options = OpenDialog1->Options << ofAllowMultiSelect;
if (OpenDialog1->Execute())
{
ESource->Text="";
for (i=1; i <= OpenDialog1->Files->Count;i++)
ESource->Text = ESource->Text +
OpenDialog1->Files->Strings[i-1] + ";";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BFind2Click(TObject *Sender)
{
OpenDialog1->Options = OpenDialog1->Options >>ofAllowMultiSelect;
if (OpenDialog1->Execute())
ETarget->Text = OpenDialog1->FileName;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SHFILEOPSTRUCT SHF;
AnsiString SFrom, STo;
SFrom = ESource->Text + "\0\0";
SFrom = AnsiReplaceStr(SFrom, ';', '\0');
STo = ETarget->Text + "\0\0";
SHF.hwnd = 0;
SHF.pFrom = SFrom.c_str();
SHF.pTo = STo.c_str();
SHF.fFlags = FOF_ALLOWUNDO;
if (!CheckBox1->Checked)
SHF.fFlags = (SHF.fFlags | FOF_NOCONFIRMATION);
if (CheckBox2->Checked)
SHF.fFlags = (SHF.fFlags | FOF_NOCONFIRMMKDIR);
switch( RadioGroup1->ItemIndex)
{
case 0: SHF.wFunc = FO_COPY;
break;
case 1: SHF.wFunc = FO_MOVE;
break;
case 2: SHF.wFunc = FO_RENAME;
break;
case 3: SHF.wFunc = FO_DELETE;
}
if (RadioGroup2->ItemIndex == 1)
SHF.fFlags = SHF.fFlags | FOF_RENAMEONCOLLISION;
if (RadioGroup3->ItemIndex == 2)
SHF.fFlags = SHF.fFlags | FOF_SILENT;
else if (RadioGroup3->ItemIndex == 1)
{
SHF.fFlags = SHF.fFlags | FOF_SIMPLEPROGRESS;
SHF.lpszProgressTitle = "Пожалуйста, подождите";
}
//
if( SHFileOperation(&SHF) != 0)
if (SHF.fAnyOperationsAborted)
ShowMessage(
"Выполнение операции прервано пользователем");
else ShowMessage("Ошибка выполнения операции");
else ShowMessage("Операция успешно завершена");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ApplicationEvents1ShowHint(AnsiString &HintStr,
bool &CanShow, THintInfo &HintInfo)
{
if (AnsiString(HintInfo.HintControl->ClassName()) == "TEdit")
if (Label1->Canvas->TextWidth(
((TEdit *)HintInfo.HintControl)->Text) >
HintInfo.HintControl->ClientWidth)
{
HintStr = ((TEdit *)HintInfo.HintControl)->Text;
ApplicationEvents1->CancelDispatch();
}
}
