allora ho fatto così................. in teoria dovrebbe andare


codice:
Imports System.Diagnostics
Imports System.ServiceProcess
Imports System.Threading
Imports System.IO

Public Class Service1
    Public objDB As System.Data.OleDb.OleDbConnection
    Public filename As String
    Public watchfolder As FileSystemWatcher

    Protected Overrides Sub OnStart(ByVal args() As String)
        'inserire il codice per far partire l'aplicazione 
        ' es   objEventLogWatcher = New EventLogWatcher
        'myEventLog.StartWatcher()
        Dim Tint As Thread
        Tint = New Thread(AddressOf Me.Tprimario)
        Tint.Start()

        'mettendolo qui parte solo al primo avio del servizio
        'Dim DT As DataTableCollection
        'DT = LoadConfiguration("\Config.xml")
        'filename = System.Convert.ToString(DT("configuration").Rows(0)("ConFileName"))



       

    End Sub
    Private Sub Tprimario()
        Dim DT As DataTableCollection
        DT = LoadConfiguration("\Config.xml")
        filename = "c:\prova\"
        'System.Convert.ToString(DT("configuration").Rows(0)("ConFileName"))


        Dim FSW As New System.IO.FileSystemWatcher()
        FSW.Path = filename
        FSW.IncludeSubdirectories = True
        FSW.NotifyFilter = IO.NotifyFilters.DirectoryName Or _
                               IO.NotifyFilters.FileName

        'IO.NotifyFilters.LastAccess Or _
        'IO.NotifyFilters.LastWrite Or _

        AddHandler FSW.Created, AddressOf OnCreated
    End Sub

    Private Shared Function LoadConfiguration(ByVal FilediConfigurazione As String) As DataTableCollection
        Dim Configuration_Dataset As New DataSet()
        Try
            Configuration_Dataset.ReadXml(FilediConfigurazione)
        Catch ex As Exception
        End Try
        Return Configuration_Dataset.Tables
    End Function

    Private Sub OnCreated(ByVal sender As Object, ByVal e As IO.FileSystemEventArgs)

        'Crea una matrice di tre stringhe
        Dim PercorsoFile As String
        Dim TipoCambiamento As String

        'A ogni stringa assegna un determinato valore:

        PercorsoFile = e.FullPath               'Assegna il percorso del file o directory
        TipoCambiamento = e.ChangeType.ToString    'Assegna il tipo di cambiamento
        InvioDati(PercorsoFile)

        If File.Exists(PercorsoFile) Then

        End If



    End Sub

    Protected Overrides Sub OnStop()
        ' chiude l'applicazione
        'es   myEventLog.StopWatcher()
        'objEventLogWatcher.Dispose()


    End Sub

    Private Sub InvioDati(ByVal PercorsoFile As String)
        Dim ConnectionString As String

        Dim DT As DataTableCollection
        DT = LoadConfiguration("\Config.xml")
        ConnectionString = System.Convert.ToString(DT("configuration").Rows(0)("ConnectionString"))
        objDB = New System.Data.OleDb.OleDbConnection
        objDB.ConnectionString = ConnectionString
        objDB.Open()

        'Dim filename As FileStream
        'Dim riga As String


        'If  Then
        '    filename = ControlFile


        '    Dim sr As New StreamReader(filename, System.Text.Encoding.ASCII)
        '    While sr.Peek > 0
        '        riga = sr.ReadLine
        '        If riga.Length > 0 Then
        '            Dim campi() As String
        '            campi = riga.Split(";")

        '            Try
        '                Dim testCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("ImportaDati", objDB)
        '                testCMD.CommandType = CommandType.StoredProcedure

        '                Dim param1 As OleDb.OleDbParameter
        '                param1 = testCMD.Parameters.Add("param1", OleDb.OleDbType.VarWChar, 50)
        '                param1.Direction = ParameterDirection.Input
        '                param1.Value = campi(0)

        '                Dim param2 As OleDb.OleDbParameter
        '                param2 = testCMD.Parameters.Add("param2", OleDb.OleDbType.VarWChar, 50)
        '                param2.Direction = ParameterDirection.Input
        '                param2.Value = campi(1)

        '                testCMD.ExecuteNonQuery()

        '            Catch ex As Exception
        '            End Try
        '        End If
        '    End While
        '    sr.Close()
        'End If


        objDB.Close()
    End Sub


End Class


In pratica non lo sò perchè non riesco ad andare in debug

Volevo chiedervi:
- Date un'occhiata se a voi sembra corretto......... naturalmente poi posso mettere la risorsa disponibile per chi ne avesse bisogno...... postando codice e funzionamento

- Ho provato a fare come era scritto nella guida postata all'inizio.....ma io non ho quel processo di sistema a cui attacarmi..
posso usarne uno qualsiasi?
Come devo scegliere?