使用cmd在后台运行.exe文件

时间:2012-12-19 15:57:33

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

我正在运行一个简单的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 命令并且优先级最低。但没用。一些类似的问题对我没用。所以请提供一个apt命令,通过该命令将该程序作为后台进程运行。

2 个答案:

答案 0 :(得分:1)

你的意思是你不希望程序在所有中产生一个控制台吗?如果是这样,您将不得不更改主要功能:

int main()

要:

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

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

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

答案 1 :(得分:0)

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

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