Hallo,
ich bin ziemlich neu beim Programmieren mit VB und habe nun einen Auftrag von meinem Chef bekommen der möchte ein Programm das mit Windows startet (habe ich über ein Icon in Autostart gelöst) und dann Ordner mit 7 Zip auf ein Laufwerk packt. Also praktisch ein Sicherungsprogramm. Nun hab ich das Problem wenn ich es nicht beim Start ausführe gibt es keine Probleme, aber sobald ich es mit Windows starten lasse werden die Laufwerke nicht gefunden. Kann mir einer weiter helfen? Danke schon mal im Voraus.
Hier mal der Code:
?
ich bin ziemlich neu beim Programmieren mit VB und habe nun einen Auftrag von meinem Chef bekommen der möchte ein Programm das mit Windows startet (habe ich über ein Icon in Autostart gelöst) und dann Ordner mit 7 Zip auf ein Laufwerk packt. Also praktisch ein Sicherungsprogramm. Nun hab ich das Problem wenn ich es nicht beim Start ausführe gibt es keine Probleme, aber sobald ich es mit Windows starten lasse werden die Laufwerke nicht gefunden. Kann mir einer weiter helfen? Danke schon mal im Voraus.
Hier mal der Code:
?
VB.NET-Quellcode
- Imports System.IO
- Public Class autosicher
- Public systempfad As String = Path.GetDirectoryName(Application.ExecutablePath)
- Public autostartpfad As String = Path.GetDirectoryName(Application.ExecutablePath) & "\autostart"
- Public binpfad As String = Path.GetDirectoryName(Application.ExecutablePath) & "\bin"
- Public datapfad As String = Path.GetDirectoryName(Application.ExecutablePath) & "\data"
- Public temppfad As String = Path.GetDirectoryName(Application.ExecutablePath) & "\data\temp"
- Public prodatapfad As String = Path.GetDirectoryName(Application.ExecutablePath) & "\data\projektdata"
- Public fq As String = autostartpfad & "\astrt.aut"
- Public fz As String = autostartpfad & "\autz.aut"
- Public Function IsDriveReady(ByVal sDrive As String) As Boolean
- ' Prüft, ob das angegebene Laufwerk existiert und
- ' ob darauf zugegriffen werden kann
- Try
- Dim oDrive As New System.IO.DriveInfo(sDrive)
- Return oDrive.IsReady
- Catch ex As Exception
- Return False
- End Try
- End Function
- Private Sub autosicher_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- Dim OverWrite As Boolean = True
- Dim sziel As String
- Dim quelle As String
- Dim trenn As String = ":"
- Dim Arr() As String
- Dim text As String
- Dim pfad As String
- Dim lw As String
- Dim stag As String = Now.ToString("dd") 'Variable für Tag in Dateiname
- Dim smonat As String = Now.ToString("MM") 'für Monat nd Datename
- Dim sjahr As String = Now.ToString("yyy") 'für Jahr nd Datename
- sziel = My.Computer.FileSystem.ReadAllText(fz)
- '-----------------------------------------------------------------
- 'Abfrage ob Sicherungsziel Vorhanden
- '------------------------------------------------------------------
- System.Threading.Thread.Sleep(15000)
- '------------------------------------------------------------------
- 'Daten nach temp kopieren
- '-------------------------------------------------------------------
- Dim sr As New System.IO.StreamReader(fq)
- Do While Not sr.EndOfStream
- Dim Zeileninhalt As String
- Zeileninhalt = sr.ReadLine()
- Arr = Zeileninhalt.Split(trenn)
- lw = Arr(0)
- pfad = Arr(1)
- ' pfad = Arr(2)
- My.Computer.FileSystem.CopyDirectory(lw & ":" & pfad, temppfad & "\sicherung" & pfad, True)
- Loop
- '----------------------------------------------------------------
- ' Zip im Ziel erstellen
- Dim SevenZip As New System.Diagnostics.Process
- SevenZip.StartInfo.FileName = binpfad & "\7z.exe"
- ' Zip optionen
- Dim zfile As String = sziel & "\prob" & stag & smonat & sjahr 'zipfile mit pfad
- Dim zf2 As String = temppfad & "\sicherung\"
- Dim zf3 As String = "a" & " " & zfile & " " & zf2
- SevenZip.StartInfo.Arguments = zf3
- SevenZip.Start()
- 'SevenZip.WaitForExit()
- '--------------------------------
- 'Dat im Ziel schreiben
- '-------------------------------
- My.Computer.FileSystem.CopyFile(fq, zfile & ".dat", True)
- '----------------------------------------
- 'Verzeichnis sicherung löschen
- '---------------------------------------
- My.Computer.FileSystem.DeleteDirectory(temppfad & "\sicherung\", FileIO.DeleteDirectoryOption.DeleteAllContents)
- End
- End Sub
- End Class