OVH Cloud OVH Cloud

graver cd avec vb

12 réponses
Avatar
lou
bonjour
je suis a la recherche du code visual basic pour graver un cd avec NERO

j'ai un exemple mais il ne copie que les fichiers simples
ce que je voudrais c'est graver un repertoire complet (backup)
un exemple serait le bienvenu
MERCI

10 réponses

1 2
Avatar
François Picalausa
Bonjour/soir,

L'exemple Nero Fiddles COM du Nero SDK
(http://www.nero.com/en/631927526314911.html) montre comment ajouter un
fichier.
Dans l'événement Burn_Click, on peut lire:
Dim file As NeroFile
Set file = New NeroFile
Folder.Files.Add file
file.Name = NameFromPath(edtFileName.Text)
file.SourceFilePath = edtFileName.Text

Pour graver un dossier voici ce que tu peux ajouter:
Set file = New NeroFile
file.Name = "MonFichier.txt"
file.SourceFilePath = "c:toto.txt"
Folder.Files.Add file

Pour backup, on peut énumérer fichiers et dossiers d'un même dossier parent
à l'aide de Dir:
Private Sub Command1_Click()
Dim Folder As NeroFolder

'correspond à leur objet folder affecté à l'isotrack
Set Folder = New NeroFolder

Backup "D:Documents and SettingsFrançois PicalausaMes documentsMes
fichiers reçus", Folder
End Sub

Sub Backup(ByVal Folder As String, ParentFolder As NeroFolder)
Dim strBuffer As String
Dim nroFolder As NeroFolder
Dim nroFile As NeroFile

Folder = EndPath(Folder) 'on ajoute un si nécessaire

strBuffer = Dir(Folder, vbDirectory Or vbArchive Or vbNormal)
'On énumère tous les fichiers/dossiers
Do While Len(strBuffer)
If strBuffer <> "." And strBuffer <> ".." Then
'S'il s'agit d'un dossier
If GetAttr(Folder & strBuffer) And vbDirectory Then
'On ajoute le dossier au dossier parent
Set nroFolder = New NeroFolder
nroFolder.Name = strBuffer

ParentFolder.Folders.Add nroFolder

Set nroFolder = Nothing
Else 'Fichier
Set nroFile = New NeroFile
'On définit le nom et la source du fichier
nroFile.Name = strBuffer
nroFile.SourceFilePath = Folder & strBuffer

ParentFolder.Files.Add nroFile

Set nroFolder = Nothing
End If
End If

'Element suivant
strBuffer = Dir
Loop

'On effectue l'opération de manière récursive
'pour chaque dossier ajouté
For Each nroFolder In ParentFolder.Folders
Backup Folder & nroFolder.Name & "", nroFolder
Next nroFolder
End Sub

'S'assure qu'un backslash est présent en fin de chemin
Function EndPath(strPAth As String) As String
If Right$(strPAth, 1) <> "" Then
EndPath = strPAth & ""
Else
EndPath = strPAth
End If
End Function

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:402fdf42$0$785$
bonjour
je suis a la recherche du code visual basic pour graver un cd avec
NERO

j'ai un exemple mais il ne copie que les fichiers simples
ce que je voudrais c'est graver un repertoire complet (backup)
un exemple serait le bienvenu
MERCI


Avatar
lou
bonjour françois
tout dabors merci de ton aide

j'ai essaié ton code mais je n'arrive pas a le faire fontionner
je n'ai pas assez d'experience en vb

en fait j'ai l'exemple de NeroSDK-v1.03 pour vb
il y a un project déjà pret et qui fonctionne le seul problemme c'est qu'il
est parametré pour un seul fichier et j'ai vu que l'on pouvait aussi le
parametrer pour y inclure aussi un repertoire entier comme quand je me
serts de nero et que j'ouvre une session je fais glisser le repertoire (
qui s'appelle ((DataTables)) et voila il ne reste plus qu'à graver
en fait si je reprends l'exemple quand je clic sur brownse je voudrais
selectionner tout simplement un repertoire et pas un fichier
peut tu m'aider pour faire celà je te remercie d'avance
lou


"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

L'exemple Nero Fiddles COM du Nero SDK
(http://www.nero.com/en/631927526314911.html) montre comment ajouter un
fichier.
Dans l'événement Burn_Click, on peut lire:
Dim file As NeroFile
Set file = New NeroFile
Folder.Files.Add file
file.Name = NameFromPath(edtFileName.Text)
file.SourceFilePath = edtFileName.Text

Pour graver un dossier voici ce que tu peux ajouter:
Set file = New NeroFile
file.Name = "MonFichier.txt"
file.SourceFilePath = "c:toto.txt"
Folder.Files.Add file

Pour backup, on peut énumérer fichiers et dossiers d'un même dossier


parent
à l'aide de Dir:
Private Sub Command1_Click()
Dim Folder As NeroFolder

'correspond à leur objet folder affecté à l'isotrack
Set Folder = New NeroFolder

Backup "D:Documents and SettingsFrançois PicalausaMes documentsMes
fichiers reçus", Folder
End Sub

Sub Backup(ByVal Folder As String, ParentFolder As NeroFolder)
Dim strBuffer As String
Dim nroFolder As NeroFolder
Dim nroFile As NeroFile

Folder = EndPath(Folder) 'on ajoute un si nécessaire

strBuffer = Dir(Folder, vbDirectory Or vbArchive Or vbNormal)
'On énumère tous les fichiers/dossiers
Do While Len(strBuffer)
If strBuffer <> "." And strBuffer <> ".." Then
'S'il s'agit d'un dossier
If GetAttr(Folder & strBuffer) And vbDirectory Then
'On ajoute le dossier au dossier parent
Set nroFolder = New NeroFolder
nroFolder.Name = strBuffer

ParentFolder.Folders.Add nroFolder

Set nroFolder = Nothing
Else 'Fichier
Set nroFile = New NeroFile
'On définit le nom et la source du fichier
nroFile.Name = strBuffer
nroFile.SourceFilePath = Folder & strBuffer

ParentFolder.Files.Add nroFile

Set nroFolder = Nothing
End If
End If

'Element suivant
strBuffer = Dir
Loop

'On effectue l'opération de manière récursive
'pour chaque dossier ajouté
For Each nroFolder In ParentFolder.Folders
Backup Folder & nroFolder.Name & "", nroFolder
Next nroFolder
End Sub

'S'assure qu'un backslash est présent en fin de chemin
Function EndPath(strPAth As String) As String
If Right$(strPAth, 1) <> "" Then
EndPath = strPAth & ""
Else
EndPath = strPAth
End If
End Function

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:402fdf42$0$785$
> bonjour
> je suis a la recherche du code visual basic pour graver un cd avec
> NERO
>
> j'ai un exemple mais il ne copie que les fichiers simples
> ce que je voudrais c'est graver un repertoire complet (backup)
> un exemple serait le bienvenu
> MERCI




Avatar
François Picalausa
Bonjour/soir,

"lou" a écrit dans le message de
news:40307e47$0$776$
bonjour françois
tout dabors merci de ton aide

j'ai essaié ton code mais je n'arrive pas a le faire fontionner
je n'ai pas assez d'experience en vb

en fait j'ai l'exemple de NeroSDK-v1.03 pour vb



C'est donc Nero Fiddles COM.

il y a un project déjà pret et qui fonctionne le seul problemme c'est
qu'il est parametré pour un seul fichier et j'ai vu que l'on pouvait
aussi le parametrer pour y inclure aussi un repertoire entier



Ce à quoi sert la sub backup postée avant ;-)

en fait si je reprends l'exemple quand je clic sur brownse je
voudrais selectionner tout simplement un repertoire



Point de vue boite de dialogue, il s'agit de la fiche:
http://support.microsoft.com/default.aspx?scid=kb;fr-mt;179497
(modification a effectuer dans Browse_Click)

Supposons que tu récupère le résultat de la boite de dialogue dans
edtFileName.
L'événement Click du boutton Burn devient alors:

Private Sub Burn_Click()
btnAbort.Enabled = True
Browse.Enabled = False
Burn.Enabled = False

Set Folder = New NeroFolder
Dim drives As INeroDrives
Set drives = nero.GetDrives(NERO_MEDIA_CDR)
Set drive = drives(AvailableDevices.ListIndex)
Dim isotrack As NeroISOTrack
Set isotrack = New NeroISOTrack
isotrack.Name = "TestTrack"
isotrack.RootFolder = Folder
'--------------------------------------
' Début de modification
'--------------------------------------
Backup edtFileName.Text, Folder
'ou
' Backup "c:DataTables", Folder

'--------------------------------------
'Fin de modification
'--------------------------------------

isotrack.BurnOptions = NERO_BURN_OPTION_CREATE_ISO_FS +
NERO_BURN_OPTION_USE_JOLIET

drive.BurnIsoAudioCD "Pop Star", "Title", 0, isotrack, Nothing, Nothing,
NERO_BURN_FLAG_SIMULATE + NERO_BURN_FLAG_WRITE, 4, NERO_MEDIA_CD
GoTo quit

handle_error:
strMessages = strMessages + Err.Description + Chr(13) + Chr(10) +
nero.LastError
edtMessages = strMessages
quit:
End Sub

Le reste du code devrait rester le même...

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
Avatar
lou
bonjour
tout est ok ou presque ton code fontionne bien
j'ai aussi pu selectionner un repertoire avec le lien que tu m'a donné

une seule chose m'embête c'est que celui qui vas employer ma base et ce truc
de gravure pour le backup
il ne faut pas trop lui en demander
et c'est pourquoi j'essaie d'automatiser un max pour qu'il ait le moins de
clic à faire

donc voila ce que je cherche à faire si c'est possible
sur CmdBurn_Click()
en fait c'est un cd réinscriptible et pour ne pas passer par la commande
''éffacer'' avant , j'essaie de metre tout en cascade sur la meme commande
l'effacement et puis la gravure
voici le bout de code sur CmdBurn_Click()
avec le petit gag que j'obtiens si tu pouvais faire quelque chose !!!
merci d'avance
lou

Private Sub CmdBurn_Click()
'cmdBurn.Enabled = False
'FileAdd.Enabled = False
'cmdErase.Enabled = False

On Error GoTo handle_error
'''''''verifie si cd est vide ou pas

If (Dir(CDletre, vbDirectory) <> "") Then
MsgBox "rempli"
Combo1 = "Rapide"
'''''''''''''''''''ici il commence a effacer

Set Folder = New NeroFolder
Dim Drives As INeroDrives
Set Drives = nero.GetDrives(NERO_MEDIA_CDR)
Set Drive = Drives(AvailableDevices.ListIndex)
Dim isotrack As NeroISOTrack
Set isotrack = New NeroISOTrack

isotrack.BurnOptions = NERO_BURN_OPTION_USE_JOLIET Or
NERO_BURN_OPTION_CREATE_ISO_FS


Dim A
If Combo1.Text = "Complet" Then
A = Drive.CDRWErasingTime(False)
Drive.EraseCDRW False
Else
A = Drive.CDRWErasingTime(True)
Drive.EraseCDRW True
End If
''''''''ok il à éffacé tout

''''on voit dans la fenetre qu'il prépare une nouvelle session

'''ici en principe il devrait commencer à graver mais il èjecte le cd

'''''''''''''''''''''''''''''''graver

Set Folder = New NeroFolder
Set Drives = nero.GetDrives(NERO_MEDIA_CDR)
Set Drive = Drives(AvailableDevices.ListIndex)
Set isotrack = New NeroISOTrack
isotrack.Name = Text1.Text
isotrack.RootFolder = Folder

Backup "D:DataTables", Folder

isotrack.BurnOptions = NERO_BURN_OPTION_USE_JOLIET Or
NERO_BURN_OPTION_CREATE_ISO_FS
Drive.BurnIsoAudioCD "", "", False, isotrack, Nothing, Nothing,
NERO_BURN_FLAG_WRITE, 4, NERO_MEDIA_CD
GoTo quit

End If

handle_error:
strMessages = strMessages + Err.Description + Chr(13) + Chr(10) +
nero.LastError
edtMessages = strMessages
quit:
''''''''''''''''''''''''''''''''fin gravure
End Sub



"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

"lou" a écrit dans le message de
news:40307e47$0$776$
> bonjour françois
> tout dabors merci de ton aide
>
> j'ai essaié ton code mais je n'arrive pas a le faire fontionner
> je n'ai pas assez d'experience en vb
>
> en fait j'ai l'exemple de NeroSDK-v1.03 pour vb

C'est donc Nero Fiddles COM.

> il y a un project déjà pret et qui fonctionne le seul problemme c'est
> qu'il est parametré pour un seul fichier et j'ai vu que l'on pouvait
> aussi le parametrer pour y inclure aussi un repertoire entier

Ce à quoi sert la sub backup postée avant ;-)

