【UWSC】動画ファイルの再生時間を取得

この記事について

環境Windows、UWSC
目的wmvなどの動画ファイルから再生時間(プロパティの「長さ」)を取得する
結果Shell.ApplicationのGetDetailsOfで詳細情報を取得する

つまずきポイント要約

  • 「長さ」を参照する番号はWindows7なら27、XPなら21

wmvファイルなどの動画ファイルから再生時間を取得するUWSCスクリプト。
動画ファイルのプロパティの詳細タグから見える動画の長さを参照する。

UWSCスクリプト

//エクスプローラの詳細情報を得る
dim o_Shell = CreateOleObj("Shell.Application")
dim s_dir   = get_cur_dir

//このファイルと同じフォルダにあるものとする
dim s_fileName = "目的のファイル.wmv"

//NameSpace(名前空間)でフォルダオブジェクトを作る
dim o_folder = o_Shell.NameSpace(s_dir)

//ParseNameで指定されたアイテムの FolderItem オブジェクトを作成し返す。
//FolderItem とは、フォルダに含まれる個々のファイルやフォルダのこと。
dim o_item  = o_folder.ParseName(s_fileName)

dim i = 27 //長さを参照するための番号 XPなら21

//GetDetailsOfメソッドでフォルダ内のアイテムについて詳細を取得。
dim s_columName = o_folder.GetDetailsOf(emptyparam, i)
dim s_value   = o_folder.GetDetailsOf(o_item, i)
s = i +" : "+ s_columName +" = "+ s_value
print s

sleep(50) //表示時間

もっと他の詳細情報を得たい場合

//エクスプローラの詳細情報を得る
dim o_Shell = CreateOleObj("Shell.Application")
dim s_dir   = get_cur_dir

//このファイルと同じフォルダにあるものとする
dim s_fileName = "目的のファイル.wmv"

//NameSpace(名前空間)でフォルダオブジェクトを作る
dim o_folder = o_Shell.NameSpace(s_dir)

//ParseNameで指定されたアイテムの FolderItem オブジェクトを作成し返す。
//FolderItem とは、フォルダに含まれる個々のファイルやフォルダのこと。
dim o_item  = o_folder.ParseName(s_fileName)

dim i
for i=-1 to 50
  //GetDetailsOfメソッドでフォルダ内のアイテムについて詳細を取得。
  dim s_columName = o_folder.GetDetailsOf(emptyparam, i)
  dim s_value   = o_folder.GetDetailsOf(o_item, i)
  s = i +" : "+ s_columName +" = "+ s_value
  print s
next

sleep(50) //表示時間

関連記事

タイトルとURLをコピーしました