Ожидание выполнения другой программы C++

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Quntugo, 9 Jan 2018.

  1. Quntugo

    Quntugo New Member

    Joined:
    9 Jan 2018
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    C++ код:
    ShellExecute(NULL, "open", file_name.c_str(), NULL, NULL, SW_SHOW);
    remove(file_name.c_str());

    Пытаюсь сделать так, чтобы после выполнения этот файл удалялся.
    Пытался так и запустить - файл не успевает открыться.
    Пытался через WaitForSingleObject, но он выдаёт WAIT_FAILED(GetLastError = 5)
    Подскажите, пожалуйста, как лучше поступить в данной ситуации.
     
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    1,107
    Likes Received:
    8,481
    Reputations:
    25
    Через ShellExecute насколько я помню у тебя немного не тот HANDLE возвращается.
    А вот через CreateProcess если сделашь - должно быть ок.
     
  3. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Юзай ShellExecuteEx с fMask = SEE_MASK_NOCLOSEPROCESS, забирай у него hProcess и отдавай в WaitForSingleObject()
     
    #colorblind likes this.