Fecha de captura de una foto - VBA

Resuelto
jean pétévé -  
pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   -
Hola,

¿Cómo extraer la fecha de toma de una foto con VBA?

Con las propiedades del objeto Folder (DateCreated, dateLastModified, Datelastaccessed -
cf http://www.commentcamarche.net/contents/vbscript/vbs-folder.php3)
puedo extraer las fechas de creación y modificación del archivo, pero no la fecha de la toma.

Además,
1/ en las propiedades de la foto (.jpg), en la pestaña Detalles:
* la fecha de toma está en el capítulo "Origen"
* la fecha de creación y la fecha de modificación están en el capítulo "Archivo"

2/ las fotos fueron tomadas con 2 dispositivos diferentes
* de marca CANON (foto guardada en la computadora a través de la tarjeta de memoria),
en este caso la fecha de toma es la misma que la fecha de creación del archivo (por lo tanto, no tengo problema)
* de marca SONY (foto guardada en la computadora desde el dispositivo a través de un cable),
en este caso
la fecha de toma es la fecha en la que se tomó la foto
la fecha de creación del archivo es la fecha en la que se guardó la foto en la computadora

Gracias de antemano

Configuración: Windows Vista / Firefox 5.0

3 respuestas

  1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
     
    Hola,
    Es posible listar las propiedades contenidas en la pestaña de resumen:
    <Mis fuentes>
    !!!¡Activa la referencia: "Microsoft Shell Controls and Automation"!!!
    En VBE: Herramientas/Referencia
    Sub ListeProprietesFichiers_getDetailsOf() 'fuente: 'http://www.microsoft.com/resources/documentation/windows/2000/server/ 'scriptguide/es-es/sas_fil_lunl.mspx ' 'Requiere activar la referencia Microsoft Shell Controls and Automation ' Dim objShell As Shell32.Shell Dim strFileName As Shell32.FolderItem Dim objFolder As Shell32.Folder Dim Resultado As String, Respuesta As String Dim i As Byte Set objShell = CreateObject("Shell.Application") 'Directorio objetivo Set objFolder = objShell.nameSpace("C:\Documents and Settings\michel") 'bucle sobre todos los elementos del directorio For Each strFileName In objFolder.Items 'Para que las carpetas no sean tenidas en cuenta If strFileName.isFolder = False Then Resultado = "" For i = 0 To 34 If objFolder.getDetailsOf(strFileName, i) <> "" Then _ Resultado = Resultado & objFolder.getDetailsOf(objFolder.Items, i) _ & ": " & objFolder.getDetailsOf(strFileName, i) & vbLf Next Respuesta = MsgBox(Resultado & vbLf & vbLf & "¿Quieres continuar?", vbYesNo) If Respuesta = vbNo Then Exit Sub End If Next End Sub

    A ADAPTAR: la ruta de acceso a tu directorio.
    Prueba y dime si lista las propiedades correctas... dudo, pero...
    --
    Atentamente,
    Franck P
    0
  2. jean pétévé
     
    Gracias pijaku, era justo lo que necesitaba.

    Al añadir los índices en el cuadro de mensaje, pude encontrar el de la propiedad que me interesa.
    0
    1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      Si tienes alguna dificultad para listar eso en Excel, no dudes en decírmelo.

      P.D.: menos mal que encontraste la propiedad correspondiente porque de lo contrario, el método habría sido mucho más arduo...
      0
  3. lvlat Mensajes publicados 1 Estado Miembro
     
    Hola, en caso de que aún sigas este hilo: yo también utilizo este fragmento de código, solo que en mi cuadro de diálogo me encuentro con
    Año: Año
    Nombre: Nombre
    etc.

    ¿Por qué no tengo los valores después de los : ? Sin embargo, hice un fiel copiar/pegar...

    Gracias.
    0
    1. pijaku Mensajes publicados 13513 Fecha de registro   Estado Moderador Última intervención   2 773
       
      Hola,
      No tengo absolutamente ni idea de por qué...

      también estoy usando este fragmento de código ¿Con qué tipos de archivos?
      0