SQLの窓 イラストAC フリー素材

2014年04月17日

VBScript : 拡張子との関連付けでアプリケーションを起動する

コマンドプロンプト内のコマンドの start コマンドを使用して、カレントディレクトリにあるファイルを実行します。但し、コマンドプロンプトが開かないように、WshShell.Run に第二引数を 0、第三引数を同期実行として true に設定しています。
Set WshShell = CreateObject( "WScript.Shell" )
Call WshShell.Run( "cmd.exe /c start " & "ProcessList.htm",0, true )

rundll32.exe shell32.dll,ShellExec_RunDLL を使用して拡張子と関連付けられたアプリケーションを使用します。但し、対象となるファイルが絶対パスである必要があるので、コマンドプロンプトの特性を利用してカレントディレクトリのパスを付加しています。
Set WshShell = CreateObject( "WScript.Shell" )
Call WshShell.Run( "cmd.exe /c rundll32.exe shell32.dll,ShellExec_RunDLL ""%CD%\ProcessList.htm""",0, true )

rundll32.exe shell32.dll,ShellExec_RunDLL を使用しています。一つ前と同じですが、絶対パスの付加方法として、FOR コマンドを利用しています。
Set WshShell = CreateObject( "WScript.Shell" )
Call WshShell.Run( "cmd.exe /c FOR /F %i IN ('ProcessList.htm') DO rundll32.exe shell32.dll,ShellExec_RunDLL ""%~fi""",0, true )

rundll32.exe shell32.dll,ShellExec_RunDLL を使用していますが、絶対パスを付加する為の情報を、VBScript 内で取得するので、実行時にコマンドプロンプトを使用していないので、WshShell.Run の引数はコマンドのみです。
Set WshShell = CreateObject( "WScript.Shell" )
Call WshShell.Run( "rundll32.exe shell32.dll,ShellExec_RunDLL " & """" & WshShell.CurrentDirectory & "\ProcessList.htm""" )





【VBScriptの最新記事】
posted by at 2014-04-17 23:38 | VBScript | このブログの読者になる | 更新情報をチェックする


Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX