是否可以允许从命令行运行传统的Win32 GUI应用程序?

时间:2010-06-09 16:00:48

标签: user-interface winapi cmd

我们有一些可行的代码,它是带有GUI的Win32应用程序,但我希望能够从命令行触发它(静默模式)。有没有简单的方法来做到这一点?或者我是否必须创建另一个项目作为命令行应用程序?

3 个答案:

答案 0 :(得分:3)

如果您希望应用程序完全不可见,即根本没有窗口,您只需跳过创建主窗口的应用程序部分。正常的命令行应用程序将创建一个控制台窗口,当应用程序打开和关闭时,该窗口将在屏幕上闪烁。

答案 1 :(得分:1)

c:> notepad.exe

那回答你的问题?

答案 2 :(得分:1)

您可以编写一个小应用程序来启动与CreateProcess Windows API相关的旧GUI应用程序。 CreateProcess具有lpStartupInfoSTARTUPINFO类型的STARTUPINFOEX参数。如果您将此wShowWindowSTARTUPINFO的{​​{1}}字段初始化为STARTUPINFOEX,则将隐藏将启动的应用程序主Windows。您还必须设置SW_HIDE dwFlagsSTARTUPINFO,其中包含STARTUPINFOEX位掩码。

这个以隐藏模式启动另一个程序的小程序也可用于启动控制台应用程序,而无需打开一个众所周知的控制台窗口。