ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Ecrire des CDs   



L'auteur

Gregory Adam
Belgique Belgique
Membre Actif (personne physique)
# 0000001121
enregistré le 04/06/2006

Fiche personnelle


Note des membres
15/20
1 vote


Contributions > 05 - API et appels systèmes

Ecrire des CDs
# 0000000487
ajouté le 21/10/2007 14:04:36 et modifié le 24/01/2008
consulté 9613 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0


Télécharger le ZIP (2.91 Ko)
Description

Est-il possible d'ecrire des cd, pour distribuer un logiciel par exemple ?

Oui - mais pas de musique (audio)

Characteristiques

  • Effacer un cd (Media_erase)
  • Ecrire un cd data a partir d'un repertoire sur disque
    • FileSystem: ISO, Joliet, UDF
  • Ecrire une image telechargee (.img ou .iso)

Il doit y avoir encore d'autres possibilites - mais j'ai arrete de chercher - tout ce que je voulais etait d'automatiser le processus d'ecriture

Version OS:  Vista ou XP SP2

 

Code source :
&& exemples

         set proc to cd_writer additive

  local obj

  && Erase
  do case
  case !cd_writer_Object(@m.obj)
    && error
  case !m.obj.Media_Erase('Q:\')
    && error
  endcase

  && make CD with FileSystem
  local FileSystem
  && FileSystem = 1 && ISO
  && FileSystem = 3 && ISO + Joliet extensions
  && FileSystem = 4 && UDF

  && default FileSystem = Joliet

  do case
  case !cd_writer_Object(@m.obj)
    && error

  case !m.obj.DiskPath_Burn('\tmp\Adam''Q:\''CouCou', m.FileSystem)
    && error
  endcase

  && burn image
  do case
  case !cd_writer_Object(@m.obj)
    && error
  case !obj.Image_Burn('D:\tmp\In\Beta2ExpresssComboDVD.img''Q:\')
    && error
  endcase
Commentaires
le 21/10/2007, Jean à Grenoble a écrit :
En fait, on pourrait de la même manière automatiser une sauvegarde sur CD. Non ?

et petite question : pourquoi effaces-tu le CD. C'est a priori rare d'envoyer des maj sur disque reinscriptible ?

Jean à Grenoble

le 22/10/2007, Gregory Adam a écrit :
Jean,

(1) Oui pour la sauvegarde
(2) Ce sont trois exemples differents. Pour la sauvegarde je vais combiner le premier et le second. Pour la distribution je prendrai le deuxieme.

Note: J'ai vu que l'on peut automatiser InstalllCreator. Je fais un build exe, puis cree un nouvel Install.exe, et puis je cree le cd. Il ne me reste plus qu'a automatiser Word pour imprimer le label du cd

le 22/10/2007, FredA a écrit :
Salut,
T'es tu interressé au mode multi sessions sur DVD?
IMAPI2 permet la gravure sur DVD dans ce mode. Je n'ai pas cherché trop longtemps et je n'ai pas réussi à le mettre en oeuvre...
Ca fonctionne en VBScript mais pas en VFP ni en VB...

le 22/10/2007, Gregory Adam a écrit :
J'ai rencontre des problemes a mettre tout en vfp
Le CreateResultImage().ImageStream retourne un objet. Si on le fait en vfp pour ensuite passer cet objet a objDataWriter.Write(), le DataWriter donne une erreur.


Cet objet est pourtant un Stream. Mais aucune methode Stream ne marche si on le fait en vfp.
( je voulais ne pas utitilser des vbs - mais parfois il le faut)

Reponse a ta question : non. Je suis deja tres heureux qu'apres 3 jours je peux faire un cd. Le truc devrait marcher sur DVD aussi
Un jour...

le 22/10/2007, FredA a écrit :
Donc ça ne venait pas de moi. Merci.
Par contre, je me demande si "l'obet" retourné est vraiment un stream. Je pencherais plutot pour un array de stream...sous la forme d'un safearray...

le 22/10/2007, Gregory Adam a écrit :
Je ne sais pas. Toute methode sur cet objet en vfp dit que l'objet stream est 'corrupt'. J'ai fait des recherches sur msdn - parait que c'est un stream 'special'

Mais tu auras sans doute raison (http://msdn2.microsoft.com/en-us/library/aa365638.aspx)
[out] IStream** pVal && double * !

le 26/10/2007, Olivier Hamou a écrit :
Je ne sais pas si cela peut t'aider pour manipuler l'object
mais il est des fois necessaires en vfp
de rajouter le mot OBJECT
C'est à dire objDataWriter.OBJECT.Write()
(j'ai decouvert cela avec DBI)
Et aussi ajouter autoyield= false.

Olivier

le 27/10/2007, Gregory Adam a écrit :
Non, Olivier,

DataWriter.object n'existe pas.
Je n'ai jamais mis AutoYield a FALSE

Le probleme n'est pas la.
Le probleme est apparemment que FileSystem.CreateResultImage().ImageStream retourne un pointeur vers un tableau de pointeurs d'objets. La, vfp est confondu, et ne passe pas cet argument a DataWriter.Write() comme il le faut

vbs le fait bien dans ce cas-ci

(m.Recorder_Obj.VolumePathNames retourne un tableau qui est bien gere par vfp)

Mais finalement, j'ai reussi a automatiser mon processus de creation de CDs
- imprimer l'etiquette
- creer un exe avec CreateInstall
- ecrire sur CD

Note pour Jean: Je ne fais plus de sauvegarde sur CD. Je me suis achete 3 disques USB de 300 Gigas chacun ( a 100 EUR piece ). C'est plus agreable comme-ca


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2025.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3