Check om netværket er tilgængelig?
Hej eksperter,Jeg har et program som jeg har lavet, som skal køre i baggrunden hver gang man starter pc'eren op.
Når den starter op, kopier den en fil fra netværks drevet til computeren, og så køre et andet program.
Bagefter går den igang med at holde øje med filen, og hvis filen ændres så kopier den, den over til pc'eren igen og køre et andet program igen.
Mit problem er så at mit program ikke kan hente filen hvis man starter computeren op og så forbinder sig til netværket (som VPN).
Det jeg gerne vil have er at programmet kopier filen hver gang den forbinder sig til netværket, men jeg aner ikke hvordan jeg skal lave det.
Det er koden af mit program:
Imports System
Imports System.IO
Imports System.Diagnostics
Public Class main
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Hide()
If Process.GetProcessesByName(Process.GetCurrentProcess.ProcessName).Length > 1 Then
Application.Exit()
End If
Dim pingstatus As Boolean = False
Try
'' Copy the file from the network path
File.Copy(PathToFileToWatch & FileToWatch, PathToCopyTo & FileToWatch, True)
Shell(PathToCopyTo & "Bginfo.exe /timer:0 /I""" & PathToCopyTo & FileToWatch & """", AppWinStyle.Hide, True)
Catch ex As System.Exception
'' Error handler
errortext = _
"Error number: " & Err.Number & vbNewLine & _
"Error source: " & ex.StackTrace & vbNewLine & _
"Error descripton: " & ex.Message & vbNewLine
EventLog.WriteEntry("BgInfoAgent", errortext, EventLogEntryType.Error)
End Try
End Sub
<Security.Permissions.PermissionSet(Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
Private Sub Run()
'' It creates the FileSystemWatcher
Dim watcher As New FileSystemWatcher()
watcher.Path = PathToFileToWatch
' Here it watches for changes in LastAccess and LastWrite time.
watcher.NotifyFilter = (NotifyFilters.LastWrite Or NotifyFilters.Size)
watcher.Filter = FileToWatch
'' Add event handlers.
AddHandler watcher.Changed, AddressOf OnChanged
'' Begin watching.
watcher.EnableRaisingEvents = True
End Sub
Dim TimeFired As DateTime = DateTime.Now
Private Sub OnChanged(ByVal source As Object, ByVal e As FileSystemEventArgs)
If (DateTime.Now.Subtract(TimeFired).TotalMilliseconds < 20000) Then
Exit Sub
End If
TimeFired = DateTime.Now
'' Wait 5 sec. before copying
System.Threading.Thread.Sleep(5000)
'Debug.WriteLine(DateTime.Now.ToString("HH:mm:ss:fff") + " file import")
''Copy the file
File.Copy(PathToFileToWatch & FileToWatch, PathToCopyTo & FileToWatch, True)
''Run the command to update the background on the desktop
Shell(PathToCopyTo & "Bginfo.exe /timer:0 /I""" & PathToCopyTo & FileToWatch & """", AppWinStyle.Hide, True)
End Sub
End Class