| 网站首页 | VB.Net实例分析 | .Net技术文摘 | 下载中心 | VB.Net书籍笔记 | .Net源码 | VBS脚本与组件调用 | Windows2008技术文摘 | 给我们留言 | 
最新公告:

  没有公告

您现在的位置: 乐博网 >> VB.Net实例分析 >> 实例学习笔记 >> 实例分析正文
最新推荐 更多内容
系统服务管理实例(VB2010实例)
系统服务管理实例(VB2010实例)
作者:Akyao    来源:乐博网收集     更新时间:2011-4-18

本文演示如何使用 System.ServiceProcess 命名空间控制 Windows 服务,来自乐博网。

如果你想下载本文的源代码RAR压缩集合包  请访问
VB2010源代码集合包(芋头糕)    http://www.lob.cn/code/utility/2795.shtml
特别感谢网友 芋头糕 将此资源提供乐博网分享,欢迎加入 40797788 的.Net超级qq群交流。

系统服务管理实例代码如下:

' Copyright (c) Microsoft Corporation. All rights reserved.
Imports System.ServiceProcess

Public Class Form1

    ' Used to access an instance of the selected service.
    Private msvc As ServiceController
    Private controllers As New System.Collections.Generic.SortedList(Of String, ServiceController)

    Private Sub cmdPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPause.Click
        Try
            msvc.Pause()  '更多.net源代码  来自乐博网
            UpdateUIForSelectedService()
        Catch exp As Exception
            MsgBox("Cannot pause service.", MsgBoxStyle.OKOnly, Me.Text)
        End Try
    End Sub

    Private Sub cmdResume_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdResume.Click
        Try
            msvc.Continue()
            UpdateUIForSelectedService()
        Catch exp As Exception
            MsgBox("Cannot resume service.", MsgBoxStyle.OKOnly, Me.Text)
        End Try
    End Sub

    Private Sub cmdStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStart.Click
        Try
            msvc.Start()
            UpdateUIForSelectedService()
        Catch exp As Exception
            MsgBox("乐博网提示:Cannot start service.", MsgBoxStyle.OKOnly, Me.Text)
        End Try
    End Sub

    Private Sub cmdStop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStop.Click
        Try
            msvc.Stop()
            UpdateUIForSelectedService()
        Catch exp As Exception
            MsgBox("Cannot stop service.", MsgBoxStyle.OKOnly, Me.Text)
        End Try
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        EnumServices()
    End Sub

    Private Sub lvServices_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lvServices.SelectedIndexChanged
        UpdateUIForSelectedService()
    End Sub

    Private Sub EnumServices()
        ' Get the list of available services and
        ' load the list view control with the information
        Try
            Me.ToolStripStatusLabel1.Text = "Loading Service List, pleasse wait"

            Me.lvServices.Items.Clear()

            If controllers IsNot Nothing Then
                controllers = New Generic.SortedList(Of String, ServiceController)
            End If

            Dim services As ServiceController() = ServiceController.GetServices()
            For Each controller As ServiceController In services
                With Me.lvServices.Items.Add(controller.DisplayName)
                    .SubItems.Add(controller.Status.ToString())
                    .SubItems.Add(controller.ServiceType.ToString())
                End With
                controllers.Add(controller.DisplayName, controller)
            Next controller
        Catch exp As Exception
            MsgBox("Cannot enumerate the services.")
        Finally
            ToolStripStatusLabel1.Text = "Ready"
        End Try
    End Sub

    Private Sub UpdateServiceStatus()
        ' Check each service
        Try
            ToolStripStatusLabel1.Text = "Checking Service Status . . "
            Dim item As ListViewItem
            For Each item In Me.lvServices.Items
                msvc = controllers.Item(item.Text)
                msvc.Refresh()
                item.SubItems(1).Text = msvc.Status.ToString()
            Next item
            UpdateUIForSelectedService()
        Catch exp As Exception
            MessageBox.Show(exp.Message, exp.Source, MessageBoxButtons.OK, MessageBoxIcon.Error)
        Finally
            ToolStripStatusLabel1.Text = "Ready"
        End Try
    End Sub

    Private Sub UpdateUIForSelectedService()
        ' Update the command buttons for the selected service.
        Dim strName As String

        Try
            If Me.lvServices.SelectedItems.Count = 1 Then
                strName = Me.lvServices.SelectedItems(0).SubItems(0).Text
                msvc = controllers.Item(strName)
                With msvc
                    ' If it's stopped, we should be able to start it
                    Me.cmdStart.Enabled = (.Status = ServiceControllerStatus.Stopped)
                    ' Check if we're allowed to try and stop it and make sure it's not
                    ' already stopped.
                    Me.cmdStop.Enabled = (.CanStop AndAlso (Not .Status = ServiceControllerStatus.Stopped))
                    ' Check if we're allowed to pause it and see if it is not paused
                    ' already.
                    Me.cmdPause.Enabled = (.CanPauseAndContinue AndAlso (Not .Status = ServiceControllerStatus.Paused))
                    ' If it's paused, we must be able to resume it.
                    Me.cmdResume.Enabled = (.Status = ServiceControllerStatus.Paused)
                End With
            End If
        Catch exp As Exception
            MsgBox("乐博网提示:Cannot update UI.", MsgBoxStyle.OKOnly, Me.Text)
        End Try
    End Sub

    Private Sub RefreshToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RefreshToolStripMenuItem.Click
        UpdateServiceStatus()
    End Sub

    Private Sub RelistMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
        EnumServices()
    End Sub

    Private Sub exitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exitToolStripMenuItem.Click
        Me.Close()
    End Sub
End Class

  • 上一篇:

  • 下一篇:
  • 【字体: 】【打印此文】【关闭窗口
      相关文章:(只显示最新16条)
    管理计算机电源状态的类(VB2010实例)
    Tablet PC 上可用的文本识别选项(VB2010实例)
    Tablet PC 2005 中对笔势的系统识别(VB2010实例)
    自定义数据控件(VB2010实例)
    Tablet PC 2005 的区分上下文功能(VB2010实例)
    响应数字化仪触笔背面的橡皮擦(VB2010实例)
    WMI编程实例(VB2010实例)
    进程管理(VB2010实例)
    显示进程组成模块(VB2010实例)
    任务管理器编程(VB2010实例)
    性能计数器编程(VB2010实例)
    消息队列MSMQListener(VB2010实例)
    消息队列MSMQClient(VB2010实例)
    写入事件日志(VB2010实例)
    读取事件日志(VB2010实例)
    创建和删除事件日志(VB2010实例)

    | 设为首页 | 加入收藏 | 联系站长 | | 友情链接 | 版权申明 |
    乐博网欢迎各种媒体转载我们的原创作品[转载请注明出处];我们鼓励更多VB.Net开发者一起加入研究与探讨;如发现文章访问错误、内容错误或版权疑问、内容有违相关法律(如涉及政治、色情、反动或散布虚假有害信息)等情况,请及时向我们举报,我们将及时纠正!
    联系邮箱:Shiny#vip.qq.com (#替换为@) QQ交流群: 40797788 [闽ICP备05014267号]