Quemar CD o DVD desde una aplicación de VFP

222 views
Skip to first unread message

Edgar Acevedo

unread,
Feb 11, 2012, 7:28:07 PM2/11/12
to publice...@googlegroups.com, Edgar Acevedo
Estimados amigos:

Tengo problemas con una función que encontré en www.portalfox.com para quemar (grabar) CD's. La función es esta:
FUNCTION GrabarCD(MyCD,vaciar)
  sApp = CREATEOBJECT("Shell.Application")
  sh = CREATEOBJECT("WScript.Shell")
  ns = sApp.NameSpace(17)
  np = ns.ParseName(MyCD)
  np.InvokeVerbEx("Grabar estos arc&hivos en un CD")

  ** Esperamos mientras se activa el asistente
  DO WHILE NOT sh.appactivate("Asistente para grabación de CD")
     WAIT "" TIMEOUT 2
  ENDDO

  MyDateCode = TTOC(DATETIME(),1)
  sh.appactivate("Asistente para grabación de CD")
  sh.SendKeys(MyDateCode)

  sh.appactivate("Asistente para grabación de CD")
  sh.SendKeys("{Enter}")

  DO WHILE sh.appactivate("Asistente para grabación de CD")
    WAIT "" TIMEOUT 5
  ENDDO

  IF vaciar == .T.
    MyTarget = sh.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\CD Burning")
    deltree(MyTarget,.F.)
    RELEASE sh
  ENDIF
ENDFUNC

El problema es que en la parte que dice:

DO WHILE NOT sh.appactivate("Asistente para grabación de CD") WAIT "" TIMEOUT 2 ENDDO
El programa se queda detenido eternamente porque el "Asistente para grabación de CD" jamás llega a aparecer
para poder continuar con el resto de las intrucciones.
¿ Alguien sabe como solventar este problema ¿ Alguien conoce de una mejor función para quemar (grabar) CD's ?

Gracias por su atención, salu2,



Edgar Acevedo



Marco Plaza

unread,
Feb 11, 2012, 9:10:38 PM2/11/12
to Comunidad de Visual Foxpro en Español
Hola Edgar, yo también he buscado, y no hay forma mediante scripting.
Pero tienes un activex que te permite darle a tu aplicacion esa
capacidad ( $119 )

http://www.smart-activex.com/burner/

Saludos

Marco


On 11 feb, 20:28, Edgar Acevedo <aperso...@gmail.com> wrote:
> *Estimados amigos:
>
> Tengo problemas con una función que encontré enwww.portalfox.compara
> quemar (grabar) CD's. La función es esta:
> *
> *El problema es que en la parte que dice:*
>
>   DO WHILE NOT sh.appactivate("Asistente para grabación de CD")
>      WAIT "" TIMEOUT 2
>   ENDDO
> *El programa se queda detenido eternamente porque el "Asistente para
> grabación de CD" jamás llega a aparecer
> para poder continuar con el resto de las intrucciones.
> ¿ Alguien sabe como solventar este problema ¿ Alguien conoce de una
> mejor función para quemar (grabar) CD's ?
>
> Gracias por su atención, salu2,
>
> Edgar Acevedo
>
> *

Edgar Acevedo

unread,
Feb 11, 2012, 9:23:42 PM2/11/12
to publice...@googlegroups.com
Muchas gracias Marco:

Efectivamente, al parecer el asunto no tiene arreglo mediante "Scripting".  Ya arreglé el asunto bajándome un programa gratis para quemar Discos desde la línea de comando.  El programa se llama "Command Burner" y logré al 100% mi objetivo ejecutándolo de forma "invisible" de la siguiente forma:

   #DEFINE SW_SHOW_INVISIBLE 0
   oShell = createobject("WScript.Shell")
   oShell.Run("CMDBURN.EXE burn /d d:\sistema /l BACKUP /eject /hide", SW_SHOW_INVISIBLE, .T. )
   #UNDEF SW_SHOW_INVISIBLE
   RELEASE oShell

La línea de comando es esta:  CMDBURN.EXE burn /d d:\sistema /l BACKUP /eject /hide

Parámetros:
/d  d:\sistema  ------->  Quiero quemar el directorio (o carpeta)   d:\sistema   y TODO su contenido
/l  BACKUP     ------->  La etiqueta del Disco a quemar será la palabra  BACKUP
/eject              ------->  Expulsar el disco al terminar de quemar
/hide               ------->  Ocultar la interface del programa  CommandBurner

Gracias por tu ayuda...!!!


Edgar

Marco Plaza

unread,
Feb 11, 2012, 9:47:56 PM2/11/12
to Comunidad de Visual Foxpro en Español

El control que recomendé es un wrapper de IMAPI. IMAPI se puede
programar directamente desde vfp/c/vbasic. A los que les interese la
idea de tener una librería de vfp para grabar cd/dvd y tengan el
tiempo chequeen este link:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa364817%28v=vs.85%29.aspx#discrecorder

y este artículo incluso tiene un proyecto completo en c# que se puede
descargar para grabar cds/dvds.Resulta curioso que los usuarios
de .Net necesitan usar Com-Interop para poder usar el control IMAPI2
que nosotros desde vfp podemos usar directamente, así que creo que
será cosa de tener tiempo para meterle al asunto... Alguien que quiera
'meterle el ojo' y adaptarlo para vfp.?

http://www.codeproject.com/Articles/22538/Burning-CD-DVD-Media-with-the-Image-Mastering-API

Saludos.

Marco

Marco Plaza

unread,
Feb 11, 2012, 9:50:53 PM2/11/12
to Comunidad de Visual Foxpro en Español
Uff que bueno edgar, comparte el link para bajar el command burner!

Marco

On 11 feb, 22:47, Marco Plaza <stmapw...@gmail.com> wrote:
> El control que recomendé es un wrapper de IMAPI. IMAPI se puede
> programar directamente desde vfp/c/vbasic. A los que les interese la
> idea de tener una librería de vfp para grabar cd/dvd y tengan el
> tiempo chequeen este link:
>
> http://msdn.microsoft.com/en-us/library/windows/desktop/aa364817%28v=...
>
> y este artículo incluso tiene un proyecto completo en c#  que se puede
> descargar para grabar cds/dvds.Resulta curioso que los usuarios
> de .Net necesitan usar Com-Interop para poder usar el control IMAPI2
> que nosotros desde vfp podemos usar directamente, así que creo que
> será cosa de tener tiempo para meterle al asunto... Alguien que quiera
> 'meterle el ojo' y adaptarlo para vfp.?
>
> http://www.codeproject.com/Articles/22538/Burning-CD-DVD-Media-with-t...

Marco Plaza

unread,
Feb 11, 2012, 9:55:41 PM2/11/12
to Comunidad de Visual Foxpro en Español
Olvídalo, no hubiese sospechado que sería "www.commandburner.com"

Gracias.. lo tendremos para la caja de herramientas.

Marco
Reply all
Reply to author
Forward
0 new messages