vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Timer für einen Windows-Dienst 
Autor: Muddy
Datum: 30.09.16 09:49

hallo zusammen,

Ich möchte in einem Dienst einen Timer verwenden, der alle 30 Minuten E-Mails innerhalb des Teams verschickt
abhängig vom angemeldeten User.
Leider stelle ich immer wieder bei der Timer-Routine fest, dass Windows nicht in die _Elapsed-Routine springt, wenn ich diese als Dienst ausführe. Wenn ich allerdings die gleiche Routine in einer Forms-Anwendung starte führt er diese _Elapsed-Routine aus.

Ich nutze die Klasse System.Timers.Timer, habe aber auch die System.Threading.Timer versucht.

    Protected Overrides Sub OnStart(ByVal args() As String)
        MyBase.OnStart(args)
        timer.Start()
    End Sub
 
    Protected Overrides Sub OnStop()
        MyBase.OnStop()
        timer.Stop()
    End Sub
 
    Private Sub InitializeComponent()
        Me.EventLog1 = New System.Diagnostics.EventLog()
        CType(Me.EventLog1, System.ComponentModel.ISupportInitialize).BeginInit( _
          )
 
        timer = New System.Timers.Timer(1000)
        AddHandler timer.Elapsed, AddressOf OnTimedEvent
 
        '
        'Service
        '
        Me.ServiceName = "PPS Mailing Service"
        CType(Me.EventLog1, System.ComponentModel.ISupportInitialize).EndInit()
 
    End Sub
 
 
 
    Private Sub OnTimedEvent(sender As Object, e As EventArgs)
        Dim mail As New clsMail
        Dim con As ADODB.Connection
        Dim rsMail As ADODB.Recordset
        Dim liPEZaehler As Long
        Dim sText As String
        con = DBOpenCon("Server", "Datenbank")
        liPEZaehler = PPSGetPEZaehlerByUser(Environment.UserName)
        rsMail = DBOpenRs(con, "E-Mail'")
        rsMail.MoveFirst()
        If rsMail.EOF Then
            Call ErrEvent(ErrType.ErrFatal, "Mail kann nicht gesendet werden")
        Else
            mail.SetMailServer = "Exchange"
            Call mail.InitMsg("mail@mail.de", "Testmail")
            Call mail.AppendTo("teammail@mail.de")
            sText = "AutoMail - Dienst" + vbNewLine
            Call mail.SetText(sText)
            Call mail.Send()
        End If
        rsMail.Close()
    End Sub
Dienst lässt sich installieren. Alle Methoden sind händisch eingegeben und nicht von VS erzeugt. Ich Entwickle mit Visual vb.net Express 2010
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Timer für einen Windows-Dienst3.600Muddy30.09.16 09:49
Re: Timer für einen Windows-Dienst1.784effeff30.09.16 20:00
Re: Timer für einen Windows-Dienst1.712Muddy12.10.16 14:02
Re: Timer für einen Windows-Dienst1.500effeff12.10.16 22:29
Re: Timer für einen Windows-Dienst1.442Muddy13.10.16 09:49

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel