DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ファイル作成者の取得

環境/言語:[Windows2K VB.Net]
分類:[.NET]

VB初心者なのでなかなかやりたいことができなくて、やきもきしています。

EXCELファイル等のMS-Officeで作成したファイルアイコンの上にポインタを持っていくと、
┌──────────────────────────┐
│種類:Microsoft Excel ワークシート │
│作成者:○○○                   │          
│サイズ:180 KB                │
└──────────────────────────┘
といった物が表示されると思うのですが、

ここに表示されている作成者の値を取得したいのですが、この値を取得することは可能なのでしょうか?

属性やファイルサイズの取得はわかったのですが、作成者の取得については、どのようにしたらよいのかわからないので、教えてください。
> EXCELファイル等のMS-Officeで作成したファイルアイコンの上にポインタを持ってい> ここに表示されている作成者の値を取得したいのですが、この値を取得することは可能なのでしょうか?
> 属性やファイルサイズの取得はわかったのですが、作成者の取得については、どのようにしたらよいのかわからないので、教えてください。


Officeで作成されたファイル限定でしたら、簡単な方法があります。
オートメーションでOfficeアプリを一旦起動してBuiltinDocumentProperties
を使用する方法です。こちらが参考になります。
http://support.microsoft.com/default.aspx?scid=kb;ja;303294

一方、Officeで作成されたファイル限定でない場合は少々面倒です。
基本的に作者等の情報が保存できるのはNTFSにより提供されている機能
なので、2000、XPなどでは取得できますが、98などでは取得できません。
方法の概略は以下のようになります。

まずStgOpenStorage関数を使ってIStorageを取得し、
IPropertySetStorageのOpenメソッドを使用して、
IPropertyStorageを取得します。
あとは、このReadMultipleメソッドを使用して目的のファイルプロパティを
取得します。

簡単そうに見えますが、IStorageをはじめとするCOM相互運用に
必要なインターフェイス等はすべて自前で宣言する必要があります。
結構骨の折れる作業になりそうです。(^^;
■No6627に返信(antさんの記事)


> Officeで作成されたファイル限定でしたら、簡単な方法があります。
> オートメーションでOfficeアプリを一旦起動してBuiltinDocumentProperties
> を使用する方法です。こちらが参考になります。
> http://support.microsoft.com/default.aspx?scid=kb;ja;303294

一旦、上記を参考にしてやったみたいと思います。


> まずStgOpenStorage関数を使ってIStorageを取得し、
> IPropertySetStorageのOpenメソッドを使用して、
> IPropertyStorageを取得します。
> あとは、このReadMultipleメソッドを使用して目的のファイルプロパティを
> 取得します。
>
> 簡単そうに見えますが、IStorageをはじめとするCOM相互運用に
> 必要なインターフェイス等はすべて自前で宣言する必要があります。

なかなか、初心者には難しいようなので、もう少し勉強してから、こちらの方は試してみたいと思います。
ありがとうございました。

DOBON.NET | プログラミング道 | プログラミング掲示板