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?