[ Lord_Nenad @ 24.09.2010. 21:27 ] @
Pozdrav svima, Poceo sam da pravim program pomocu kog ce se moci narezivati CD/DVD, program radim pomocu VB 2008. Radi se pomocu IMAPI2.dll i IMAPI2FS.dll Evo koda: Code: Dim CDD1 As New IMAPI2.MsftDiscMaster2 Dim CDD2 As New IMAPI2.MsftDiscRecorder2 Dim FSI As New IMAPI2FS.MsftFileSystemImage Dim CDD3 As New IMAPI2.MsftDiscFormat2Data Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Index = 0 Dim UniqueID = "" Dim Directory Dim Path = "C:\lll" Dim result Dim Stream Label1.Text = "----- Started -----." UniqueID = CDD1.Item(Index) Label1.Text = Label1.Text & vbCrLf & "ID found: " & UniqueID CDD2.InitializeDiscRecorder(UniqueID) Label1.Text = Label1.Text & vbCrLf & "Recorder selected!" Directory = FSI.Root Label1.Text = Label1.Text & vbCrLf & "Directory is here: " & Directory.ToString CDD3.Recorder = CDD2 Label1.Text = Label1.Text & vbCrLf & "Recorder 2 selected!" CDD3.ClientName = "IMAPI2 TEST" Label1.Text = Label1.Text & vbCrLf & "Client Name Selected!" FSI.ChooseImageDefaults(CDD2) Label1.Text = Label1.Text & vbCrLf & "Default selected!" Directory.AddTree(Path, False) Label1.Text = Label1.Text & vbCrLf & "Directory added!" result = FSI.CreateResultImage() Stream = result.ImageStream Label1.Text = Label1.Text & vbCrLf & "Writing content to disc..." If (CDD3.IsCurrentMediaSupported(CDD2) = True) Then If (CDD3.IsRecorderSupported(CDD2) = True) Then CDD3.Write(Stream) Else MsgBox("Not Suported Recorder!") End If Else MsgBox("Not Suported Media!") End If Label1.Text = Label1.Text & vbCrLf & "----- Finished -----" End Sub U ovom slucaju je pogram blokirao sve dok ne zavrsi narezivanje. I onda sam dodao novi element: BackgroundWorker I ubacio CDD3.Write(Stream) u DoWork tog elementa, tako da sad program ne blokira, ali jos uvek ne mogu da pristupim procesu narezivanja. U ovom slucaju ne blokira program, nego zablokira taj BackgroundWorker, pa tako reze. Kad pokusam da pristupim disku, pomocu CDD3.TotalSectorsOnMedia, izbaci mi gresku. Jel zna neko neki drugi nacin da se ovo uradi? Da li je pouzdano na osnovu velicine fajlova koji se narezuju i pomocu prethodno definisane brzine narezivanja odrediti procenat narezanog dela? Hvala. |