五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > vb.net中windows service服務(wù)安裝、注冊、判斷服務(wù)是否存在、是否啟動代碼

vb.net中windows service服務(wù)安裝、注冊、判斷服務(wù)是否存在、是否啟動代碼

文章來源:365jz.com     點擊數(shù):1324    更新時間:2018-01-13 22:32   參與評論
vb.net中,使用ServiceController類控制windows服務(wù),使用之前要先添加引用:System.ServiceProcess,然后在命名空間中引用:using System.ServiceProcess。下面舉例獲取本機的所有已安裝的Windows服務(wù)和應(yīng)用,然后查找某一應(yīng)用活服務(wù)是否已經(jīng)安裝。

vb.net代碼:

'安裝服務(wù) 
    Private Sub InstallService(ByVal stateSaver As IDictionary, ByVal filepath As String)
        Try
            Dim service As ServiceController = New ServiceController("ServiceName")
            If Not ServiceIsExisted("ServiceName") Then
                'Install Service  需引用 Imports System.Configuration.Install
                Dim myAssemblyInstaller As AssemblyInstaller = New AssemblyInstaller
                myAssemblyInstaller.UseNewContext = True
                myAssemblyInstaller.Path = filepath
                myAssemblyInstaller.Install(stateSaver)
                myAssemblyInstaller.Commit(stateSaver)
                myAssemblyInstaller.Dispose()
                '--Start Service 
                service.Start()
            ElseIf ((service.Status <> System.ServiceProcess.ServiceControllerStatus.Running) _
                        AndAlso (service.Status <> System.ServiceProcess.ServiceControllerStatus.StartPending)) Then
                service.Start()
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub

    '卸載windows服務(wù) 
    Private Sub UnInstallService(ByVal filepath As String)
        Try
            If ServiceIsExisted("ServiceName") Then
                'UnInstall Service  需引用 Imports System.Configuration.Install
                Dim myAssemblyInstaller As AssemblyInstaller = New AssemblyInstaller
                myAssemblyInstaller.UseNewContext = True
                myAssemblyInstaller.Path = filepath
                myAssemblyInstaller.Uninstall(Nothing)
                myAssemblyInstaller.Dispose()
            End If

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try

    End Sub

    '判斷window服務(wù)是否存在 
    Private Function ServiceIsExisted(ByVal serviceName As String) As Boolean
        Dim services() As ServiceController = ServiceController.GetServices
        For Each s As ServiceController In services
            If (s.ServiceName = serviceName) Then
                Return True
            End If

        Next
        Return False
    End Function

  
    '啟動服務(wù) 
    Private Function StartService(ByVal serviceName As String) As Boolean
        Dim flag As Boolean = True
        If ServiceIsExisted(serviceName) Then
            Dim service As System.ServiceProcess.ServiceController = New System.ServiceProcess.ServiceController(serviceName)
            If ((service.Status <> System.ServiceProcess.ServiceControllerStatus.Running) _
                        AndAlso (service.Status <> System.ServiceProcess.ServiceControllerStatus.StartPending)) Then
                service.Start()
                Dim i As Integer = 0
                Do While (i < 60)
                    service.Refresh()
                    System.Threading.Thread.Sleep(1000)
                    If (service.Status = System.ServiceProcess.ServiceControllerStatus.Running) Then
                        Exit Do
                    End If

                    If (i = 59) Then
                        flag = False
                    End If

                    i = (i + 1)
                Loop

            End If

        End If

        Return flag
    End Function

    '停止服務(wù)
    Private Function StopService(ByVal serviceName As String) As Boolean
        Dim flag As Boolean = True
        If ServiceIsExisted(serviceName) Then
            Dim service As System.ServiceProcess.ServiceController = New System.ServiceProcess.ServiceController(serviceName)
            If (service.Status = System.ServiceProcess.ServiceControllerStatus.Running) Then
                service.Stop()
                Dim i As Integer = 0
                Do While (i < 60)

                    service.Refresh()
                    System.Threading.Thread.Sleep(1000)
                    If (service.Status = System.ServiceProcess.ServiceControllerStatus.Stopped) Then
                        Exit Do
                    End If

                    If (i = 59) Then
                        flag = False
                    End If

                    i = (i + 1)
                Loop

            End If

        End If

        Return flag
    End Function

    '判斷某項服務(wù)器是否啟動
    Public Shared Function IsServiceStart(ByVal serviceName As String) As Boolean
        Dim psc As ServiceController = New ServiceController(serviceName)
        Dim bStartStatus As Boolean = False
        Try
            If Not psc.Status.Equals(ServiceControllerStatus.Stopped) Then
                bStartStatus = True
            End If

            Return bStartStatus
        Catch ex As Exception
            Throw New Exception(ex.Message)
        End Try

    End Function





如對本文有疑問,請?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會為你解答?。?點擊進(jìn)入論壇

發(fā)表評論 (1324人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號