Windows Dienst

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von jnpanzer.

    Windows Dienst

    Hallo,

    ich wollte gerade einen kleinen (ersten) Dienst für Windows machen.
    Die IInallation läuft über InstallUtil.exe.

    Beim Installieren komme ich auf den Fehler den man in so vielen Foren findet. Ich komme aber nicht weiter.
    Hat jemand einen kleien Tipp für mich?

    Fehler aus dem Konsolen Fenster:

    Quellcode

    1. Betroffene Parameter:
    2. logtoconsole =
    3. logfile = C:\Test\Test.log
    4. assemblypath = C:\Test\Test.exe
    5. Keine öffentlichen Installer mit dem RunInstallerAttribute.Yes-Attribut in der Assembly C:\Test\Test.exe gefunden.
    6. Die InstallState-Datei wird entfernt, da keine Installer vorhanden sind.
    7. Die InstallState-Datei wird entfernt, da keine Installer vorhanden sind.
    8. Die Commitphase wurde erfolgreich abgeschlossen.
    9. Die transaktive Installation ist abgeschlossen.





    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Imports System.ServiceProcess
    3. Imports System.Timers
    4. Imports System.Management
    5. Imports System.Configuration.Install
    6. <RunInstaller(True)>
    7. Public Class Service1
    8. Inherits ServiceBase
    9. Private WithEvents timer As Timer
    10. Protected Overrides Sub OnStart(ByVal args() As String)
    11. timer = New Timer()
    12. timer.Interval = 300000 ' 5 Minuten
    13. AddHandler timer.Elapsed, AddressOf OnTimerElapsed
    14. timer.Enabled = True
    15. End Sub
    16. Protected Overrides Sub OnStop()
    17. timer.Enabled = False
    18. StopTaskIfRunning()
    19. End Sub
    20. Private Sub OnTimerElapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    21. If IsTaskRunning() Then
    22. StopTaskIfRunning()
    23. End If
    24. End Sub
    25. Private Function IsTaskRunning() As Boolean
    26. Dim query As String = "SELECT * FROM Win32_Process WHERE Name = 'notepad++.exe'"
    27. Dim searcher As New ManagementObjectSearcher(query)
    28. Dim processes As ManagementObjectCollection = searcher.Get()
    29. Return (processes.Count > 0)
    30. End Function
    31. Private Sub StopTaskIfRunning()
    32. Dim query As String = "SELECT * FROM Win32_Process WHERE Name = 'notepad++.exe'"
    33. Dim searcher As New ManagementObjectSearcher(query)
    34. Dim processes As ManagementObjectCollection = searcher.Get()
    35. If (processes.Count > 0) Then
    36. For Each process As ManagementObject In processes
    37. process.InvokeMethod("Terminate", Nothing)
    38. Next
    39. End If
    40. End Sub
    41. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jnpanzer“ ()