您的位置:学习中国 推荐教程 VB编程 正文
原作者:kuku 添加时间:2007-06-02 原文发表:2007-06-02 人气:44 来源:互联网

本文章共28074字,分19页,当前第5页,快速翻页:
 
-----------------------------------------------------------------------------------------------------------------------------------------------

本文提示:《vb.net例程集锦(5)》是本站编辑们为广大网友精选的实用文章,本文阐述了关于文章的相关理论,相对来说专业性强,但是本文只是针对于某个问题提出的见解与论述,未必能辐射到相关问题的方方面面,所以本文处理问题的方法仅仅为您提供一些参考。更多问题请查阅学习中国网其他栏目哦.

-----------------------------------------------------------------------------------------------------------------------------------------------



先添加引用-.NET-System.ServiceProcess.dll,新建名为modMain的模块,代码如下:

Imports System.Text
Imports System.Diagnostics
Imports System.ServiceProcess

Public Module modMain

Private WithEvents mobNotifyIcon As NotifyIcon
Private WithEvents mobContextMenu As ContextMenu
Private WithEvents mobTimer As Timers.Timer
Private mobServiceController As ServiceController

End Module

上面的代码首先引用了三个名称空间,然后分别定义了四个变量:mobNotifyIcon将会在系统托盘里显示;ContextMenu显示菜单信息;mobTimer为定时器,原来检查服务的状态,以随时变更菜单和图标的状态;mobServiceController表示Windows服务应用程序并允许连接到正在运行或者已停止的服务、对其进行操作或获取有关它的信息。

由于服务程序是没有用户界面的,因此我们设置三种图标标识服务的状态,这里做了三个简单的图标来标识服务的状态:Running.ico,Paused.ico,Stopped.ico,分别如下:



下面我们就建立定时器SetUpTimer过程,通常,IIS停止或启动的间隔为5秒,我们就用5秒来做定时器的间隔,代码如下:

Private Sub SetUpTimer()
Try
mobTimer = New Timers.Timer()
With mobTimer
.AutoReset = True
.Interval = 5000
.Start()
End With
Catch obEx As Exception
Throw obEx
End Try
End Sub

下面,创建上下文菜单的过程,并为每个菜单项添加事件处理程序:

Private Sub CreateMenu()
Try
mobContextMenu.MenuItems.Add(New MenuItem(\"停止\",New EventHandler(AddressOf StopService)))
mobContextMenu.MenuItems.Add(New MenuItem(\"暂停\",New EventHandler(AddressOf PauseService)))
mobContextMenu.MenuItems.Add(New MenuItem(\"继续\",New EventHandler(AddressOf ContinueService)))
mobContextMenu.MenuItems.Add(New MenuItem(\"开始\",New EventHandler(AddressOf StartService)))
mobContextMenu.MenuItems.Add(\"-\")
mobContextMenu.MenuItems.Add(New MenuItem(\"关于\",New EventHandler(AddressOf AboutBox)))
mobContextMenu.MenuItems.Add(New MenuItem(\"退出\",New EventHandler(AddressOf ExitController)))
Catch obEx As Exception
Throw obEx
End Try
End Sub

当我们改变了服务的运行状态时,我们应当向用户反映这一变化,这里用托盘的图标不同来进行标识。当服务程序启动时,就要先建立服务的状态,首先GetServiceStatus过程调用ServiceController的Refresh方法,它将会刷新的ServiceController所有属性。要准确得到服务程序的状态,这一过程是至关重要的,下面的Select Case语句根据不同的服务程序的状态,建立不同的菜单项和托盘图标。

Private Sub GetServiceStatus()
Try
\'//读取状态之前先进行刷新
mobServiceController.Refresh()
\'//变更菜单项和图标
Select Case mobServiceController.Status()
Case ServiceProcess.ServiceControllerStatus.Paused
mobNotifyIcon.Icon = New Icon(\"Paused.ico\")
mobContextMenu.MenuItems(0).Enabled = False
mobContextMenu.MenuItems(1).Enabled = False
mobContextMenu.MenuItems(2).Enabled = True
mobContextMenu.MenuItems(3).Enabled = False
Case ServiceProcess.ServiceControllerStatus.Running
mobNotifyIcon.Icon = New Icon(\"Running.ico\")
mobContextMenu.MenuItems(0).Enabled = True
mobContextMenu.MenuItems(1).Enabled = True
mobContextMenu.MenuItems(2).Enabled = False
 
本文章更多内容<<上一页 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 下一页>>
本页地址
收藏到:[收藏夹] [百度搜藏] [新浪ViVi] [POCO网摘] [ 和讯网摘] [好哦网摘] [Google书签]
               
[搜狐网摘] [365Key网摘] [天极网摘] [我摘] [博采网摘] [igooi网摘]
相关文章

在VB.NET中获得功能加强的分类和查询数组
解析Visual Basic.NET事件编程
VB.NET中对象的克隆
VB.Net编程入门之Hello World 入门篇
VB 神童教程第二章第九节——综合示例三
VB 神童教程第二章第八节——组合框控件
VB 神童教程第二章第七节——列表框控件
VB 神童教程第二章第六节——综合示例二
VB 神童教程第二章第五节——单选与复选控件
VB 神童教程第二章第四节-CommandButton控件
向SQL Server数据库添加图片和文字
多个窗体之间如何互相调用
如何拖动没有边框的窗体?
怎么让窗体透明后,控件不透明?
Video/ Audio压缩数据流播放技术
VB程序中处理随机事件
VB编程的必备技巧
VB6制作Win98风格的工具栏
VB实现窗口的弹出式菜单
用VB6实现动态增减控件

相关评论


本文章所属分类:首页 推荐教程 VB编程   VB编程