0

以下の内容には、いくつか問題がある可能性があります。コードを実行できないため、まだコードをテスト/デバッグする機会がありません。主な方法が見つからないことを示しています。しかし〜がある?私はそれを共有などに変更しました。おそらく明らかなものですか?

フラグが立っています - 「Sub Main」が「ConsoleApplication1.Module1」エラーで見つかりませんでした。

また、メイン メソッドは常に別のクラスではありませんでした。参照をインポートしています-system.processes。最初は vb.form として作成されましたが、フォーム部分が不要であることに気付き、コンソール アプリとして再作成しました (これは、私が行った最初のコンソール アプリの 1 つであるため、問題が存在する可能性が非常に高いです)。

コードは基本的に、サービスが停止したときに動作するように計画されています。再起動を報告し、試して管理します (まだ完了していません。アイデアを歓迎します)。

Imports System
Imports System.Management
Imports System.ServiceProcess
Imports System.Diagnostics
Imports System.Threading
Imports System.IO

Module Module1


Public Class Control


    Public Sub Main()              'Public Sub Main(ByVal sArgs() As String)
        Dim restart As New Rest

        restart.startTime = DateTime.Now()
        restart.cr20Services()
        restart.Report()
    End Sub

End Class

Public Class Rest
    public startTime As String
    Dim logPath As String = "C:\cr20\restart.txt"
    'Dim fileExists As Boolean = File.Exists(strFile)
    Dim arrcr20ServicesInitialStatus As New ArrayList
    Dim failedServices As New ArrayList
    Dim arrcr20Services As New ArrayList


    Public Sub cr20Services()

        'cr20 Services
        arrcr20Services.Add("cr20 service")
        arrcr20Services.Add("cr20 router")


        For Each cr20Service In arrcr20Services

            arrcr20ServicesInitialStatus.Add(cr20Service & " - " & cr20Status(cr20Service))
            cr20Restore(cr20Service)

        Next


    End Sub

    Private Function cr20Status(ByVal cr20Service As String)

        Dim service As ServiceController = New ServiceController(cr20Service)

        Return service.Status.ToString


    End Function



    Private Sub cr20Restore(ByVal cr20Service As String)

        Dim service As ServiceController = New ServiceController(cr20Service)

        'Dim p() As System.Diagnostics.Process = System.Diagnostics.Process.GetProcessesByName("calc") 

        If (service.Status.Equals(ServiceControllerStatus.Stopped)) Or (service.Status.Equals(ServiceControllerStatus.StopPending)) Then

            failedServices.Add(service)
            service.Stop()
            Thread.Sleep(10000)     'give service 10 seconds to stop
            service.Start()

        End If

    End Sub
4

0 に答える 0