Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Windowsdienst mit Dateizugriff

Empfohlene Antworten

Hallo Leute,

Ich sitze hier den ganzen Tag schon über folgendes Problem:

Ich erstell einen Dienst mit VB.NET der nach einem Intervall eine Datei schreiben soll. Die Datei soll erstmal leer sein. Egal was ich probiere. Der Dienst läuft, aber eine Datei wird nicht erzeugt. Habe ich nen Denkfehler hier?

Imports System.IO

Imports System.Timers

Public Class DwI2Excel

Protected Overrides Sub OnStart(ByVal args() As String)

Timer1.Enabled = True

End Sub

Protected Overrides Sub OnStop()

Timer1.Enabled = False

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

File.Create("C:\test.txt")

End Sub

End Class

Der Timer hat Testweise ein Intervall von 10000 msec.

Was mach ich falsch? Ist bestimmt was blödes... Danke

Hi,

bei System.Timers.Timer kenne ich kein "Tick"-Ereignis, du meinst bestimmt das "Elapsed"-Ereignis. Und dem hast Du noch keine Methode "deligiert" (Addhandler...).

(Das "Tick"-Ereignis gibts beim "Windows.Forms.Timer").

Infos und ein Beispiel zu System.Timers bekommst Du in der MSDN.

So hatte ich es vorher versucht. Das Ergebnis ist das gleiche. Der Dienst läuft springt aber nicht in die Methode.

Imports System.IO

Imports System.Timers

Public Class DwI2Excel

Dim aTimer As New System.Timers.Timer()

Protected Overrides Sub OnStart(ByVal args() As String)

Dim Intervall As Integer = 10000

AddHandler aTimer.Elapsed, AddressOf OnTimedEvent

aTimer.Interval = Intervall

aTimer.Enabled = True

'GC.KeepAlive(aTimer)

End Sub

Protected Overrides Sub OnStop()

aTimer.Enabled = False

End Sub

Private Shared Sub OnTimedEvent(ByVal source As Object, ByVal e As ElapsedEventArgs)

File.Create("C:\test.txt")

End Sub

End Class

Schreib doch mal den Timer Start mit in die Form1_Load...

Oder setzt den Timer von vorherein auf Enable = True

Sonst fängt der Timer ja nicht an mit zählen...

Ansonsten so:


Public Class Form1


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Me.Timer1.Enabled = True

    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        My.Computer.FileSystem.WriteAllText("test.txt", "Das wäre jetzt der Text um " & Date.Now & Environment.NewLine, True)

        Me.TextBox1.Text += "Das wäre jetzt der Text um " & Date.Now & Environment.NewLine


        'man kann ebenfalls eine leere Datei mit 

        'My.Computer.FileSystem.WriteAllText("test.txt", "", False)

        'erstellen - Das FALSE bzw. TRUE zum Schluss bedeutet dass der Text der Datei angehangen wird oder nicht

    End Sub

End Class

Schreib doch mal den Timer Start mit in die Form1_Load...

[...]

Public Class Form1

Private Sub Form1_Load

du hast aber schon mitbekommen, dass es sich bei der angesprochenen thematik um einen dienst und keine forms-anwendung handelt?

s'Amstel

upps, überlesen...

Ich nehm alles zurück und behaupte das Gegenteil....

Sorry...

wenn es dir "nur" um eine zyklische abarbeitung geht nimm doch einfach einen Thread...

Threading Tutorial (C#)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.