gpt4 book ai didi

c - 如何在进行系统调用时阻止控制台窗口出现?

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:17 25 4
gpt4 key购买 nike

我正在为一个 gui 项目使用 C 和 GTK+。对于我的项目,我必须进行大量系统调用。例如 system("copy myfile urfile");或 system("mp3player -embed filename") 等,每当我的程序调用系统时,都会出现一个烦人的控制台窗口并保持可见,直到命令完全执行。如何隐藏该控制台窗口?谢谢。

注意:对于我的项目,我可以使用 GTK+、C 标准库、GLib、WinApi(不推荐)和系统调用。

截图: annoying console window

最佳答案

使用 system() 创建一个新进程,首先启动一个新的命令解释器,然后依次执行传递给 system() 的命令。

命令解释器打开控制台窗口。

因此,为了避免打开这样的控制台窗口,您需要避免启动命令解释器。要执行后者,请尝试使用 spawn 系列 ( http://msdn.microsoft.com/en-us/library/20y988d2.aspx ) 中的函数或使用 win32 api 函数 CreateProcess() ( http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425 ) 直接启动您的应用程序.

这样做的副作用可能是,您的应用程序启动速度更快,并且使用的系统资源也更少。

事实上,上面提到的解决方案不适用于系统调用,明确需要一个命令解释器,如您的示例之一 (copy src dst)。

关于c - 如何在进行系统调用时阻止控制台窗口出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7993912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com