[リストへもどる]
一括表示

投稿時間:2003/10/29(Wed) 09:47
投稿者名:ちり
Eメール:
URL :
タイトル:
写真の撮影日の所得
XPのエクスプローラの詳細表示で、
デジカメの撮影日が表示されるのですが、
あの日時は所得できないのでしょうか?

FindFirstFile を使って ftCreationTime を調べても、
更新日時しか所得出来ませんでした。
その他のAPIを使ったほうが良いのでしょうか?

winXP(sp1) , vb6(sp5)

投稿時間:2003/10/29(Wed) 10:38
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: 写真の撮影日の取得
MicroSoft Shell Controls And Automation を使用すれば可能です。
その他の項目も35項目ほど取得できます。

投稿時間:2003/10/29(Wed) 18:28
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^2: 写真の撮影日の取得
回答ありがとうございました。
使ったことないものなのですが、
方向性が分かったので、いろいろ勉強してみます。

投稿時間:2003/10/29(Wed) 19:17
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: 写真の撮影日の取得
撮影日だけならnobuさんが投稿されていたのですがファイルの更新日時と同じようです。

とりあえず下記を試して見て下さい。
Private Sub Command1_Click()
    Dim ObjShell   As Object
    Dim ObjFolder  As Object
    Dim myText     As String
    Dim i          As Long
    Dim FolderName As Variant
    FolderName = "c:\"
    Set ObjShell = CreateObject("Shell.Application")
    'ファイルが存在するフォルダを指定(※Variant型を指定して下さい)
    Set ObjFolder = ObjShell.NameSpace(FolderName)
    For i = 0 To 34
        myText = myText & i & "  " & ObjFolder.GetDetailsOf(, i) & "=" _
        & ObjFolder.GetDetailsOf(ObjFolder.ParseName("test.jpg"), i) & vbCrLf
    Next
    MsgBox myText
End Sub

※ 通常のようにString型の変数を使ったらだめだったので変数で使用できないと
  思っていたら No.6443の投稿で教えて頂いたのを修正しておきます。

投稿時間:2003/10/29(Wed) 23:40
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: 写真の撮影日の取得
>     'ファイルが存在するフォルダを指定(変数ではだめです。)
>     Set objFolder = objShell.NameSpace("c:\")

いえ、変数でもOKだと思いますよ。
引数に指定できる物としては、例えば下記のような物があります。

 ・Folderオブジェクト
  ・FolderItemオブジェクト(IsFolderプロパティがTrueを返す場合のみ)
  ・Variant型(内部形式は String, Long, Integerのいずれか)

この時、未対応のデータ型を指定してしまうと、NameSpaceメソッドから
Nothingが返される(またはエラーになる)ので、その点は注意が必要ですね。
(Script対応のオブジェクトという事もあり、基本的にはVariant型を指定する事になるでしょう)


なお、ここにString型の変数を指定したい場合は、
    Set objFolder = objShell.NameSpace(Path)
ではなく、
    Set objFolder = objShell.NameSpace((Path))
または
    Set objFolder = objShell.NameSpace(CVar(Path))
または、
    Dim V As Variant
    V = Path
    Set objFolder = objShell.NameSpace(V)
などとして、Variant型への変換を伴うように指定すればOKです。

投稿時間:2003/10/30(Thu) 00:32
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: 写真の撮影日の取得
フォローありがとうございます。
通常のようにString型で指定していたらだめだったので、深く考えずそのまま使用して
いましたが、Variant型にすればできたのですね、勉強になりました。

投稿時間:2003/10/30(Thu) 08:50
投稿者名:ちり
Eメール:
URL :
タイトル:
Re^6: 写真の撮影日の取得
サンプルまで作っていただき本当にありがとうございました。
しかし、内部ではString型を使っているのに、
Variant型じゃないと受け付けないってのも面白いですね。
vbってホント奥が深いです。がんばります。