Hallo zusammen, ich möchte was im bgw laufen lassen aber alle versuche ihm was mit zu geben sind gescheitert.... kann mir das bitte jemand erkären was ich da falsch mache ?
hier mein code...
vielen Dank schon mal ronaldl
hier mein code...
VB.NET-Quellcode
- Imports System.IO
- Imports System.ManagementImports System.ComponentModel
- Public Class keDim dbu As String = Fotosoft.Label3.Text
- Dim dbp As String = Fotosoft.Label4.TextDim dbh As String = Fotosoft.Label5.Text
- Dim dbd As String = Fotosoft.Label6.Text
- Dim wertT As String = ""
- Dim wertPp As String = ""
- Private WithEvents bgw As New BackgroundWorker
- Private Sub ke_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- 'erlaubt zugriff auf die windows form
- bgw.WorkerReportsProgress = True
- 'erlaubt unterbrechung des bgw z.b. wenn das programm beendet wird
- bgw.WorkerSupportsCancellation = True
- Label6.Text = ""
- Label1.Visible = False
- Label2.Visible = False
- Label4.Visible = False
- Label5.Visible = False
- ComboBox1.Visible = False
- ComboBox2.Visible = False
- RectangleShape1.Visible = False
- Button2.Text = "Karten Ordner Wählen"
- ' Hauptordner
- Dim sql As String = "select * from turniere order by tid desc"
- Dim con As New MySqlConnectionDim cmd As New MySqlCommand(sql, con)
- Dim myAdapter As New MySqlDataAdapter
- Dim reader As MySqlDataReadercon.ConnectionString = "server='" & dbh & "';" _
- & "uid='" & dbu & "';" _& "pwd='" & dbp & "';" _
- & "database='" & dbd & "';"
- con.Open()
- reader = cmd.ExecuteReader()
- Do While reader.Read() 'Jede Reihe durchlaufenComboBox1.Items.Add(reader("tid") & " / " _
- & reader("tname"))
- Loop
- reader.Close() 'Reader schliesen
- con.Close() 'Connection schliesen
- End SubPrivate Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- 'prüft ob der bgw noch läuft und beendet diesen dann
- 'bedingung - siehe form_load
- If bgw.IsBusy Then
- bgw.CancelAsync()
- End If
- End SubPrivate Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Dim fbd As New FolderBrowserDialogfbd.RootFolder = Environment.SpecialFolder.MyComputer
- fbd.ShowNewFolderButton = True
- fbd.Description = "Wählen Sie ein Karte aus"If fbd.ShowDialog() = _
- Windows.Forms.DialogResult.OK Then
- ElseMsgBox("Abbruch")
- End If
- Label6.Text = fbd.SelectedPath & "\"
- Label1.Visible = True
- Label2.Visible = True
- Label4.Visible = True
- Label5.Visible = True
- ComboBox1.Visible = True
- ComboBox2.Visible = True
- RectangleShape1.Visible = True
- End SubPublic Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
- ' unterordner
- ComboBox2.Items.Clear()
- ComboBox2.Text = ""
- Dim selectedIndexT As Integer
- selectedIndexT = ComboBox1.SelectedIndex
- Dim selectedItemT As ObjectselectedItemT = ComboBox1.SelectedItem.Split("/").GetValue(0)
- Dim wertT As String
- wertT = selectedItemT
- Dim sqlp As String = "select * from pruefungen where tid = " & wertT & " order by pid desc"
- Dim con As New MySqlConnectionDim cmd As New MySqlCommand(sqlp, con)
- Dim myAdapter As New MySqlDataAdapter
- Dim reader As MySqlDataReadercon.ConnectionString = "server='" & dbh & "';" _
- & "uid='" & dbu & "';" _& "pwd='" & dbp & "';" _
- & "database='" & dbd & "';"
- con.Open()
- reader = cmd.ExecuteReader()
- Do While reader.Read() 'Jede Reihe durchlaufenComboBox2.Items.Add(reader("pid") & " / " _
- & reader("pname"))
- Loop
- reader.Close() 'Reader schliesen
- con.Close() 'Connection schliesen
- End SubPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- bgw.RunWorkerAsync()
- End Sub
- 'Region "BackGroundWorker Events"Private Sub bgw_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bgw.DoWork
- Dim myFiles() As FileInfo = sourcePath.GetFiles()
- 'Array.Sort(myFiles)
- Dim AE As Integer
- AE = UBound(myFiles) - LBound(myFiles) + 1
- Label11.Text = AE.ToStringDim anz As String = 0For i As Integer = 0 To AE - 1
- myFiles(i).MoveTo(DestinationPath & myFiles(i).ToString)
- ProgressBar1.Focus()
- ProgressBar1.Maximum = Label11.Text + 1Application.DoEvents()
- ProgressBar1.Value += 1
- ProgressBar1.Refresh()
- Label10.Focus()
- Label10.Text = ProgressBar1.Value / ProgressBar1.Maximum * 100 & " %"
- Label10.Refresh()
- Label18.Focus()
- Label18.Text = ProgressBar1.Value
- Label18.Refresh()
- NextDim DestPath As New DirectoryInfo(Label9.Text)
- Dim dmyFiles() As FileInfo = DestPath.GetFiles()For i As Integer = 0 To dmyFiles.Length - 1
- Dim fn0 As String = dmyFiles(i).ToStringDim fl As Integer = fn0.Length
- If fl < 15 ThenDim fl1 As Integer = fl - 4
- Dim fn1 As String = fn0.Substring(4, fl1)Dim fn2 As String = "IMG_" & wertPp & fn1
- Dim fn3 As String = Replace(fn2, " ", "")Dim fn4 As String = Label9.Text & fn3
- If File.Exists(fn4) Then
- ' MsgBox(fn4 & " exist")
- Else
- ' MsgBox(Label9.Text & fn3)
- dmyFiles(i).MoveTo(Label9.Text & fn3)
- End If
- End If
- Next
- bgw.ReportProgress(100) 'die 100 steht hier für einen prozentsatz
- 'oder
- 'bgw.ReportProgress(100, "Muss was Ausgeben.") 'im zweiten parameter kann ein objekt übergeben werden
- 'End If
- End SubPrivate Sub bgw_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles bgw.ProgressChanged
- If ComboBox1.Text = "" ThenMsgBox(" Bitte ein Turnier auswählen ! ")
- ElseIf ComboBox2.Text = "" ThenMsgBox(" Bitte ein Prüfung auswählen ! ")
- Else
- Dim selectedIndexT As Integer
- selectedIndexT = ComboBox1.SelectedIndex
- Dim selectedItemT As ObjectselectedItemT = ComboBox1.SelectedItem.Split("/").GetValue(0)
- wertT = selectedItemT
- Dim selectedIndexP As Integer
- selectedIndexP = ComboBox2.SelectedIndex
- Dim selectedItemP As ObjectselectedItemP = ComboBox2.SelectedItem.Split("/").GetValue(0)
- Dim wertP As String
- wertP = selectedItemPwertPp = Replace(selectedItemP, ".", "")
- Dim sourcePath As New DirectoryInfo(Label6.Text)Dim DestinationPath As String = Label9.Text
- End If
- End Sub
- Private Sub bgw_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles bgw.RunWorkerCompleted
- MsgBox(" Dateien fertig kopiert und unbenannt ! ")Me.Close()
- End SubPrivate Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged
- Dim selectedIndexT As Integer
- selectedIndexT = ComboBox1.SelectedIndex
- Dim selectedItemT As ObjectselectedItemT = ComboBox1.SelectedItem.Split("/").GetValue(0)
- Dim wertT As String
- wertT = selectedItemT
- Dim wertT1 As StringwertT1 = wertT.Replace(" ", "")
- Dim selectedIndexP As Integer
- selectedIndexP = ComboBox2.SelectedIndex
- Dim selectedItemP As ObjectselectedItemP = ComboBox2.SelectedItem.Split("/").GetValue(0)
- Dim wertP As String
- wertP = selectedItemPDim sourcePath As New DirectoryInfo(Label6.Text)
- Dim myFiles() As FileInfo = sourcePath.GetFiles()
- 'Array.Sort(myFiles)
- Dim AE As Integer
- AE = UBound(myFiles) - LBound(myFiles) + 1
- Label11.Text = AE.ToString
- 'ziellaufwerk destlegen
- Dim sqlc As String = "select ppfad from pruefungen where tid = " & wertT1 & " and pid = " & wertP & " "
- Dim con1 As New MySqlConnectionDim cmdc As New MySqlCommand(sqlc, con1)
- Dim myAdapter1 As New MySqlDataAdaptercon1.ConnectionString = "server='" & dbh & "';" _
- & "uid='" & dbu & "';" _& "pwd='" & dbp & "';" _
- & "database='" & dbd & "';"
- Dim tppf As String
- con1.Open()tppf = Convert.ToString(cmdc.ExecuteScalar)
- Dim tppf1 As String = Replace(tppf, ".", "\")Dim tppfn0 As Integer = tppf1.Length
- Dim tppfn1 As Integer = tppfn0 - 4Dim tppf2 As String = tppf1.Substring(0, tppfn1)
- Dim tppf3 As String = tppf2 & wertPDim wertPp As String = Replace(wertP, ".", "")
- Label9.Text = tppf3 & "\"Dim zl As String = Label9.Text.Substring(0, 1)Dim al As String = Label6.Text.Substring(0, 1)
- con1.Close()
- 'Freier Platz ziellaufwerkDim fs, plattefs = CreateObject("Scripting.FileSystemObject")
- platte = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(zl)))
- Dim free1z As Double = New DriveInfo(zl).AvailableFreeSpace / 1024 / 1024 / 1024
- Dim freez As String = (free1z.ToString("00.000")) & " GB sind auf Ziellaufwerk frei "
- Label12.Text = freezDim meda1 As Double = New DriveInfo(al).AvailableFreeSpace / 1024 / 1024 / 1024
- Dim meda2 As Double = New DriveInfo(al).TotalSize / 1024 / 1024 / 1024Dim meda3 As Double = meda2 - meda1
- Dim meda As String = (meda3.ToString("00.000"))
- Label13.Text = meda & " GB daten sind auf Karte "Dim reda1 As Double = free1z - meda3
- Dim reda As String = reda1.ToString("00.000")
- Label16.Text = reda & " GB sind auf Ziellaufwerk nach einlesen frei"
- If meda3 > free1z ThenMsgBox(" Achtung es steht nicht ausreichen Speicherplatz auf dem Server zur Verfügung !! ")
- End If
- End Sub
- End Class
vielen Dank schon mal ronaldl