SQLの窓

2014年03月12日


VBScript : ファイルやフォルダを右クリックすると表示されるコマンド文字列の一覧を取得して、それを使ってコマンドを実行する


Set Fso = CreateObject( "Scripting.FileSystemObject" )
Set objShell = CreateObject("Shell.Application")
strTarget = Wscript.Arguments(0)
strPath = Fso.GetParentFolderName(strTarget)
strFile = Fso.GetFileName(strTarget)

Set objFolder = objShell.NameSpace(strPath)
Set objFile = objFolder.ParseName(strFile)

Set obj = objFile.Verbs
For i = 0 To obj.Count - 1
	Wscript.Echo obj.item(i).Name
Next

※ 何故か空白のエントリも表示されます。

開く(&O)
編集(&E)
コマンド プロンプトで開く(&W)
印刷(&P)


ウイルススキャン...





切り取り(&T)
コピー(&C)
ショートカットの作成(&S)
削除(&D)
名前の変更(&M)
プロパティ(&R)
Wscript.Echo で出力しているので、コマンドラインでは以下のようにします >cscript ListVerb.vbs "対象ファイルのフルパス" 以下は実行用のスクリプトで以下のようにして実行します InvokeVerb.vbs "対象ファイルのフルパス" "開く(&O)" ※ プロパティの表示は、以下を参照して下さい VBScript : プロパティダイアログを表示する
Set Fso = CreateObject( "Scripting.FileSystemObject" )
Set objShell = CreateObject("Shell.Application")
strTarget = Wscript.Arguments(0)
strPath = Fso.GetParentFolderName(strTarget)
strFile = Fso.GetFileName(strTarget)

Set objFolder = objShell.NameSpace(strPath)
Set objFile = objFolder.ParseName(strFile)

For Each objItem In objFile.Verbs

	if objItem.Name = Wscript.Arguments(1) then
		objItem.DoIt()
		Exit For
	end if

Next

objFile.InvokeVerb( "コマンド名" ) は現在動作しないようです



タグ:SHELL
posted by lightbox at 2014-03-12 09:29 | VBS + Shell | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり