创建一个没有任何界面的后台程序并且设置为开机启动

Windows系统下常见的程序类型有3种,第一种是最常见的WinForm类型的,第二种是控制台Console类型的,第三种是Windows Service类型的。

 

在我们编写一个程序的时候,如果把其设置成Console类型,那么操作系统在启动这个程序的时候,会认为你是需要实时的输出一些信息,会自动的打开一个控制台窗口,而且那个控制台窗口会一直在那里,直到程序关闭。

而如果在编写程序的是设置成WinForm类型,操作系统在启动这个程序的时候,会认为你不需要这个控制台窗口,那么就不会启动额外的这个控制台窗口。

 

有人会说,WinForm类型的程序,会一直有一个WindowsForm窗体出现。其实,这是不准确的。因为如果我们注释掉相关的显示form的代码,那么这个程序就不会有任何的窗口出现。打开Program.cs文件,在Main方法里边有这样几句代码。

 

//Application.EnableVisualStyles();

//Application.SetCompatibleTextRenderingDefault(false);

//Application.Run(newMain());

 

最后的那句Application.Run是一直显示窗口的原因,是这句代码让这个进程一直存在,不会结束。如果我们把这些代码注释掉,那么程序就运行一遍就结束了。

 

如果我们想设置一个后台的进程来执行一些schedule的任务,我们要怎么做?当然我们可以选择windows service,这是最正统的方法。但是如果觉得windowsserivice安装不方便的话,我们可以设计一个没有任何界面的winform程序。我们只需要注释掉窗口显示的那些代码,并且定制一些time interval的代码就可以了。比如像下边这样。

while(true)
{
//…do something
Thread.Sleep(1000*60*60);
//每隔1小时会执行一次
}


而且我们可以把这个程序设置为开机启动,一般来讲,如果在其他的电脑上设置开机启动,需要修改注册表,那么这个动作就会被相应的杀毒软件360等拦截。为了避免这个,我们可以把这个程序的快捷方式放到开始菜单的StartUp目录中。具体分析参照http://blog.csdn.net/sundacheng1989/article/details/31800753

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值