很多人这样设计Windows Service,希望在某种条件下,比如某个事件发生后,希望Windows Service弹出一个窗体!
其实这非常不正确,不管是C#,VB.net还是C++创建的Windows Service是被OS windows子系统调用的和维护的,
恰恰它没有桌面站,OS在启动Windows子系统的时候,会默认创建两类东西,就是有窗口站的桌面(其实也是一个窗口以及窗口树结构),另外一个就是无窗口站的环境,Windows Service恰恰运行在这个环境中,其含义是没有客户操作区的表面,那么即使你在Windows Service的OnStart方法中new一个Window对象并调用其Show方法,你也看不到有窗体弹出!
但是你可以使用一个办法绕过这个限制,那就是使用Windows Service作为服务器端,做一个WCF/Remoting服务,
让一个独立进程(最好系统一起启动的)作为客户端,使用双向回调实现的观察者模式(可以使用委托实现,或者WCF就支持回调的方式,不过需要绑定也支持两个通道,并且回调的行为必须是OneWay的),服务在某个条件下通知被注册的客户端,此时客户端程序就可以有所动作,因为一个exe程序(Console等等)是在有窗口站的环境下运行的,那么它们在接收到服务器通知后就可以弹出一个可以看见的窗体了。
分享到:
相关推荐
.net WindowsService开发中能用到的基础资料 介绍了WindowsService的基本架构
C#开发Windows+Service程序源码,里面详细介绍了如何开发Windows服务程序,有完整的说明文档,有实例代码可供参考,是你学习WindowsServer的好帮手
本代码是Windows Service 程序开发的一个入门示例,对应的视频地址:https://www.bilibili.com/video/av19475047/
C# VS 2010 创建、安装、调试 windows服务(windows service) 代码
C#Windows Service图文开发实例 含源代码
VB.NET Windows服务开发手册
C# 开机启动服务(windows service) 本程序用ASP.NET C#开发,不针对系统版本限制。 本源码拿就来可以直接写您想要的服务,无需再改其它的代码,拿来主义是不是很好?例如订单服务。 本服务是100%源码,源码中包含: ...
1.微信自动退款功能开发 2.windows服务 3.请将用于支付校验的证书放置到C盘根目录下
C#创建Windows_Service(Windows_服务)基础教程
C#发现之旅 C#开发Windows Service程序 该软件能监视指定目录下的文件和子目录的新增,修改,删除和重命名操作,并将操作日志记录到一个数据库中。 2. 该软件以Windows服务的形式运行,能监视不同的用户帐户的操作...
关于Visual Studio 2008开发 WindowsService 的demo视频 包括如何创建,部署,以及调试 WindowsService,demo可以直接观看
C#发现之旅 --- C#开发Windows Service程序 pdf 我的另一个资源中有免费实例
这个板条箱提供了一个方便的[ define_windows_service! ]宏可为服务输入函数生成一个低层的样板,该函数可分析来自系统的输入并将处理委托给用户定义的高层函数fn(arguments: Vec) 。 本指南将底层输入函数称为ffi...
D language 开发windows Service实例代码,简单改改可以直接用
使用VS2008开发环境C++编写的Windows服务程序,安装、启动、暂停、恢复、停止、重新启动服务
开发过程中遇到Windows Service程序,需本地调试是否正确,总结了一点小坑,留作己用
按照C#发现之旅 --- C#开发Windows Service程序 pdf 自己实践编写的实例 绝对能用 为了多谢大家的支持免费下载啦
C#发现之旅 --- C#开发Windows Service程序
闲话少谈,看看如何实现一个最基本的windowsservice,以及如何来调试windowsservice。打开VS2005,点击File->New->Project….,在创建工程向导中选择Windowsservice模板,如下图所示:在工程名输入框中,输入...