en complement a la source de pcpunch, une version un peu plus complete pour graver avec nerocmd.
a savoir : nerocmd ne marche que avec la version 6 ou + de nero
avantage par rapport a la gravure integrer a win xp utilisable par les api : ben ...justement, ca fonctionne pas que sur win xp ;)
Source / Exemple :
Rem declaration des api qui permettent d'attendre la fin de l'execution avant de passer a autre chose
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
Private Const SYNCHRONIZE = &H100000
Private Const WAIT_TIMEOUT = &H102&
Private Sub burn_it()
Dim driveletter As String
driveletter = "d" ' obligatoire :la lettre du lecteur cd
Dim en_plus_dvd As String
en_plus_dvd = " --DVD" ' a mettre obligatoirement si on grave un cd ,sinon en_plus_dvd="" ( sinon, ca plante nerocmd :( )
Dim Import As String
Import = " --import " ' pour importer les sessions precedentes, sinon import=""
Dim enplus_finalise As String
enplus_finalise = " --close_session" ' pour finaliser la session
Dim ze_burn_path As String
ze_burn_path = "c:\mon_dossier_a_graver\" ' emplacement du dossier a graver
Dim batch_action As String
batch_action = App.Path + "\nerocmd --write --drivename " + drivelettre + en_plus_dvd + Import + enplus_finalise + " --real --recursive --iso BEDOT " + Chr(34) + ze_burn_path + "*.*" + Chr(34)
Rem : la fonction --recursive permet de graver l'interieur des dossier, sous dossiers ....
Rem --real permet de graver reellement, si on ne le met pas, ca fait juste une simulation
Rem --iso BEDOT : a la place de BEDOT, mettez le nom de votre cd
Dim filenum As Long
filenum = FreeFile
Open App.Path + "\nerobatch.bat" For Output As filenum
Print #filenum, batch_action
Close filenum
Démarre = Shell(App.Path + "\nerobatch.bat", vbHide)
ProcessHandle = OpenProcess(SYNCHRONIZE, False, Démarre)
retour = WaitForSingleObject(ProcessHandle, 1)
Do While retour = WAIT_TIMEOUT
retour = WaitForSingleObject(ProcessHandle, 1)
DoEvents
Loop
retour = CloseHandle(ProcessHandle)
Rem pour la liste complete des fonctions : en mode dos, nerocmd.exe /?
rem vous pouvez ensuite tester la presence du fichier d'erreur et l'analyser par prog si vous voulez une confirmation de reussite
End Sub
Conclusion :
pour savoir si il y a des sessions a importer, si le cd est plein ...utilisez la fonction
"nerocmd.exe --cdinfos --drivename D > infos.txt"
puis analyser le fichier infos.txt
si vous avez des questions, vous pouvez me mailer, je repondrais, mais bon.... suis parfois un peu long a la detente , mais je reponds:(
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.