掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
デジカメ画像の撮影日時を秒まで取得 (ID:27609)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
2ヶ月以上たっているので読んでもらえるかどうかわかりませんが 自分の名前が出てきてたのと、秒まで取得できることを確認できたので 報告しておきます。 確かに http://www.geocities.jp/fjtkt/problems/2006_0019.html のやり方だと分までしか取れません。(2007/03/31 12:53 のように) ただ、 http://www.geocities.jp/fjtkt/problems/2006_0020.html の方法で、 SCID に http://www.geocities.jp/fjtkt/problems/2006_0021.html の「写真の撮影日」にあたる {F29F85E0-4FF9-1068-AB91-08002B27B3D9} 12 を指定してやると秒まで取れます。 こちらの環境は WindowsXP Home + WindowsUpdate全部 Delphi6 Personal 全パッチ適用済み です。 (先ほどと同じ写真に対して実行すると 2007:03:31 12:53:42 のように) 以下テストしたソースです。 ボタンをクリックすると、実行ファイルの入っているフォルダの中のすべての ファイルに対して撮影日を調べます。 ファイル数が多いフォルダの中では実行しないほうが良いと思います。 どうでしょうか? uses ComObj; procedure TForm1.Button1Click(Sender: TObject); var Shell: OleVariant; Folder: OleVariant; FolderItems: OleVariant; ItemCount: Integer; i: Integer; FolderItem: OleVariant; SCID: String; Value: OleVariant; begin // Shellオブジェクト取得 Shell := CreateOleObject('Shell.Application'); // 起動フォルダのFolderオブジェクト取得 Folder := Shell.NameSpace(OleVariant(ExtractFilePath(ParamStr(0)))); // その全てのアイテムにアクセスするためのFolderItemsオブジェクト取得 FolderItems := Folder.Items; // アイテム数 ItemCount := FolderItems.Count; // 順番に for i := 0 to ItemCount - 1 do begin // アイテム取得 FolderItem := FolderItems.Item(i); // 拡張プロパティを取り出すための引数 SCID := '{F29F85E0-4FF9-1068-AB91-08002B27B3D9} 12'; // 拡張プロパティの値を取り出す Value := FolderItem.ExtendedProperty(SCID); // いろんな形式があるので文字列に変換して表示 Memo1.Lines.Add('[写真の撮影日] ' + VarToStr(Value)); end; // 解放 FolderItem := Unassigned; FolderItems := Unassigned; Folder := Unassigned; Shell := Unassigned; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.