如何啓動與我的應用程序完全無關的程序?換句話說,我如何創建另一個父進程,而不是子進程?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. 離子:啓動應用程序與-v1
- 2. 離子應用程序啓動外部Android應用程序?
- 3. 離子應用程序啓動事件
- 4. 從(現有的)Kotlin程序啓動TornadoFX應用程序
- 5. 用c#console應用程序啓動wpf.exe應用程序?
- 6. 從C++啓動C#.Net應用程序
- 7. 有序啓動的Web應用程序
- 8. 如何從C#應用程序啓動應用程序?
- 9. Windows 8的應用程序啓動器與WPF應用程序
- 10. 在應用程序啓動時啓動應用程序類
- 11. 從應用程序啓動「啓動器應用程序抽屜」?
- 12. 現在應用程序啓動它不
- 13. 啓動windows phone應用程序分析
- 14. 更新啓動器應用程序c#
- 15. 如何啓動C++ mfc應用程序
- 16. 在C#中啓動skype應用程序#
- 17. 從C#啓動ClickOnce應用程序#
- 18. 在Windows啓動應用程序C#
- 19. C#應用程序重新啓動不會調用程序Main()
- 20. 應用程序未與FATAL EXCEPTION啓動
- 21. 應用程序不啓動與minSdk 21
- 22. 自動阻止應用程序從啓動程序啓動
- 23. 如果我的應用程序包名稱與應用程序商店中的現有應用程序相同,我如何啓動android應用程序?
- 24. 想要C#程序啓動WPF應用程序
- 25. c#通過程序在啓動時添加應用程序
- 26. 啓動主應用程序
- 27. 啓動應用程序
- 28. 在應用程序啓動
- 29. Android應用程序啓動
- 30. 在啓動應用程序