Курсовая работа: Системное программирование для операционных систем
Вышеуказанный алгоритм реализует работу потока проверки файлов. Вызовы методов потока CheckStep и SetLists синхронизируются с главным VCL-потоком программы. Проверка файлов с передачей отчета главному окну программы инициируется взведением события NeverEvent - потоком контроля файлов по факту изменения состава файлов. Также предусмотрен механизм завершения потока – взведением свойства Terminated и события NeverEvent.
Приложение Б
(ОБЯЗАТЕЛЬНОЕ)
Листинги программы
Файл проекта FileNames.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("FMain.cpp", FForm);
USEFORM("FSelectDirForm.cpp", SDForm);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
//защита от повторного запуска
HWNDw=FindWindow("TFForm","Контроль одноименных файлов"),
w2=FindWindow("TSDForm","Выбор каталога");
if(w) {//при обнаружении запущенной копии приложения - активизирует
//ее главное окно и завершает работу
if(IsWindowVisible(w)) {
if(w2 && IsWindowVisible(w2)) SetForegroundWindow(w2);
else SetForegroundWindow(w);
}
else PostMessage(w,WM_USER+2,0,0);
}
else{ //иначе - стандартное выполнение программы
Application->Initialize();
Application->CreateForm(__classid(TFForm), &FForm);
Application->CreateForm(__classid(TSDForm), &SDForm);
Application->Run();