2014年2月10日月曜日

パスをあふw(Afxw)で開く(File URI Scheme対応版)

引数で与えたパスをあふwで開くvbs。今日、少し手を加えたのでpostしておく。
元ネタは、何年も前にどこかから拾ったもの(2chのあふスレかな? ググったけど出てこなかった)。
あふwこまんど使用。
あふwこまんどは(というか、あふw自体が)ローカルパスとUNCパスは開けるけどfile URI Scheme(file:///)が開けなかったので、その考慮を付け加えたもの。
あふw 及び あふwこまんど のインストール先が"%APP%\afxw\"であることが動作条件。環境によって27~29行目を書き換えてもらえばよいかと思う。

Everythingの「規定のファイラーでパスを開く」に登録しておいたり、ブラウザやメーラーの"file:///"のコンテキストメニューに追加したりすると便利なんではないかと思う。
' Open with Afxw.vbs
' ver.1.1 dsp74118
' Description: Open path(Local path/UNC path/URI) with Afxw
' Requirement: あふこまんど(AFXWCMD.EXE) is installed in %APP%\afxw\
' args:
'  path string
Option Explicit

'Function UrlDecode
' Description: Decode UTF8-Encoded-URI
' args:
'  strSource: Encoded URI string
' return:
'  Decoded URI String
Function URLDecode(strSource)
 Dim objSC
 Set objSC = CreateObject("ScriptControl")
 objSC.Language = "Jscript"
 URLDecode = objSC.CodeObject.decodeURIComponent(strSource)
 Set objSC = Nothing
End Function

' main
On Error Resume Next
Dim wshShell
Dim app, afx, opt, quoteChar, SPC, YEN
Set wshShell = WScript.CreateObject("WScript.Shell")
app = wshShell.ExpandEnvironmentStrings("%APP%")
afx = app & "\afxw\AFXWCMD.EXE"
opt = "-p"
quoteChar = """"
Dim path, arg, runCmd
Set arg = WScript.Arguments
If arg.Count = 0 Then
 WScript.Quit
End If
path = arg(0)
' convert URI(file scheme) to UNC
If Left(path, 8) = "file:///" then
 path = Right(path, Len(path) - 8)
 path = URLDecode(path)
End If
runCmd = quoteChar & afx & quoteChar & " " & opt & quoteChar & path & quoteChar
wshShell.Run(runCmd)

0 コメント:

コメントを投稿