Il codice di sotto è il primo tentativo di costruire un servizio windows.
L'ho installato e lanciato.
Quando copio files nella directory c:\Test li ricopia correttamente nella directory c:\tmp.

Cancello questi files e riprovo e vedo che non va. Controllo il servizio e noto che è interrotto.
Se lo riavvio ritorna a funzionare per poi interrompersi.

Chiedo aiuto perchè in questo campo (servizi windows sono proprio scarso)

codice:
Option Strict On

Public Class Test

    'percorso della directory in esame
    Private dir As String = "c:\Test"

    Protected Overrides Sub OnStart(ByVal args() As String)
        'verifica l'esistenza della directory
        If Not Directory.Exists(dir) Then
            Directory.CreateDirectory(dir)
        End If

        'inizia a ricevere gli eventi dal file system
        FileSystemWatcher1.Path = dir
        FileSystemWatcher1.EnableRaisingEvents = True

    End Sub

    Protected Overrides Sub OnStop()
        'smette di ricevere gli eventi dal file system
        FileSystemWatcher1.EnableRaisingEvents = False
    End Sub

    Protected Overrides Sub OnPause()
        MyBase.OnPause()
        'smette di ricevere gli eventi dal file system
        FileSystemWatcher1.EnableRaisingEvents = False
    End Sub

    Protected Overrides Sub OnContinue()
        MyBase.OnContinue()
        'inizia a ricevere gli eventi dal file system
        FileSystemWatcher1.EnableRaisingEvents = True
    End Sub

    Private Sub FileSystemWatcher1_Created(sender As Object, e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Created
        Dim ext As String = Path.GetExtension(e.FullPath)
        Select Case ext
            Case ".jpg", ".png"
                Dim nome As String = Path.GetFileNameWithoutExtension(e.FullPath)
                Dim destFileName = "c:\tmp\" & nome & "_ridotto.jpg"
                File.Copy(e.FullPath, destFileName)

        End Select
    End Sub

End Class