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:
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
- Betroffene Parameter:
- logtoconsole =
- logfile = C:\Test\Test.log
- assemblypath = C:\Test\Test.exe
- Keine öffentlichen Installer mit dem RunInstallerAttribute.Yes-Attribut in der Assembly C:\Test\Test.exe gefunden.
- Die InstallState-Datei wird entfernt, da keine Installer vorhanden sind.
- Die InstallState-Datei wird entfernt, da keine Installer vorhanden sind.
- Die Commitphase wurde erfolgreich abgeschlossen.
- Die transaktive Installation ist abgeschlossen.
VB.NET-Quellcode
- Imports System.ComponentModel
- Imports System.ServiceProcess
- Imports System.Timers
- Imports System.Management
- Imports System.Configuration.Install
- <RunInstaller(True)>
- Public Class Service1
- Inherits ServiceBase
- Private WithEvents timer As Timer
- Protected Overrides Sub OnStart(ByVal args() As String)
- timer = New Timer()
- timer.Interval = 300000 ' 5 Minuten
- AddHandler timer.Elapsed, AddressOf OnTimerElapsed
- timer.Enabled = True
- End Sub
- Protected Overrides Sub OnStop()
- timer.Enabled = False
- StopTaskIfRunning()
- End Sub
- Private Sub OnTimerElapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
- If IsTaskRunning() Then
- StopTaskIfRunning()
- End If
- End Sub
- Private Function IsTaskRunning() As Boolean
- Dim query As String = "SELECT * FROM Win32_Process WHERE Name = 'notepad++.exe'"
- Dim searcher As New ManagementObjectSearcher(query)
- Dim processes As ManagementObjectCollection = searcher.Get()
- Return (processes.Count > 0)
- End Function
- Private Sub StopTaskIfRunning()
- Dim query As String = "SELECT * FROM Win32_Process WHERE Name = 'notepad++.exe'"
- Dim searcher As New ManagementObjectSearcher(query)
- Dim processes As ManagementObjectCollection = searcher.Get()
- If (processes.Count > 0) Then
- For Each process As ManagementObject In processes
- process.InvokeMethod("Terminate", Nothing)
- Next
- End If
- End Sub
- End Class
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „jnpanzer“ ()