Anzeige
Archiv - Navigation
1948to1952
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

DVD Brennfunktion sehr langsam

DVD Brennfunktion sehr langsam
08.10.2023 05:57:38
Andreas
Hallo und guten Morgen....

ich hoffe Ihr könnt mir bei nachfolgendem Code helfen. Mit diesem brenne ich schon eine ganze Weile einen indivuellen Ordner, was auch im Ergebnis tadellos funktioniert. Allerdings hat der Code einen kleinen Haken. Bis der Brennvorgang startet kann es bis zu 5 Minuten dauern, solange friert das Programm ein. Ich rede hierbei ausdrücklich von "Starten" - der Brennvorgang selbst läuft dann in angemessener Zeit. Mit Starten meine ich, bis ich die ersten Reaktionen am Brenner erhalte.

Wenn ich über Windows selbst brenne habe ich das Problem nicht... Kann mir jemand vl. einen Rat geben, woran das liegt? Und ja, ich weiss, Excel ist kein Brennprogramm - wenns nicht geht, dann ist das halt so. Es geht mir nur um Optimierung.

Lieben Dank Andreas



Public Sub Brenne_DVD(ByVal spfadAkte As String, ByVal TextBox3 As String)
Dim Index ' Index to recording drive.
Dim Recorder ' Recorder object
Dim Stream ' Data stream for burning device
Dim g_DiscMaster
Dim FSI ' Disc file system
Dim Dir ' Root directory of the disc file system
Dim dataWriter
Dim Result
Dim uniqueId
Dim objWMIService As Object, objColItems As Object, objItem As Object
Dim lngCounter As Long
Dim DatenTraegBez As String

Index = 0 ' First and only drive on the system


Dim fs As Object
Dim F As Object
Dim OrdnerSize

Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFolder(spfadAkte)


Select Case F.Size
Case Is 700000000:


Call mciExecute("Set CDaudio door open")


Set objWMIService = GetObject("winmgmts:.rootcimv2")
'Set obColItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
Set objColItems = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DriveType=2")

If MsgBox("Bitte einen passenden Datenträger (Anforderung:" & DatenTraegBez & ") in das Laufwerk einlegen und Schublade schließen. Möchten Sie den Brennvorgang des Ordners starten?", vbQuestion + vbYesNo, "Brennvorgang starten") = vbNo Then GoTo ERRORHANDLER




Application.DisplayAlerts = False
Set g_DiscMaster = CreateObject("IMAPI2.MsftDiscMaster2")
Set Recorder = CreateObject("IMAPI2.MsftDiscRecorder2")
uniqueId = g_DiscMaster.Item(Index)
Recorder.InitializeDiscRecorder (uniqueId)

Set FSI = CreateObject("IMAPI2FS.MsftFileSystemImage")
Set Dir = FSI.Root

'Create the new disc format and set the recorder
Set dataWriter = CreateObject("IMAPI2.MsftDiscFormat2Data")
dataWriter.Recorder = Recorder
dataWriter.ClientName = "IMAPIv2 TEST"

FSI.ChooseImageDefaults (Recorder)
FSI.VolumeName = TextBox3

' Add the directory and its contents to the file system
Dir.AddTree spfadAkte, False

' Create an image from the file system
Set Result = FSI.CreateResultImage()

' Write stream to disc using the specified recorder.
On Error GoTo ERRORHANDLER:
dataWriter.Write (Result.ImageStream)
Call Unload(Object:=UF_Brennvorgang)
Call mciExecute("Set CDaudio door open")
Application.DisplayAlerts = True
MsgBox ("Brennvorgang erfolgreich beendet." & Chr(10) & "Bitte Datenträger entnehmen und beschriften."), vbInformation, "Brennen"
Call LogEintrag(TextBox3 & ": DVD erfolgreich gebrannt.")

Exit Sub

ERRORHANDLER:
Call Unload(Object:=UF_Brennvorgang)
Call mciExecute("Set CDaudio door open")

Application.DisplayAlerts = True
MsgBox ("Der Vorgang konnte nicht ordnungsgemäß abgeschlossen werden." & Chr(10) & Chr(10) & "Bitte Datenträger überprüfen und Vorgang wiederholen."), vbCritical, "Brennen"
Call LogEintrag(TextBox3 & ": DVD nicht erfolgreich gebrannt.")
CancelCD = False

End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: DVD Brennfunktion sehr langsam
08.10.2023 12:06:03
ralf_b
da der Code zum ausprobieren nicht vollständig ist, lässt sich nur mutmaßen.

1. du verwendest eine Variable Dir. das ist aber auch gleichzeitig ein VBA-Befehl. Möglich das es hier zu Timeouts oder sowas kommt.
2. je nachdem wie viele Daten du brennen willst, können Ladezeiten der Daten zur Verzögerung betragen.

vielleicht setzt du zwischen einzelne Codeabschnitte einen Timer zur Bestimmung der Stelle wo die Verzögerung auftritt.
AW: DVD Brennfunktion sehr langsam
08.10.2023 13:34:34
Ulf
Hi,
hier erstellst du ein (unnötiges) temporäres Image, bevor gebrannt wird:


' Create an image from the file system
Set Result = FSI.CreateResultImage()

' Write stream to disc using the specified recorder.
On Error GoTo ERRORHANDLER:
dataWriter.Write (Result.ImageStream)

DVD/BD UDF formatieren und wie eine HDD verwenden wäre genauso sicher und gut.
hth
Ulf
Anzeige
AW: DVD Brennfunktion sehr langsam
08.10.2023 14:50:24
Andreas
Hallo und vielen Dank für die beiden Ratschläge….

Wenn ich das mit UTF mache, einfach die Zeile weglassen oder was wäre dein Vorschlag, um das zu umgehen?
AW: DVD Brennfunktion sehr langsam
08.10.2023 16:06:24
Ulf
Hi Andreas,
wenn eine DVD/BD UDF/Multisession formatiert ist, kannst du den ganzen CD/DVD-ISO-Overhead weglassen.
will sagen mit bspw fso
FileSystemObject.CopyFolder spfadAkte & "*", "DVDLAUFWERK:NEUESVERZEICHNIS"
wobei NEUESVERZEICHNIS (für Sicherung Buchhaltung usw) dann bspw der aktuelle Monat des aktuellen Jahres sein könnte: 2023_09
Windows selbst kann meines Wissens seit 7 DVD/BD so vorbereiten.
hth
Ulf
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige