Так им написать программу, которая запускает некоторые исполняемые файлы из близлежащих каталогов, и одна из его целей является сохранить эти исполняемые файлы в живых, так что я сделал следующее:Как сохранить процесс живой в Visual C++
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Environment::CurrentDirectory = somedir;
Process::Start("some.exe");
Environment::CurrentDirectory = "../";
}
Цель этой кнопки - начать процесс, some.exe, а затем я использую таймер , активированный checkbox, чтобы начать проверять, жив ли этот процесс или нет, и запустить его, если нет. Я использую флажок, чтобы эта функция была опциональной. Таким образом, код таймер выглядит следующим образом:
//this timer is triggered using a checkbox.
private: System::Void timer_Tick(System::Object^ sender, System::EventArgs^ e) {
if() //Im stuck here,..
{
/*and here is stuff i do if the above 'if' statement
says the program is no longer running. In this case,
I rerun the executable.*/
Environment::CurrentDirectory = somedir;
Process::Start("some.exe");
Environment::CurrentDirectory = "../";
}
}
и им застрял здесь, я искал вокруг и нашел методы, такие как WaitForSingleObject() или OpenProcess + GetExitCodeProcess, но я не мог понять, каким образом они быть реализованы.
Теперь, что мне нужно сделать, это использовать оператор , если вы хотите проверить, жив ли он или нет, и что-то сделать, в этом случае запустите его снова. Я использую таймер , чтобы повторить проверку каждые 5 секунд.
Прошу прощения, если этот вопрос кажется слишком нуб-иш *, но я действительно борется с этим, и главная причина этого заключается в том, что я в зависимости от примеров, которые я нашел, чтобы узнать код и не знаю, источник для изучения этого языка от a до z, правильно. Чтобы быть более точным, я не знаю, что именно ищет. Некоторая помощь здесь будет очень оценена.
См. Вышеприведенное сообщение, я исправил пару опечаток после моего первоначального сообщения: '.HasExited' должен быть' -> HasExited', потому что 'Process' является ссылочным типом, а не типом значения. По той же причине 'proc' должен быть объявлен как' Process^', с'^'. –
это работает как шарм, большое спасибо, ВЫ УДИВИТЕЛЬНЫ :) –