Benutzer mit den meisten Antworten
Windows-Dienst arbeitet Programm nicht ab

Frage
-
Hallo,
ich habe folgenden Code um zu überprüfen ob ein Task läuft und wenn nicht, soll der PC heruntergefahren werden.
Ich kann eine "service.exe" erstellen und Diese mit sc als Dienst installieren. Abgearbeitet wird allerdings nichts.Als normale Anwendung läuft der Code wunderbar.
Gruß
ArminPublic Class Service1
Protected Overrides Sub OnStart(ByVal args() As String)
Timer1.Start()
End Sub
Protected Overrides Sub OnStop()
End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs)
Dim i As Integer
i = 0
For Each p As Process In Process.GetProcesses
If p.ProcessName = "notepad" Then
i = 1
End If
Next
If i = 0 Then
Shell("shutdown /f /p")
End If
End Sub
End Class- Typ geändert Robert BreitenhoferModerator Freitag, 29. Juni 2012 07:41 Keine Rückmeldung des Fragenstellender
- Typ geändert Robert BreitenhoferModerator Montag, 16. Juli 2012 13:37 Rückmeldung des Fragenstellender
Antworten
-
Hallo Armin,
ein häufiges Problem beim Wechsel von einer Anwendung zu einem Dienst ist, das der Windows Forms Timer dort nicht funktioniert, siehe dazu:
Comparing the Timer Classes in the .NET Framework Class Library
Gruß Elmar
- Bearbeitet Robert BreitenhoferModerator Freitag, 29. Juni 2012 07:40 Formatierung
- Als Antwort markiert Robert BreitenhoferModerator Montag, 16. Juli 2012 13:40
-
Hallo,
ich wollte noch kurz meine Lösung mitteilen und mich für die Mithilfe bedanken:
Imports System
Imports WindowsService1
Public Class Service1
Protected Overrides Sub OnStart(ByVal args() As String)
Dim Timer1 As New System.Timers.Timer
AddHandler Timer1.Elapsed, AddressOf lesen
Timer1.Interval = 60000
Timer1.Enabled = True
Timer1.AutoReset = True
Timer1.Start()
End Sub
Protected Overrides Sub OnStop()
End Sub
Private Sub lesen(ByVal sender As Object, ByVal e As System.EventArgs)
Dim i As Integer
i = 0
For Each p As Process In Process.GetProcesses
If p.ProcessName = "notepad" Then
i = 1
End If
Next
If i = 0 Then
Shell("shutdown /f /p")
End If
End SubGruß
Armin
- Als Antwort markiert Robert BreitenhoferModerator Montag, 16. Juli 2012 13:40
Alle Antworten
-
Hallo Armin,
ein häufiges Problem beim Wechsel von einer Anwendung zu einem Dienst ist, das der Windows Forms Timer dort nicht funktioniert, siehe dazu:
Comparing the Timer Classes in the .NET Framework Class Library
Gruß Elmar
- Bearbeitet Robert BreitenhoferModerator Freitag, 29. Juni 2012 07:40 Formatierung
- Als Antwort markiert Robert BreitenhoferModerator Montag, 16. Juli 2012 13:40
-
Hallo,
vielen Dank für Eure Hilfe, bin auch teilweise schon am probieren nur leider hab ich gerade andere Aufgaben.
Melde mich sobald es weiter geht.
Gruß
Armin
****************************************************************************************************************
Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
****************************************************************************************************************Robert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Hallo,
ich wollte noch kurz meine Lösung mitteilen und mich für die Mithilfe bedanken:
Imports System
Imports WindowsService1
Public Class Service1
Protected Overrides Sub OnStart(ByVal args() As String)
Dim Timer1 As New System.Timers.Timer
AddHandler Timer1.Elapsed, AddressOf lesen
Timer1.Interval = 60000
Timer1.Enabled = True
Timer1.AutoReset = True
Timer1.Start()
End Sub
Protected Overrides Sub OnStop()
End Sub
Private Sub lesen(ByVal sender As Object, ByVal e As System.EventArgs)
Dim i As Integer
i = 0
For Each p As Process In Process.GetProcesses
If p.ProcessName = "notepad" Then
i = 1
End If
Next
If i = 0 Then
Shell("shutdown /f /p")
End If
End SubGruß
Armin
- Als Antwort markiert Robert BreitenhoferModerator Montag, 16. Juli 2012 13:40