C++ 让 Win32 Console Application 程序后台运行

方法一:(无闪现)

添加

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )

方法二:(这个会有闪现)

#include "windows.h"

void main()

{

HWND hwnd;

if(hwnd=::FindWindow("ConsoleWindowClass",NULL)) //找到控制台句柄
{
::ShowWindow(hwnd,SW_HIDE); //隐藏控制台窗口
}

//加入你的代码。程序运行之后,窗口会自动隐藏,只有在任务管理器中的进程中可以看到。

}

使用以上代码,可以达到隐藏当前控制台窗口的效果。但是,如果系统开机时自动加载此程序,就会发现:控制台窗口没有自动隐藏,如果关闭此窗口,双击此控制台程序,发现窗口隐藏了。要解决此问题,可以使用以下代码:

#include "windows.h"

void main()

{
//开机自动隐藏窗口
HWND hwnd;
hwnd=FindWindow("ConsoleWindowClass",NULL);//找到当前窗口句柄
if(hwnd)
{
   ShowOwnedPopups(hwnd,SW_HIDE);//显示或隐藏由指定窗口所有的全部弹出式窗口
   ShowWindow(hwnd,SW_HIDE);//控制窗口的可见性
   //WinExec 函数: 控制窗口的显示形式
   //假如开机自动运行: C:\\WINDOWS\\SYSTEM32\\KeyboardRec.exe
   WinExec("C:\\WINDOWS\\SYSTEM32\\KeyboardRec.exe",SW_HIDE);
}

//你的其他代码

}

注意:隐藏窗口的代码,一定要放在主函数的最前面;否则控制台窗口有可能无法隐藏。

时间: 2024-07-28 13:44:04

C++ 让 Win32 Console Application 程序后台运行的相关文章

zz:控制台程序后台运行

控制台程序后台运行 2010-07-10 07:06 P.M. #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) // 设置入口地址              在控制台程序中隐藏控制台窗口! 大家都知道,当编写一个win32 console application时,当运行此类程序的时候 默认情况下会有一个类似DOS窗口的console窗口,

win32 Application 和Win32 Console Application 的区别

Win32 Application和Win32 Console Application 都是工作在32位Windows环境的程序.  其中Win32 Application 就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的.不规则形状的-- 它们都是所谓的GUI(Graphics User Interface图形用户接口),我们可以通过鼠标点击来完成控制.  而Win32 Console Application(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令

【转】win32 Application和win32 Console Application

这几天在创建MFC项目时,常常遇到一下两个连接错误,例如: 1. LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main解决方法: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:console改成/subsystem:windows. 2. 还有一种经常出现的相反的情况 LIBCD.lib(win

Linux系统下程序后台运行nohup,&,screen等

"nohup" 在用户ssh终端断开或者网络端口时,终端没有HUP信号则会关闭所有子进程. nohup则会让进程忽略HUP信号,不受终端断开限制 一般在结尾加上"&"将命令同时放到中断后台运行 nohup标准输出和标准错误输出会被重定向到nohup.out文件中 [[email protected] ~]# nohup ping www.ibm.com & [1] 3059 nohup: appending output to `nohup.out'

windows下cmd命令提示符下让程序后台运行命令

如果你的程序需要在windows后台运行,并且是在cmd下启动,那么在执行的程序前加上start /b,比如start /b [程序名]. windows下start命令的详细参数及功能介绍如下: 文章来源 www.169it.com 启动一个单独的窗口运行指定的程序或命令. START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /

linux程序后台运行

linux命令后台运行  有两种方式: 1. command & : 后台运行,你关掉终端会停止运行   2. nohup command & : 后台运行,你关掉终端也会继续运行 一. 简介     Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想.我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和bg 命令,让你轻松

ios程序后台运行设置(不是太懂)

文一 我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间. 还有三种类型的可以运行在后以, 1.音乐 2.location 3.voip 文二 在IOS后台执行是本文要介绍的内容,大多数应用程序进入后台状态不久后转入暂停状态.在这种状态下,应用程序不执行任何代码,并有可能在任意时候从内存中删除.应用程序提供特定的服务,用户可以请求后台执行时间,以提供这些服务. 判断是否支持多线程 UIDevice* device = [UIDevice

IOS学习之——设置不允许程序后台运行

前言: 有个需求:设置程序不能后台运行--即每次后台之后,回来都是重新登录.实现方法如下: 操作 1:在程序配置文件(info.plist)中添加一个行, 右键--Add row 2: 添加修改key值为: Application does not run in background 3:设置Value为YES 版权声明:本文为博主原创文章,未经博主允许不得转载.

linux 程序后台运行

有些时候,我们需要在终端启动一个程序,并使之运行——但是如果关闭终端,那么这个程序也就随着关闭了.那么有没有什么方法在关闭终端后,让已经从这个终端启动的程序继续运行呢? 前置知识: xterm,console,tty,pts,pty的区别 shell是直接和内核进行通信的东西 xterm是一个软件概念,可以通过这个程序连接到console从而控制主机,可以理解为cli形式的终端模拟器,而gnome-terminal,konsole就是gui形式的终端模拟器 console是主机的控制台,是一个物