建站必读
网站建设知识
网站推广研究
网络营销与策划
网站案例评析
网络安全知识
ASP技术
PHP技术
JSP技术
.NET技术
当前位置:
首页
->
建站必读
->
.NET技术
如何把你的应用程序作为服务来运行(1)
如何把你的应用程序作为服务来运行
by Chris J. Duke
翻译:Atai
原创http://vbwire.com/advanced/howto/service.asp
本文章是“How—To”特别系列的第一部分。
如果你已经精通VB,并且现在你正想发布你的最后杰作作为商业软件。在最后的时间里,你们老板告诉你:你的应用程序需要在Windows NT下必须作为服务来运行。你告诉你们老板:“没问题“。于是你回到你的工作位置,然后发现你的VB程序不能做到。于是你到Microsoft Knowledge Base寻求答案,你在网上搜索,你在新闻组里搜索,最后你在这儿就特别兴奋,这儿就是VB程序如何做为服务这一系列。现在你所认为不可能的事情变得比你曾经想象的要简单。
本文章将把注意力集中到如何在Windows 95 和Windows NT3.51和或者更高版本来把你的Visual Basic4.0 或者Visual Basic5.0程序作为服务来运行。当你的应用程序作为服务时,你的应用程序能在登陆之前启动,这样你的程序能够在启动的时候运行。这样对于网络程序(比如Web服务器,邮件服务器或者是其他任何那些需要一直运行的应用程序)是很有用的。
请参看下一篇文章,这篇文章是关于如何下载一个免费的ActiveX控件加载到你的Form上马上把你的VB应用程序很简单的设置为NT 服务。
Window95
你可能要问你自己,为什么你需要把你的应用程序在Windows95上作为一个服务来运行。你也可能问是否Window95像WindowNT能够把你的应用程序作为服务来运行。
没错,Window95能够想Windows NT那样把应用程序作为服务来运行。为什么你将能够做到的理由就是你将在登陆之前启动你的应用程序。这经常会在Web服务器以及邮件服务器上使用。因为Windows 95的安全缺乏性,把你的应用程序作为服务将变的相当简单。但是这种情况对于Windows NT来说不适合(请看下面)。
在Windows95把你的应用程序作为服务来运行是很简单的。所有需要做的就是修改注册表。但是对于Windows NT来说却是一个地狱,对于Windows95,不要认为它毫无难处。本节将给你提供一个对Windows95重要的工作。
为了在Windows95中把你的应用程序作为一个服务,增加一个字符串值到你的注册表中:
HKLMSOFTWAREMicrosoft
WindowsCurrentVersionRunServices
例如。假设你的应用程序叫“MicroSpud“,创建一个字符串值,值为:MircoSpud”,并且输入可执行文件的全路径到注册表的数据域中。下面是其步骤:
Step 1: 增加一个新的字符串值
Step 2: 输入可执行文件路径
Step 3: 全部完成,重新启动,MicroSpud将在登陆前启动
Windows 95托盘图标
现在你好记得在前面提到的“Quirk”吗?它在这里。如果你的应用程序启动,并且有托盘的话,你将想阅读这个对之地详细说明。
当你的应用第一个启动,你最有可能在Form_Load()或者Main()事件中添加你的托盘图标。如果通过重新启动Windows95被设为自动登陆,那么这个问题将不存在。尽管如此,当一个用户强制登陆的话,将发生以下的事情:
Windows95 启动
你的应用程序作为服务
你的应用程序视图加载托盘图标,但是失败,因为已经没有托盘图标被加载
登陆对话框出现
T用户输入用户名和密码
桌面开始加载
Y你的图标在托盘区不会出现
解决方案是重复的调用Shell_NotifyIcon()API直到它返回一个TRUE布尔值。我发现一个来实现它的解决方法是加上一个计时器。计时器初始化为启动状态,时间间隔为5秒。在调用计时器的事件(Timer1_Timer)时调用Shell_Notification()。一旦API返回TRUE值时,关闭计时器。
Window NT
你可能已经发现在Windows95中设置只需要一步,但是对于WindowsNT来说,和Windows 95完全不一样。有些人可能称之为魔鬼,这种方法能够在WindowNT3.51或者更高版本上使用。
为什么Window NT有很大的不同呢?其中的一个理由是因为所有在NT下的服务都有服务控制台(Service Control Manager ,SCM)来管理。但是你的应用程序信息仍然在注册表里。
有更多的Keys允许应用程序作为NT服务。
微软意识到这个问题不仅仅发生在VB应用程序上,而且发生在大部分应用程序上。所以微软提出一个解决方案,并且这个解决方案表现非常出色。他们开发了一个小的应用程序。这个应用程序在Windows NT资源包里发行,他们可以在章的后面可以得到。这个应用程序叫
SRVANY.EXE,对你的应用程序来说它作为一个主机(或者服务包)。换句话说,它变成一个服务程序,这个服务程序为你处理全部的苦活(Dirty Work)和以及与SCM通信。当它启动时,它到注册表找出你的应用程序的所在路径。如果找到应用程序,则启动它。使用它唯一的缺点就是当SCM关掉SRVANY时,它将使用TerminateProcess()API来杀
本站关键词:
|网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作||网页设计公司|东莞软件销售|东莞.com域名注册|东莞.cn域名注册|东莞雅虎推广|东莞网站建设|东莞网页设计|东莞网络公司|网站建设|网页设计|网络公司|网站制作|
域名注册
|
虚拟主机
|
网站建设
|
网站推广
| 广告设计
|
帮助中心
|
软件中心
|
关于腾达
东莞市腾达信息工程有限公司 本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610 邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076
24小时服务热线:13712032014
© 2002~2005 腾达网络 版权所有
粤ICP备 05018777号