> en fait si je reprends l'exemple quand je clic sur brownse je
> voudrais selectionner tout simplement un repertoire

Point de vue boite de dialogue, il s'agit de la fiche:
http://support.microsoft.com/default.aspx?scid=kb;fr-mt;179497
(modification a effectuer dans Browse_Click)

Supposons que tu récupère le résultat de la boite de dialogue dans
edtFileName.
L'événement Click du boutton Burn devient alors:

Private Sub Burn_Click()
btnAbort.Enabled = True
Browse.Enabled = False
Burn.Enabled = False

Set Folder = New NeroFolder
Dim drives As INeroDrives
Set drives = nero.GetDrives(NERO_MEDIA_CDR)
Set drive = drives(AvailableDevices.ListIndex)
Dim isotrack As NeroISOTrack
Set isotrack = New NeroISOTrack
isotrack.Name = "TestTrack"
isotrack.RootFolder = Folder
'--------------------------------------
' Début de modification
'--------------------------------------
Backup edtFileName.Text, Folder
'ou
' Backup "c:DataTables", Folder

'--------------------------------------
'Fin de modification
'--------------------------------------

isotrack.BurnOptions = NERO_BURN_OPTION_CREATE_ISO_FS +
NERO_BURN_OPTION_USE_JOLIET

