【问题标题】:How to hide console windows when calling system()?调用system()时如何隐藏控制台窗口?
【发布时间】:2017-09-21 21:20:55
【问题描述】:

目前我正在使用 system("\"C:\Program Files\Common Files\microsoft shared\ink\TabTip.exe\""); 打开虚拟键盘 和系统(“TASKKILL /IM TabTip.exe /F”);杀死它

它似乎工作但总是弹出一个控制台窗口 我怎样才能摆脱它?谢谢!

【问题讨论】:

  • 您是从 Windows exe 还是控制台运行它们?
  • 使用 CreateProcess 或 ShellExecuteEx 而不是 system()。作为奖励,您还将获得该进程的句柄,这样您就可以调用 TerminateProcess 而不是直接调用 taskkill。
  • 如果您使用控制台应用程序并显示另一个控制台,您可以尝试使用popen

标签: c++ windows


【解决方案1】:

在 main 的开头添加以下代码,然后使用 popen api 创建“TabTip.exe”。因为你的应用现在有一个隐藏的控制台,popen创建的TabTip.exe不会显示出来。

AllocConsole();
ShowWindow(GetConsoleWindow(), SW_HIDE);

【讨论】:

  • 我已经为此搜索了很长时间,并且它有效。这值得更多的支持,因为这是整个 SO 中的一个常见问题,这是我看到的唯一正确解决方案的地方;相反,人们总是用“使用 CreateProcess”来回应,这通常是一堵代码墙才能正常工作。
  • 提示;#include
猜你喜欢
  • 2011-04-03
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2014-08-23
  • 2019-07-22
  • 2012-10-14
  • 2011-08-31
相关资源
最近更新 更多