Загрузка данных


#include <iostream>
#include <windows.h>
#include <string>
#include <locale>


int main() {

    std::wcout.imbue(std::locale("rus_rus.866"));
    std::wcin.imbue(std::locale("rus_rus.866"));

    std::wcout << L"Управление процессами в Windows" << std::endl;
    std::wcout << std::endl;

    // ========================================================
    // ПОДГОТОВКА СТРУКТУР ДЛЯ CreateProcess
    // ========================================================

    STARTUPINFO si;
    ZeroMemory(&si, sizeof(si));
    si.sb = sizeof(si);

    PROCESS_INFORMATION pi;
    ZeroMemory(&pi, sizeof(pi));
    // ========================================================
    // СОЗДАНИЕ ДОЧЕРНЕГО ПРОЦЕССА
    // ========================================================


    std::wcout << L"Ожидаем завершения процесса (таймаут 30 секунд)..." << std::endl;
    std::wcout << L"Закройте блокнот вручную или дождитесь таймаута." << std::endl;
    std::wcout << std::endl;
    wchar_t commandLine[] = L"notepad.exe";
    if(CreateProcess(NULL, commandLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)){
        printf(pi.dwProcessId);
    }
    else{
        printf("error", GetLastError());
        return 1;
    }



    // ========================================================
    // ОЖИДАНИЕ ЗАВЕРШЕНИЯ И ПОЛУЧЕНИЕ КОДА ВЫХОДА
    // ========================================================

    if(WaitForSignalObject(pi.hProcess, 30000) == 0){

    }
    return 0;
}