drive.BurnIsoAudioCD "Pop Star", "Title", 0, isotrack, Nothing,


Nothing,
NERO_BURN_FLAG_SIMULATE + NERO_BURN_FLAG_WRITE, 4, NERO_MEDIA_CD
GoTo quit

handle_error:
strMessages = strMessages + Err.Description + Chr(13) + Chr(10) +
nero.LastError
edtMessages = strMessages
quit:
End Sub

Le reste du code devrait rester le même...

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com




Avatar
François Picalausa
Bonjour/soir,

Il semblerait que l'ejection de CD soit un comportement normal pour Nero...
On trouve dans la documentation ceci:

NERO_ERASE_MODE_DISABLE_EJECT CD will not be ejected at the end of the
erasing, even if this is recommanded for the selected recorder.

Il est utilisable avec la méthode EraseDisc (et non EraseCDRW)
On peut l'utiliser comme ceci:
EraseDisc [booléen]Effacement rapide?, NERO_ERASE_MODE_DISABLE_EJECT

La ligne
Drive.EraseCDRW True
Serait donc remplacée par
Drive.EraseDisc True, NERO_ERASE_MODE_DISABLE_EJECT

(ou du moins, c'est ce que je suppose car j'ai une mauvais connaissance du
modèle objet de Nero)

