c - 如何在 Windows 上从 C 中的另一个程序启动一个独立程序(在单独的控制台窗口中)?
问题描述
我在 Windows 上有一个 C 应用程序,它需要在某些情况下启动另一个应用程序。我已经能够使用以下代码行成功启动另一个应用程序,但是第一个应用程序(父应用程序)和新应用程序(子应用程序)使用相同的窗口。我希望他们有单独的窗口。我该怎么做?
我启动子应用程序的代码是:
char *app_path = "path\\my_app.exe";
char *app_arg = "arg";
if (-1 == _spawnl(P_NOWAITO, app_path,app_arg,NULL))
{
printf_s("\nUnable to start the app. Error code %d", errno);
}
else
{
printf_s("\App started successfully.");
}
注意:子应用程序不是真正的子应用程序,除了它是由“父”启动的。
解决方案
你可以像这样启动你的程序:
char *cmd_args = "/C C:\\Users\\Administrator\\Desktop\\my_app.exe app_arg";
if (-1 == _spawnl(P_NOWAITO, "C:\\Windows\\System32\\cmd.exe", cmd_args,NULL))
{
printf_s("\nUnable to start the app. Error code %d", errno);
}
else
{
printf_s("\App started successfully.");
}
start
是一个 cmd-builtin,它将在新窗口中启动以下命令。
推荐阅读
- php - 在 Slim 中向路由添加中间件时出错
- oracle-apex - 在 tomcat 中部署后,BI 发布者在 oracle apex 中返回空白报告
- c++ - Visual C++ Outlook 自动化
- angular - Angular Portal 包含多个 Angular 项目和库
- java - 如何使用 jframe 文本字段在 xml 文件中插入数据
- javascript - JavaScript 中 Number.MIN_VALUE - 1 的错误结果
- r - R中的For循环不打印我需要的东西
- java - 即使不使用,Spring Boot 应用也会稳定分配内存
- mysql - MySQL结果集
- mysql - 在一列的所有值的开头添加一个“0”