Курсовая работа (т): Створення програми, яка дозволяє запускати процеси, використовуючи для цього вибрані на диску файли

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

}

//

// ФУНКЦИЯ: InitInstance(HINSTANCE, int)

//

// НАЗНАЧЕНИЕ: сохраняет обработку экземпляра и создает главное окно.

//

// КОММЕНТАРИИ:

//

// В данной функции дескриптор экземпляра сохраняется в глобальной переменной, а также

// создается и выводится на экран главное окно программы.

//InitInstance(HINSTANCE hInstance, int nCmdShow)

{hWnd;= hInstance; // Сохранить дескриптор экземпляра в глобальной переменной= CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);(!hWnd)

{FALSE;

}

// Set the timer for the mousetrap.uResult = SetTimer(hWnd, // handle to main window_TIMER, // timer identifier

, // 1-second interval

(TIMERPROC) NULL); // no timer callback(uResult == 0)

{(hWnd, "No timer is available.", "Error", MB_OK);

}(hWnd, nCmdShow);(hWnd);TRUE;

}

//

// ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)

//

// НАЗНАЧЕНИЕ: обрабатывает сообщения в главном окне.

//

// WM_COMMAND- обработка меню приложения

// WM_PAINT-Закрасить главное окно

// WM_DESTROY - ввести сообщение о выходе и вернуться.

//

//CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

{wmId, wmEvent;ps;hdc,hmdc;(message)

{WM_COMMAND:= LOWORD(wParam);= HIWORD(wParam);

// Разобрать выбор в меню:(wmId)

{IDM_ABOUT:(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);;IDM_START_EXE:(hWnd);;IDM_EXIT:

// !!!! TODO - добавить код убивания процессов(hWnd);;:DefWindowProc(hWnd, message, wParam, lParam);

};WM_TIMER: {(int i=0; i<current_process; i++) {(IsProcessStillRunning(processes[i])) processes[i].nCount++;

}rect;(hWnd, &rect);(hWnd, &rect, true);;

}WM_RBUTTONDOWN:

{(button_check==0)

{_check=1;

}_check=0;;

}WM_PAINT: {(button_check==1)

{= BeginPaint(hWnd, &ps);

// TODO: добавьте любой код отрисовки...

// тут пробежаться циклом по processes и вывести информацию= CreatePen(0, 2, RGB(0,0,0xFF));(hdc, hPen);process_str[1024];temp[ ] = "Name: %s Process ID: %d Thread ID: %d Live time: %d sec, Active: %s";(int i=0; i<current_process; i++) {(process_str, temp, processes[i].process_name, processes[i].pi.dwProcessId, processes[i].pi.dwThreadId, processes[i].nCount,(processes[i]) ? "ACTIVE" : "STOPPED");len=0; while (process_str[len]!=0) len++;(hdc, 400, 400 + 25* i, process_str, len );

}(hWnd,NULL);(hWnd, &ps);;

}= BeginPaint(hWnd, &ps);

// TODO: добавьте любой код отрисовки...

// тут пробежаться циклом по processes и вывести информацию= CreatePen(0, 2, RGB(0,0,0xFF));(hdc, hPen);process_str[1024];temp[ ] = "Name: %s Active: %s";(int i=0; i<current_process; i++) {(process_str, temp, processes[i].process_name,(processes[i]) ? "ACTIVE" : "STOPPED");len=0; while (process_str[len]!=0) len++;(hdc, 400, 400 + 25* i, process_str, len );

}(hWnd,NULL);(hWnd, &ps);;

}WM_DESTROY:(hWnd, IDT_TIMER);(int i=0; i<current_process; i++)

{(IsProcessStillRunning(processes[i])) TerminateProcess(processes[i].pi.hProcess, 0);

}(0);;:DefWindowProc(hWnd, message, wParam, lParam);

}0;

}IsProcessStillRunning(PROCESS p)

{code;GetExitCodeProcess(p.pi.hProcess, &code) !=0 && code == STILL_ACTIVE;

}

// Обработчик сообщений для окна "О программе"._PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)

{_PARAMETER(lParam);(message)

{WM_INITDIALOG:(INT_PTR)TRUE;WM_COMMAND:(LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)

{(hDlg, LOWORD(wParam));(INT_PTR)TRUE;

};

}(INT_PTR)FALSE;

}StartExe(HWND hWnd)

{(current_process >= MAX_PROCESSES) {(hWnd, "Maximum number of processes is being running.", "Error", MB_OK);;

}(&of, sizeof(of));(&filename, sizeof(filename));.lStructSize=OPENFILENAME_SIZE_VERSION_400A; /*размер структуры OPENFILENAME*/.hwndOwner=NULL ; /*дескриптор родительского окна*/.hInstance=hInst; /*дескриптор экземпляра программы*/.lpstrFilter=filters;/*фильтр файлов (тип)*/.lpstrCustomFilter=NULL; /*еще один фильтр: нам не надо*/.nMaxCustFilter=0; /*нам не надо*/.nFilterIndex=1; /*количество заданных нами фильтров*/.lpstrFile=filename; /*адрес буфера под имя файла*/.nMaxFile=MAX_PATH; /*размер буфера под имя файла*/.lpstrFileTitle=NULL; /*буфер под рекомендуемый заголовок: нам не надо*/.nMaxFileTitle=0; /*нам не надо*/.lpstrInitialDir=NULL; /*стартовый каталог: текущий*/.Flags=OFN_PATHMUSTEXIST; /*разные флаги*/(GetOpenFileName(&of)) {

// действия в случае успешного выбора файла /(NULL, of.lpstrFile, NULL, NULL, NULL, NULL, NULL, NULL, &(processes[current_process].si), &(processes[current_process].pi));(processes[current_process].process_name,of.lpstrFile);[current_process].nCount=0;_process++;

}

}

Источник: https://www.bibliofond.ru/detail.aspx?id=871734