[英]how can I run an external program In C?
如何在C中运行外部程序? 例如应用程序,如browser
, word
, Notepad
等。另外,如何设置外部应用程序窗口的特定大小? 例如,窗口大小为300 X 300
像素。
标准方式是system
- 几乎可以在任何地方工作,但是无法控制子进程的运行方式。
按控制(和复杂性)的升序,Windows提供: WinExec
, ShellExecute
, ShellExecuteEx
和CreateProcess
。 使用CreateProcess,您可以传递STARTUPINFO
或STARTUPINFOEX
结构。 无论哪种方式,您都可以指定子窗口的起始位置和/或大小(尽管子进程可以并且可以在窗口甚至可见之前移动/调整其大小)。
您可能还需要考虑Boost Process
,它不被接受为Boost的官方部分,但提供了比system
更多的控制,同时保持合理的可移植到相当多的最广泛使用的系统(包括Windows和任何东西)合理的POSIX,如Linux或OS X)。
您可以使用C标准库或Win32 CreateProcess函数中的系统运行外部程序。
要调整您创建的应用程序的主窗口的大小。 首先使用CreateWindow启动该过程。 然后使用带有CreateProcess句柄的EnumThreadWindows来查找该进程的主窗口。 最后,您可以使用该句柄调用MoveWindow来设置大小和位置。
你可以使用系统功能,如,
#include <stdlib.h>
int main()
{
system("your-program-name");
return 0;
}
这将在命令提示符下执行。
但是如果你想使用winapi,最好的方法是使用CreateProcess()函数, http://msdn.microsoft.com/en-us/library/ms682425.aspx
您还可以检查_popen ( stdio.h )以获取控制台应用程序(仅限)。
要创建重定向输入和输出的Windows应用程序,请参阅在Windows SDK中创建具有重定向输入和输出的子进程 。
切勿在Windows上使用system()(禁止)使用Shell apis
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.