2011年10月10日月曜日

WSH Panel Modとコンソールアプリケーションとの通信(その弐)

http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh12/cformwsh12_01.html

 

先程はこちらの自作のコンソールアプリケーションを起動させたが、それではそのコンソールアプリケーションがないと同じ事はできない。

なのでWindows環境に備わっている様々なコンソールアプリケーションを使ったちょっとした遊びをしてみたい。

 

1.ipconfigをcmd(コマンドプロンプト)から利用する。

   1:  Set objShell = CreateObject("WScript.Shell")
   2:  Set objExec = objShell.Exec("cmd")
   3:  objExec.StdIn.WriteLine("ipconfig")
   4:  objExec.StdIn.WriteLine("exit")
   5:  fb.trace(objExec.StdOut.ReadALL)
   6:  set objExec = Nothing
   7:  set objWshShell = Nothing

<出力>

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

Z:\Softs\foobar2000>ipconfig

Windows IP 構成


イーサネット アダプター ローカル エリア接続:

接続固有の DNS サフィックス . . . :
リンクローカル IPv6 アドレス. . . . :*********************
IPv4 アドレス . . . . . . . . . . : 192.0.2.************
サブネット マスク . . . . . . . . : 255.255.255.0
デフォルト ゲートウェイ . . . . . : 192.0.2.***********

(以下長いので略)

Z:\Softs\foobar2000>exit

WSH Panel Mod ({92ADAD72-1759-42F5-819D-086BE7D74174}): initialized in 140 ms

 

2.再生中のファイルのパスのディレクトリ構造を取得

表示例(タイムリーなネタをひとつ)

   1:  function on_playback_new_track(metadb)
   2:      get_dir_stract
   3:  end function
   4:   
   5:  function get_dir_stract
   6:      Set objShell = CreateObject("WScript.Shell")
   7:      Set objExec = objShell.Exec("cmd")
   8:      objExec.StdIn.Writeline("dir "+""""+fb.TitleFormat("$directory_path(%_path%)").Eval(true)+"""")
   9:      objExec.StdIn.Writeline("exit")
  10:      fb.trace("再生中の楽曲のディレクトリ構造")
  11:      fb.trace(objExec.StdOut.ReadALL)
  12:      set objExec = Nothing
  13:      set objWshShell = Nothing
  14:  end function

<出力>

再生中の楽曲のディレクトリ構造
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.

Z:\Softs\foobar2000>dir "Z:\*****************動画投稿サイト\バカヤロイド"
ドライブ Z のボリューム ラベルは*******です
ボリューム シリアル番号は *********です

Z:\*****************動画投稿サイト\バカヤロイド のディレクトリ

2009/12/06 15:21 <DIR> .
2009/12/06 15:21 <DIR> ..
2009/10/18 13:01 3,548,047 Death Note Mix - 夜神月でアッーウッウッイネイネ【デスノートMIX】.mp4
2009/10/18 05:54 31,864,141 【MAD】サ_ザエで_すのさん【3】.flv
2009/10/18 12:54 1,914,546 【デスノート】 マツダ電機 【ヤマダ電機】.mp4
2009/10/19 02:17 9,518,371 【バナナロイド】 この木なんの木マツダの木 【この木なんの木】.mp4
2009/10/18 06:03 96,689,755 【年刊】バカヤロイドランキング【夜神月】.flv
2009/09/22 01:07 25,619,028 【新世界の神MAD】キラキラ動画流星群【高画質版】.flv
2009/10/19 02:12 4,060,479 【音MAD】マツダマツダをウメハラ電波実況に歌わせてみたぁーー!!.mp4
2009/10/18 12:52 6,000,703 きら☆すたOP-書いてけ!デ_スノー_ト-【ボーカライトinらき☆すた】luckystar-deathnote.mp4
2009/09/20 08:43 9,213,253 となりのマツダED「さんぽ」【バカヤロイド】.mp4
2009/10/19 02:09 12,384,939 マツダと神デレラ.mp4
2009/10/18 12:57 7,328,672 夜神月がドラえもんのうたを歌うようです.flv
2009/10/08 07:54 5,621,231 抹殺特区まっつぁんつぁん【バナナロイド×サンドキャニオン】.mp4
2009/10/18 12:56 3,622,641 新世界っていいな.mp4
2009/10/18 05:43 10,989,442 松田BAKAYA RONE【バナナロイド×RED ZONE】.mp4
14 個のファイル 228,375,248 バイト
2 個のディレクトリ 155,253,100,544 バイトの空き領域

Z:\Softs\foobar2000>exit

"dir "+""""+fb.TitleFormat("$directory_path(%_path%)").Eval(true)+""""

この""""は一体何なんだという人はエスケープ文字で検索すると幸せになれるかも。

コマンドライン系でなんかうまく行かなかいなあと思ったときには、これでパスの入った文字列を囲んでやると幸せになれる。

(パス 空白)あたりで検索すればより幸せになれるかも。(まず最初にこいつを調べてからエスケープ文字について調べたほうが理解しやすいかもね)

んで地味にPowershellが使えたりするからすごい。



0 件のコメント:

コメントを投稿