Sinon, tu as un Dim A qui dimensionne une variable A en tant que Variant.
Le Variant est par définition lent à l'exécution...
Il est nettement préférable de typer ta variable:
Dim A As Long
Ce sera plus rapide à l'exécution (si sur une opération ça ne se voit pas,
au final, on peut quand même y gagner)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:40320632$0$13245$
donc voila ce que je cherche à faire si c'est possible
sur CmdBurn_Click()
en fait c'est un cd réinscriptible et pour ne pas passer par la
commande ''éffacer'' avant , j'essaie de metre tout en cascade sur
la meme commande l'effacement et puis la gravure
voici le bout de code sur CmdBurn_Click()
avec le petit gag que j'obtiens si tu pouvais faire quelque chose !!!

Private Sub CmdBurn_Click()
<snip>

Dim A
If Combo1.Text = "Complet" Then
A = Drive.CDRWErasingTime(False)
Drive.EraseCDRW False
Else
A = Drive.CDRWErasingTime(True)
Drive.EraseCDRW True
End If
''''''''ok il à éffacé tout

''''on voit dans la fenetre qu'il prépare une nouvelle session

'''ici en principe il devrait commencer à graver mais il èjecte le cd

'''''''''''''''''''''''''''''''graver

Set Folder = New NeroFolder
Set Drives = nero.GetDrives(NERO_MEDIA_CDR)
Set Drive = Drives(AvailableDevices.ListIndex)
Set isotrack = New NeroISOTrack
isotrack.Name = Text1.Text
isotrack.RootFolder = Folder

Backup "D:DataTables", Folder

isotrack.BurnOptions = NERO_BURN_OPTION_USE_JOLIET Or
NERO_BURN_OPTION_CREATE_ISO_FS
Drive.BurnIsoAudioCD "", "", False, isotrack, Nothing, Nothing,
NERO_BURN_FLAG_WRITE, 4, NERO_MEDIA_CD
GoTo quit

