【问题标题】:get the target path from a nethood link从网络链接获取目标路径
【发布时间】:2013-07-22 17:57:18
【问题描述】:

假设我有一个指向名为“BLABLA”的文件夹的网络链接,目标路径是“\\servername\temp”

如何获取目标路径的字符串? 我试过了:

Set oShell = CreateObject("WScript.Shell")
Const NET_HOOD = &H13&
Set oShApp = CreateObject("Shell.Application")
sNetHood = oShApp.NameSpace(NET_HOOD).Self.Path
Set oShortCut = oShell.CreateShortcut(sNetHood & "\" & "BLABLA" & ".lnk")

MsgBox "> " & oShortCut.TargetPath

它做所有事情,甚至创建一个没有任何错误的 oShortCut 对象。 但是,它不会返回

oShortCut.TargetPath

我做错了什么?

我希望它返回:“\\servername\temp\BLABLA”
提前感谢您的任何建议!

我在win 7下创建了快捷方式,在资源管理器的计算机视图中右键单击,然后>添加网络位置>下一步...等。它创建了一个文件夹,表示 NetHood 中的快捷方式到服务器上的路径...它就像一个映射的共享,但不是真的。

【问题讨论】:

  • 顺便说一句。只读方法 oShortCut.FullName 就像一个魅力......返回完全无用的链接相对路径
  • 在 SO esp 上看看那个。第二个答案是 Win32_LogicalDisk stackoverflow.com/questions/7336685/…
  • 只返回映射的共享...而不是文件夹快捷方式的目标路径

标签: vbscript hyperlink shortcut filepath absolute-path


【解决方案1】:

感谢您的输入...经过多年的阅读,然后再次检查谷歌,我找到了我写到 vbs 中的 ac# 代码,然后简化只是为了看到我最终必须改变的是添加这个:

.GetLink

所以我的问题的解决方案是:

Const NET_HOOD = &H13&
Set oShell = CreateObject("Shell.Application")
Set oFolder = oShell.NameSpace(NET_HOOD)

For Each oFile In oFolder.Items
    MsgBox oFile.GetLink.Path
Next

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多