Imports System.IO Imports System.Timers Imports System Imports System.ServiceProcess Public Class EDKB19 Dim WithEvents CheckTimer As New Timers.Timer() Dim WithEvents CheckTimerIntervall As New Timers.Timer Dim timerstopped As Boolean = False Dim IsDebug As Boolean Protected Overrides Sub OnStart(ByVal args() As String) PrintOut("Start EDKB19") PrintOut("Verzeichnis:" + My.Settings.ConnectionString) CheckTimer.Interval = My.Settings.Check_Timerintervall PrintOut("Intervall in MS:" + CheckTimer.Interval.ToString) PrintOut("Debug:" + My.Settings.Debug) CheckTimer.Start() CheckTimerIntervall.Interval = My.Settings.Check_Timerintervall CheckTimerIntervall.Start() IsDebug = UCase(My.Settings.Debug) = "TRUE" End Sub Protected Overrides Sub OnStop() ' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen. End Sub Shared Sub Main() #If CONFIG = "Release" Then Dim ServicesToRun() As System.ServiceProcess.ServiceBase ServicesToRun = New System.ServiceProcess.ServiceBase() {New EDKB19()} System.ServiceProcess.ServiceBase.Run(ServicesToRun) #Else Dim myServ As New EDKB19 myServ.OnStart({""}) While (True) System.Threading.Thread.Sleep(2000) End While #End If End Sub Private Sub CheckTimer_Elapsed(sender As Object, e As ElapsedEventArgs) Handles CheckTimer.Elapsed If IsDebug Then PrintOut("Verarbeitung") Verarbeiten("") End Sub Private Sub Verarbeiten(Optional ExpressUser As String = "") CheckTimer.Stop() timerstopped = True Dim db As New clsdb db.Get_Data() If IsDebug Then PrintOut("Anzahl Rows:" + db.data.Rows.Count.ToString) For Each r As DataRow In db.data.Rows If IsDebug Then PrintOut(r.Item("Servicename")) If r.Item("Start") = True Then If IsDebug Then PrintOut("Start") HandleService(r.Item("Servicename"), 1) End If If r.Item("Stop") = True Then If IsDebug Then PrintOut("Stop") HandleService(r.Item("Servicename"), 2) End If If r.Item("Restart") = True Then If IsDebug Then PrintOut("Restart") HandleService(r.Item("Servicename"), 3) End If If IsDebug Then PrintOut("Update_Entry") db.UpdateEntry(r.Item("nreintrag")) Next CheckTimer.Start() timerstopped = False End Sub Sub HandleService(ByVal Servicename As String, ByVal Action As Integer) Try If IsDebug Then PrintOut("HandleService") Dim service As ServiceController = New ServiceController(Servicename) service.MachineName = Environment.MachineName Select Case Action Case 1 'Start service.Start() Case 2 'Stop service.Stop() Case 3 ' restart Try service.Stop() Catch ex As Exception PrintOut("Restart Stop:" + ex.Message) End Try Try System.Threading.Thread.Sleep(10000) service.Start() Catch ex As Exception PrintOut("Restart Start:" + ex.Message) End Try End Select If IsDebug Then PrintOut("Service_Status:" + service.Status.ToString) Catch ex As Exception PrintOut("Fehler EDKB19: " + ex.Message) End Try End Sub End Class