【问题标题】:run .exe file in background using cmd [closed]使用cmd在后台运行.exe文件[关闭]
【发布时间】:2012-12-19 15:57:33
【问题描述】:

我正在运行一个简单的 CPP 程序来从控制台读取字符并将它们以点分隔的方式存储在文件中...

 #include<stdio.h>
 #include<conio.h>
 #include<iostream.h>
 #include<fstream.h>

 void main()
 {
           char content[2] = {'a','.'};
           ofstream o("filename",ios::out|ios::app);
           while(1)
           {
                   if(content[0]=='q')
                   {
                         break;
                   }
                   content = getche();
                   out<<content;
           }
           out.close();  
  }          

现在我希望这个程序只能在任务管理器中作为后台进程查看,而不是让用户看到(使用 cmd 运行)...

我以最低优先级使用start command。但是没有用。一些类似的问题对我没有用。因此,请提供一个 apt 命令,该程序将通过该命令作为后台进程运行。

【问题讨论】:

  • @RedX 以下是我一直在处理的一个问题....你能在 cpp 中发布一个示例代码吗......???
  • 我也不明白,如果你隐藏控制台,你将如何阅读控制台。
  • @ArjunKP,那样不行。
  • 您的代码完全不足以充当键盘记录器。就如何在这样的网站上创建一个寻求建议不太可能取得好的结果。
  • @ArjunKP,如果您要从标准输入中读取内容,您应该提供一些输入给它。如果控制台附加到您的程序,它将成为输入源。如果没有,您应该从某个地方重定向输入。否则从stdin 读取将简单地返回EOF

标签: c++ file windows-services cmd fstream


【解决方案1】:

您的意思是您不希望程序生成控制台根本?如果是这样,你将不得不改变你的主要功能:

int main()

收件人:

#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    LPSTR lpCmdLine, int nShowCmd)

使用这个新的 main 函数将防止任何控制台在您的程序启动时产生。

如果您想在程序开始时生成控制台,并在中途关闭它,您必须自己为控制台创建 GUI。我会推荐 FLTK 作为 GUI 库。对于更高级的 GUI,它并不是那么好,但如果您只想拥有一个简单的控制台,它就可以了。

【讨论】:

    【解决方案2】:

    您可以尝试使用nsExec 插件运行您的exe。 此应用程序内的执行不应显示任何控制台窗口

    另一种解决方案是将您的 progeam 作为 Windows 服务而不是作为应用程序运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      相关资源
      最近更新 更多