End If

handle_error:
strMessages = strMessages + Err.Description + Chr(13) + Chr(10) +
nero.LastError
edtMessages = strMessages
quit:
''''''''''''''''''''''''''''''''fin gravure
End Sub



Avatar
lou
bonjour
éffectivement la commande pour l'ouverture du cd ne fonctionne pas pour le
cdrv ce n'est pas grave je vais abandonner l'idée de faire l'effacement et
la gravure en cascade
par contre j'essaie d'afficher un message juste a la fin de l'effacement
j'ai bien trové ce code que j'ai ajouté

Private Sub nero_OnDoneErase(Ok As Boolean)
strMessages = strMessages + "Erasing CD Completed" + Chr(13) + Chr(10)
edtMessages = strMessages
End Sub

j'attends toujours que le message s'affiche
a la fin de l'effacement comme d'habitude il me manque quelque chose je
suis vraiment null
heureusement tu es là !
merci (saint) françois!
lou


"François Picalausa" a écrit dans le message de
news:%
Bonjour/soir,

Il semblerait que l'ejection de CD soit un comportement normal pour


Nero...
On trouve dans la documentation ceci:

NERO_ERASE_MODE_DISABLE_EJECT CD will not be ejected at the end of the
erasing, even if this is recommanded for the selected recorder.

Il est utilisable avec la méthode EraseDisc (et non EraseCDRW)
On peut l'utiliser comme ceci:
EraseDisc [booléen]Effacement rapide?, NERO_ERASE_MODE_DISABLE_EJECT

La ligne
Drive.EraseCDRW True
Serait donc remplacée par
Drive.EraseDisc True, NERO_ERASE_MODE_DISABLE_EJECT

(ou du moins, c'est ce que je suppose car j'ai une mauvais connaissance du
modèle objet de Nero)

Sinon, tu as un Dim A qui dimensionne une variable A en tant que Variant.
Le Variant est par définition lent à l'exécution...
Il est nettement préférable de typer ta variable:
Dim A As Long
Ce sera plus rapide à l'exécution (si sur une opération ça ne se voit pas,
au final, on peut quand même y gagner)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:40320632$0$13245$
> donc voila ce que je cherche à faire si c'est possible
> sur CmdBurn_Click()
> en fait c'est un cd réinscriptible et pour ne pas passer par la
> commande ''éffacer'' avant , j'essaie de metre tout en cascade sur
> la meme commande l'effacement et puis la gravure
> voici le bout de code sur CmdBurn_Click()
> avec le petit gag que j'obtiens si tu pouvais faire quelque chose !!!
>
> Private Sub CmdBurn_Click()
> <snip>
>
> Dim A
> If Combo1.Text = "Complet" Then
> A = Drive.CDRWErasingTime(False)
> Drive.EraseCDRW False
> Else
> A = Drive.CDRWErasingTime(True)
> Drive.EraseCDRW True
> End If
> ''''''''ok il à éffacé tout
>
> ''''on voit dans la fenetre qu'il prépare une nouvelle session
>
> '''ici en principe il devrait commencer à graver mais il èjecte le cd
>
> '''''''''''''''''''''''''''''''graver
>
> Set Folder = New NeroFolder
> Set Drives = nero.GetDrives(NERO_MEDIA_CDR)
> Set Drive = Drives(AvailableDevices.ListIndex)
> Set isotrack = New NeroISOTrack
> isotrack.Name = Text1.Text
> isotrack.RootFolder = Folder
>
> Backup "D:DataTables", Folder
>
> isotrack.BurnOptions = NERO_BURN_OPTION_USE_JOLIET Or
> NERO_BURN_OPTION_CREATE_ISO_FS
> Drive.BurnIsoAudioCD "", "", False, isotrack, Nothing, Nothing,
> NERO_BURN_FLAG_WRITE, 4, NERO_MEDIA_CD
> GoTo quit
>
> End If
>
> handle_error:
> strMessages = strMessages + Err.Description + Chr(13) + Chr(10) +
> nero.LastError
> edtMessages = strMessages
> quit:
> ''''''''''''''''''''''''''''''''fin gravure
> End Sub
>




Avatar
François Picalausa
Bonjour/soir,

je vais abandonner l'idée de faire
l'effacement et la gravure en cascade


Meuh non..
juste remplacer les EraseCDRW par des EraseDisc :-)

