如何啓動與我的應用程序完全無關的程序?換句話說,我如何創建另一個父進程,而不是子進程?C++啓動程序與現有應用程序分離
0
A
回答
1
在Windows進程的關係是非常弱。沒有SIGCHLD
。沒有必要的分離終端以避免SIGHUP
死亡。實際上,父進程只是很重要,因爲一堆環境內容可以自動複製到孩子身上。
您可能希望查看是在新進程組中啓動進程還是附加到新作業對象。請參閱CREATE_NEW_PROCESS_GROUP
標誌。
0
如果您使用的是Windows,請使用CreateProcess。
1
一個選項是調用system()
命令。這可以在<cstdlib>
(又名<stdlib.h>
)中找到。
例子:
#include <stdlib.h>
int main(int argc, char *argv[]){
// Open the Window's Calculator:
system("C:/Windows/system32/calc.exe");
return 0;
}
你可以通過任何命令你想爲system()
參數(假設你有必要執行該命令的權限)。
這也適用於Linux/Unix系統。
編輯:實現來電system()
之前,你可能想看看this write-up一下。有些人認爲使用system()
是不安全/不好的做法。但是,對於推出一個不相關的節目,我個人認爲system()
是一個很好的解決方案。
在使用您的命令調用它之前,確保system()
可用也很好。在某些系統上,可能不允許生成shell /命令提示符。要檢查這一點,您可以執行以下操作:
if(system(NULL)){
// spawning a shell is allowed
system(commandToExecute);
return 0;
}else{
// spawning a shell is prohibited
return ERROR_NO_SHELL;
}
相關問題
- 1. 離子應用程序啓動外部Android應用程序?
- 2. 離子應用程序啓動事件
- 3. 用c#console應用程序啓動wpf.exe應用程序?
- 4. 從C++啓動C#.Net應用程序
- 5. 如何從C#應用程序啓動應用程序?
- 6. 從應用程序啓動「啓動器應用程序抽屜」?
- 7. 在Windows啓動應用程序C#
- 8. 如何啓動C++ mfc應用程序
- 9. 更新啓動器應用程序c#
- 10. 從C#啓動ClickOnce應用程序#
- 11. 應用程序未與FATAL EXCEPTION啓動
- 12. 自動阻止應用程序從啓動程序啓動
- 13. 啓動應用程序
- 14. 啓動應用程序
- 15. Android應用程序啓動
- 16. 啓動應用程序
- 17. 啓動Android應用程序
- 18. 應用程序不啓動
- 19. 當應用程序啓動
- 20. 在啓動應用程序
- 21. 在應用程序啓動
- 22. 啓動主應用程序
- 23. iPhone應用程序啓動
- 24. 應用程序不啓動?
- 25. 啓動應用程序10
- 26. 想要C#程序啓動WPF應用程序
- 27. c#通過程序在啓動時添加應用程序
- 28. 程序啓動在Windows啓動應用程序
- 29. Bash shell程序啓動C程序
- 30. 在啓動時啓動應用程序