在這種thread我解決了我的情況,並感謝一部分到NathanOliver我有下面的代碼至今:在我的C++控制檯應用程序的具體流程Unsuccesfull管理
int main(){
//...
bool proc1 = false, proc2 = false, proc3 = false, proc4 = false,
while(true) {
if(!proc1 && ProcessRunning("process1.exe")){
fun1("fun1.bat");
proc1 = true;
}
if(!proc2 && ProcessRunning("process2.exe")){
fun1("fun2.bat");
proc2 = true;
}
if(!proc3 && ProcessRunning("process3.exe")){
fun1("fun3.bat");
proc3 = true;
}
if(!proc4 && ProcessRunning("process4.exe")){
fun1("fun4.bat");
proc4 = true;
}
}
return 0;
}
我仍然可以」 t通過的情況是:
- 雙擊app1 - >
process1
開始。 - 而
process1
運行我雙擊APP2使process2
應該有相同的行爲,我在我的第一個線程中提到:
如果發現
process2
(第二if(){}
),它創建的。 bat文件和 它執行它(殺死process2
(它可能在我打開它之前就已經存在),再次啓動它,刪除由fun2(const char name[]){}
生成的.bat
文件。
總結以前的帖子:
int fun1(const char name[]){
ofstream file;
file.open(name, ios::out);
//start of what I write in .bat
file << "@echo off";
file << "cd to specific path";
file << "taskkill /im process.exe* /f";
file << "start process.exe";
file << "del \"%~f0\"";
file.close();
return system(name);
}
完全一樣的,其餘的功能。
在所有四種情況下,您是否打電話給'fun1'出現錯字? – molbdnilo
這不會起作用,因爲proc1被設置爲false,並保持這種狀態,我可以在代碼中看到。 –
@molbdnilo不,每個函數都有自己的名字。例如:'function1',...,'function4',並且在我的'main()'中正確調用它們中的每一個。我知道這些標誌可能是一個問題,但我只能使用它們到目前爲止 –