如何在C中运行外部程序?

Jav*_*vaX 9 c winapi

如何在C中运行外部程序?对于像一个示例应用程序browser,word,Notepad等还有我怎么可以将外部应用程序的窗口一定规模?例如,300 X 300像素的窗口大小.

Jer*_*fin 14

标准方法是system- 几乎可以在任何地方工作,但是无法控制子进程的运行方式.

在控制(和复杂性)的升序,Windows提供:WinExec,ShellExecute,ShellExecuteEx,和CreateProcess.使用CreateProcess传递一个STARTUPINFOSTARTUPINFOEX结构.无论哪种方式,您都可以指定子窗口的起始位置和/或大小(尽管子进程可以并且可以在窗口甚至可见之前移动/调整其大小).

您可能还需要考虑Boost Process,它不被接受作为Boost的官方部分,但提供了更多的控制system,同时保持合理的可移植性到相当多的最广泛使用的系统(包括Windows和任何合理的POSIX-比如Linux或OS X).


Jud*_*den 2

您可以使用系统中的 C 标准库或 Win32 CreateProcess函数来运行外部程序。

调整您创建的应用程序主窗口的大小。首先使用 CreateWindow 启动该进程。然后使用EnumThreadWindows和 CreateProcess 的句柄来查找该进程的主窗口。最后,您可以使用该句柄调用MoveWindow来设置大小和位置。