Private Sub nero_OnDoneErase(Ok As Boolean)
strMessages = strMessages + "Erasing CD Completed" + Chr(13) + Chr(10)
edtMessages = strMessages
End Sub



Personellement, je ne vois pas cet événement pour un objet Nero mais pour un
objet NeroDrive
Donc:
Private Sub drive_OnDoneErase(Ok As Boolean)
strMessages = strMessages & "Erasing CD Completed" & vbNewLine
edtMessages = strMessages
End Sub

A noter que pour la concaténation (mise bout à bout de deux chaines),
l'opérateur & est plus approprié que l'opérateur +
A noter aussi que vbNewLine et/ou vbCrLf sont des constantes qui ne seront
donc jamais recalculée.
Autant les utiliser à la place des fonctions Chr.
Si toutefois il faut utiliser Chr, autant utiliser leur version rapide, soit
Chr$
Chr(10) est plus lent mais donne le même résultat que Chr$(10) qui est lui
même plus lent mais donne le même résultat que vbCr.
A noter, leur exemple est mal foutu, ils utilisent le + à la place du &, je
leur écrit à ce sujet

j'attends toujours que le message s'affiche



Si l'objet nero ne connait pas l'événement, c'est normal qu'il ne l'effectue
pas...
Espérons qu'avec l'objet Drive....

Mis à part ça, je suis loin d'être un saint et je découvre à peine le modèle
objet de nero :-)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:40330bee$0$13243$
bonjour
éffectivement la commande pour l'ouverture du cd ne fonctionne pas
pour le cdrv ce n'est pas grave je vais abandonner l'idée de faire
l'effacement et la gravure en cascade
par contre j'essaie d'afficher un message juste a la fin de
l'effacement j'ai bien trové ce code que j'ai ajouté

Private Sub nero_OnDoneErase(Ok As Boolean)
strMessages = strMessages + "Erasing CD Completed" + Chr(13) + Chr(10)
edtMessages = strMessages
End Sub

j'attends toujours que le message s'affiche
a la fin de l'effacement comme d'habitude il me manque quelque
chose je suis vraiment null
heureusement tu es là !
merci (saint) françois!
lou


Avatar
Pascal B.
Bonjour, Lou

J'ai aussi récement fait un programme de backup pour CD (vu sa capacité).

Pour le problème de gravure, je l'ai contouné en formatant mes CD-RW avec DirectCD de Roxio.
Ainsi le CD devient utilisable (et ré-utilsable) comme une simple disquette, disque ZIP ou tout autre lecteur.

Il n'y a donc pas code VB spécifique pour la gravure; toute les instructions classiques de traitement de fichiers fonctionnent
(lecture, écriture, copie, suppression, ...)

Pascal



"lou" a écrit dans le message de news:402fdf42$0$785$
| bonjour
| je suis a la recherche du code visual basic pour graver un cd avec NERO
|
| j'ai un exemple mais il ne copie que les fichiers simples
| ce que je voudrais c'est graver un repertoire complet (backup)
| un exemple serait le bienvenu
| MERCI
|
|
Avatar
lou
bonjour françois

pour
juste remplacer les EraseCDRW par des EraseDisc :-)
ça fonctionne j'avais juste fait une faute de frappe

pour
Private Sub drive_OnDoneErase(Ok As Boolean)
strMessages = strMessages & "Erasing CD Completed" & vbNewLine
edtMessages = strMessages
End Sub
ta methode fonctionne aussi

avec tout ça j'ai pu bricoler le backup en question
bien que j'ai pu faire l'éffacement et la gravure sur un seul clic ça
fontionne

le seul truc et je crois que c'est moi qui me suis mal exprimé c'est que
en fait il copie tout les fichiers du repertoie que je lui indique et c'est
déjà tres bien
mais en fait ce que je voulais faire c'est de copier le fameux repertoire
avec sa valise aussi
si tu veux quand j'ai gravé je vais voir sur le cd et la je dois voir la
valise et quand je clique dessus la je dois voir les fichiers en question
c'est ça que je voulais obtenir
tu crois que c'est possible ?

MERCI pour tout
LOU


"François Picalausa" a écrit dans le message de
news:
Bonjour/soir,

> je vais abandonner l'idée de faire
> l'effacement et la gravure en cascade
Meuh non..
juste remplacer les EraseCDRW par des EraseDisc :-)

