Hallo,
habe mir einen kleinen Windows Dienst geschrieben, nix besonderes... der leider keinen Mux von sich gibts
ERstmal der Aufbau:
- Mit VB 2010 einen Dienst erstellt
- Automatisch erstellte Datei "Service1" gleich belassen nicht umbenannt
- Projectinstaller.vb hinzugefügt
- eine Klasse angelegt "ServicePgm"
Unter My Projekt habe ich unter Startobjekt Service1 stehen...
Code: Service1:
(Timer auf das Element gelegt und eingestellt auf 200 - nur zum testen)
Code ServicePgm:
Installiert habe ich mit installutil blablabla - funktioniert, wird eingetragen und ich kann ihn auch starten - aber -
er macht keinen Mux und er schreibt auch nix nichts in Ereignisanteige/Anwendung rein... sollte er aber, dass einzigste was er schreibt ist, dass er den Dienst installiert hat (automatisch durch windows wird das ja angelegt) und er schreib Dienst gestaret... das wars... mehr macht er nicht...
was habe ich da falsch gemacht ??
Könntet Ihr mir da weiterhelfen ?
Gruß
lris
EDIT:
Unter My Projekt habe ich noch ein Feld für My.Settings angelegt...
habe mir einen kleinen Windows Dienst geschrieben, nix besonderes... der leider keinen Mux von sich gibts
ERstmal der Aufbau:
- Mit VB 2010 einen Dienst erstellt
- Automatisch erstellte Datei "Service1" gleich belassen nicht umbenannt
- Projectinstaller.vb hinzugefügt
- eine Klasse angelegt "ServicePgm"
Unter My Projekt habe ich unter Startobjekt Service1 stehen...
Code: Service1:
(Timer auf das Element gelegt und eingestellt auf 200 - nur zum testen)
VB.NET-Quellcode
- Imports System.Net.Mail
- Public Class Service1
- Protected Overrides Sub OnStart(ByVal args() As String)
- ' Code zum Starten des Dienstes hier einfügen. Diese Methode sollte Vorgänge
- ' ausführen, damit der Dienst gestartet werden kann.
- Timer1.Start()
- End Sub
- Protected Overrides Sub OnStop()
- ' Hier Code zum Ausführen erforderlicher Löschvorgänge zum Beenden des Dienstes einfügen.
- Timer1.Stop()
- End Sub
- Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
- Dim Start As New ServicePgm
- Start.IPServiceRun()
- End Sub
- End Class
Code ServicePgm:
VB.NET-Quellcode
- Imports System.Net.Mail
- Public Class ServicePgm
- Friend Sub IPServiceRun()
- Dim IPtest As String = ReturnWANIP()
- If IPtest <> My.Settings.vorhandeneIP Then
- My.Settings.vorhandeneIP = IPtest
- mailversand(IPtest)
- End If
- End Sub
- Private Sub mailversand(ByVal neueIP As String)
- Dim appname As String = My.Application.Info.Title
- Dim objEventLog As New EventLog()
- Try
- Dim SmtpServer As New SmtpClient()
- Dim mail As New MailMessage()
- mail = New MailMessage()
- mail.From = New MailAddress("xxx@xxx-xxx.de") 'Same email addres as used above
- mail.To.Add("xxx@xxx-xxx.de") 'to e.g. blah@blah.com
- mail.Subject = "WAN IP Änderung!" 'This is the subject
- mail.Body = "Neue IP: " & neueIP 'This is the message"
- SmtpServer.Credentials = New Net.NetworkCredential("info@xxx-xxx.de", "PASSWORT") 'gmail email address and its password
- SmtpServer.UseDefaultCredentials = True
- SmtpServer.Host = "xxx.xxx-xxx.de" 'Host is gmail
- SmtpServer.Send(mail)
- WriteToEventLog("MS IPservice hat festgestellt, dass eine neue IP vorhanden ist - Meldung: " & neueIP)
- Catch ex As Exception
- MsgBox(ex.ToString)
- WriteToEventLog("MS IPservice hat einen Fehler - Meldung: " & ex.Message)
- End Try
- End Sub
- Function ReturnWANIP()
- Dim web As New Net.WebClient
- Try
- Dim WANip As String = web.DownloadString("http://ip.mcandy007.de")
- Return WANip
- Catch ex As Exception
- Return 0
- End Try
- End Function
- Public Sub WriteToEventLog(ByVal Fehler As String)
- Dim sSource As String
- Dim sLog As String
- Dim sEvent As String
- sSource = "EventLog-Beispiel"
- sLog = "Application" ' oder "System" oder "Security" oder
- ' selbstdefiniertes Ereignisprotokoll
- sEvent = Fehler
- If Not EventLog.SourceExists(sSource) Then
- EventLog.CreateEventSource(sSource, sLog)
- End If
- End Sub
- End Class
Installiert habe ich mit installutil blablabla - funktioniert, wird eingetragen und ich kann ihn auch starten - aber -
er macht keinen Mux und er schreibt auch nix nichts in Ereignisanteige/Anwendung rein... sollte er aber, dass einzigste was er schreibt ist, dass er den Dienst installiert hat (automatisch durch windows wird das ja angelegt) und er schreib Dienst gestaret... das wars... mehr macht er nicht...
was habe ich da falsch gemacht ??
Könntet Ihr mir da weiterhelfen ?
Gruß
lris
EDIT:
Unter My Projekt habe ich noch ein Feld für My.Settings angelegt...