2017-07-29 4 views
0

ショートカットパスを取得するVBSブラウズ機能を探しています。残念ながら、私が試したすべてのブラウズ機能は、フォルダパスだけを取得しましたが、ショートカットパスは取得できませんでした。私はダイアログ内のショートカットを見ることができますが、そのパスを取得することはできません。ショートカットパスの検索Vbs

この種の機能を持つ人はいますか?

strComputer = "." 
Const ALL_OPTIONS = &H4000 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set objShell = CreateObject("Shell.Application") 
Set objFolder = objShell.BrowseForFolder (0, "Select a folder:",ALL_OPTIONS,(16)) 

If objFolder Is Nothing Then 
    Wscript.Quit 
Else 
    Set objFolderItem = objFolder.Self 
End If 

objPath = objFolderItem.Path 

この関数は、実際のフォルダパスを提供しますが、私はそれでショートカットを選択すると、それはnullを返します。

フォルダ機能の参照でショートカットパスを取得するにはどうすればよいですか?

+0

、あなたの特定の問題についての詳細を説明してください。 – GTAVLover

答えて

0

ファイルまたはフォルダオブジェクトの.ShortPathプロパティを使用します

Option Explicit 

Dim goFS : Set goFS = CreateObject("Scripting.FileSystemObject") 
Dim f 
Set f = goFS.GetFolder(".") : WScript.Echo f.Path, f.ShortPath 
Set f = goFS.GetFile(WScript.ScriptFullName) : WScript.Echo f.Path, f.ShortPath 

出力:

cscript //nologo "45388073-pi pa po.vbs" 
C:\Users\eh\work C:\Users\eh\work 
C:\Users\eh\work\45388073-pi pa po.vbs C:\Users\eh\work\453880~1.VBS 

更新WRTのコメント:与えられた

objPath = objFolderItem.Path ' it's a string not an object! 

sShortPath、およびgoFSは、実行します。私は何を理解することはできません

sShortPath = goFS.GetFolder(objPath).ShortPath 
+0

私はもう少し説明を加えました。 –

関連する問題