> Private Sub nero_OnDoneErase(Ok As Boolean)
> strMessages = strMessages + "Erasing CD Completed" + Chr(13) + Chr(10)
> edtMessages = strMessages
> End Sub
>
Personellement, je ne vois pas cet événement pour un objet Nero mais pour


un
objet NeroDrive
Donc:
Private Sub drive_OnDoneErase(Ok As Boolean)
strMessages = strMessages & "Erasing CD Completed" & vbNewLine
edtMessages = strMessages
End Sub

A noter que pour la concaténation (mise bout à bout de deux chaines),
l'opérateur & est plus approprié que l'opérateur +
A noter aussi que vbNewLine et/ou vbCrLf sont des constantes qui ne seront
donc jamais recalculée.
Autant les utiliser à la place des fonctions Chr.
Si toutefois il faut utiliser Chr, autant utiliser leur version rapide,


soit
Chr$
Chr(10) est plus lent mais donne le même résultat que Chr$(10) qui est lui
même plus lent mais donne le même résultat que vbCr.
A noter, leur exemple est mal foutu, ils utilisent le + à la place du &,


je
leur écrit à ce sujet

> j'attends toujours que le message s'affiche

Si l'objet nero ne connait pas l'événement, c'est normal qu'il ne


l'effectue
pas...
Espérons qu'avec l'objet Drive....

Mis à part ça, je suis loin d'être un saint et je découvre à peine le


modèle
objet de nero :-)

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"lou" a écrit dans le message de
news:40330bee$0$13243$
> bonjour
> éffectivement la commande pour l'ouverture du cd ne fonctionne pas
> pour le cdrv ce n'est pas grave je vais abandonner l'idée de faire
> l'effacement et la gravure en cascade
> par contre j'essaie d'afficher un message juste a la fin de
> l'effacement j'ai bien trové ce code que j'ai ajouté
>
> Private Sub nero_OnDoneErase(Ok As Boolean)
> strMessages = strMessages + "Erasing CD Completed" + Chr(13) + Chr(10)
> edtMessages = strMessages
> End Sub
>
> j'attends toujours que le message s'affiche
> a la fin de l'effacement comme d'habitude il me manque quelque
> chose je suis vraiment null
> heureusement tu es là !
> merci (saint) françois!
> lou




Avatar
lou
bonjour françois

pour
juste remplacer les EraseCDRW par des EraseDisc :-)
ça fonctionne j'avais juste fait une faute de frappe

pour
Private Sub drive_OnDoneErase(Ok As Boolean)
strMessages = strMessages & "Erasing CD Completed" & vbNewLine
edtMessages = strMessages
End Sub
ta methode fonctionne aussi

avec tout ça j'ai pu bricoler le backup en question
bien que j'ai n'ai pu faire l'éffacement et la gravure sur un seul clic
ça
fontionne

le seul truc et je crois que c'est moi qui me suis mal exprimé c'est que
en fait il copie tout les fichiers du repertoie que je lui indique et c'est
déjà tres bien
mais en fait ce que je voulais faire c'est de copier le fameux repertoire
avec sa valise aussi
si tu veux quand j'ai gravé , je vais voir sur le cd et là je dois voir la
valise et quand je clique dessus, là je dois voir les fichiers en question
c'est ça que je voulais obtenir
tu crois que c'est possible ?

MERCI pour tout
LOU

et merci a pascal pour ton idée
"Pascal B." <pascbr{_AROBASE_}hotmail{_POINT_}com> a écrit dans le message
de news:
Bonjour, Lou

J'ai aussi récement fait un programme de backup pour CD (vu sa capacité).

Pour le problème de gravure, je l'ai contouné en formatant mes CD-RW avec


DirectCD de Roxio.
Ainsi le CD devient utilisable (et ré-utilsable) comme une simple


disquette, disque ZIP ou tout autre lecteur.

Il n'y a donc pas code VB spécifique pour la gravure; toute les


instructions classiques de traitement de fichiers fonctionnent
(lecture, écriture, copie, suppression, ...)

Pascal



"lou" a écrit dans le message de


news:402fdf42$0$785$
| bonjour
| je suis a la recherche du code visual basic pour graver un cd avec NERO
|
| j'ai un exemple mais il ne copie que les fichiers simples
| ce que je voudrais c'est graver un repertoire complet (backup)
| un exemple serait le bienvenu
| MERCI
|
|




1 2