`

VB 获取快捷方式原文件路径

    博客分类:
  • vb
VB 
阅读更多
'此方法不需要引用IShellLink.

Private Type FILETIME
dwLowDateTime
As Long
dwHighDateTime As Long
End
Type

Private Type LNKHEAD
dwID
As Long
dwGUID(3) As Long
dwFlags As Long
dwFileAttributes As Long
dwCreationTime As FILETIME
dwModificationTime
As FILETIME
dwLastaccessTime
As FILETIME
dwFileLen
As Long
dwIconNum As Long
dwWinStyle As Long
dwHotkey As Long
dwReserved1 As Long
dwReserved2 As Long
End
Type

Private Type FILELOCATIONINFO
dwSize
As Long
dwFirstOffset As Long
dwFlags As Long
dwOffsetOfVolume As Long
dwOffsetOfBasePath As Long
dwOffsetOfNetworkVolume As Long
dwOffsetOfRemainingPath As Long
End
Type

Private Type LOCALVOLUMETAB
dwSize
As Long
dwTypeOfVolume As Long
dwVolumeSerialNumber As Long
dwOffsetOfVolumeName As Long
strVolumeName As Byte
End
Type

Private Type NETWORKVOLUMETAB
dwSize
As Long
dwUnknown1 As Long
dwOffsetOfNetShareName As Long
dwUnknown2 As Long
dwUnknown3 As Long
strNetShareName As Byte
End
Type

Private Const LNK_HASIDLIST = &H1
Private Const LNK_FILEDIR = &H2
Private Const LNK_HASDES = &H4
Private Const LNK_HASPATH = &H8
Private Const LNK_HASWORKDIR = &H10
Private Const LNK_HASCMD = &H20

Private Const LNK_LOCALVOLUME = &H1
Private Const LNK_NETSHARE = &H2

Public Function GetLinkPath(ByVal strShortCut As String) As String
Dim
objLinked As LNKHEAD
Dim intNo As Integer, intTmp As Integer
Dim
objInfo As FILELOCATIONINFO
Dim intSeek As Integer
Dim
bytBuffer() As Byte
intNo = FreeFile
Open strShortCut
For Binary As #intNo
Get #intNo, , objLinked
intSeek = Len(objLinked)
If objLinked.dwFlags And LNK_HASIDLIST Then
Get
#intNo, , intTmp
Else
Close #intNo
Exit Function
End If
intSeek = Seek(intNo)
intSeek = intSeek + intTmp
Seek
#intNo, intSeek
Get #intNo, , objInfo
Seek #intNo, objInfo.dwOffsetOfBasePath + intSeek
If objInfo.dwFlags And LNK_NETSHARE Then
intSeek = objInfo.dwOffsetOfNetworkVolume - objInfo.dwOffsetOfBasePath
Else
intSeek = objInfo.dwOffsetOfRemainingPath - objInfo.dwOffsetOfBasePath
End If
ReDim
bytBuffer(intSeek - 1)
Get #intNo, , bytBuffer
Close #intNo
GetLinkPath = StrConv(bytBuffer, vbUnicode)
End Function

 

分享到:
评论

相关推荐

    vb 实现文件拖拽显示文件路径

    在VB(Visual Basic)编程环境中,实现文件拖拽并显示文件路径是一项常见的功能,尤其在设计用户界面时,能够提高用户的交互体验。本教程将详细解释如何通过VB来实现这一功能。 首先,我们需要理解VB中的DragDrop...

    VB创建快捷方式

    - **桌面**:可以使用`Environment.GetFolderPath(Environment.SpecialFolder.Desktop)`获取桌面路径,然后保存快捷方式。 - **程序组**:程序组通常位于开始菜单下,路径可能为`Environment.GetFolderPath...

    vb.net读取快捷方式

    总结来说,VB.NET中读取快捷方式文件的路径涉及的主要知识点有:导入`Shell32`命名空间,使用`ShellLinkObject`类解析快捷方式,以及通过`Target.Path`属性获取目标文件路径。理解并掌握这些内容,有助于开发者更...

    获取LNK文件的源目标路径的软件源码

    首先,创建一个`Shell.Application`实例,然后使用`NameSpace`方法打开LNK文件所在的文件夹,再用`Items`方法获取该文件,最后调用`GetSpecialFolderItem`获取快捷方式的属性。 ```vb Dim shell As Object Set ...

    vb.net获取文件的各种属性

    - 创建文件的快捷方式:`FileInfo.CreateShortcut(targetPath)` - 删除文件:`fileInfo.Delete()` 4. 使用DirectoryInfo类获取目录属性: 如果需要获取目录的信息,可以使用DirectoryInfo类,其工作原理与...

    VB 获取系统路径

    在VB(Visual Basic)编程中,获取系统路径是一项常见的任务,它涉及到操作系统环境的交互,以便于读取、写入或执行与特定系统路径相关的文件和程序。系统路径包括多种类型,例如系统目录、用户文档目录、临时文件夹...

    vb获取桌面路径并删除ico

    总的来说,VB获取桌面路径并删除ICO文件涉及的知识点包括:特殊目录访问、文件路径的构建、文件操作(如删除)、文件存在性的检查以及基本的错误处理。通过这些技巧,你可以编写出一个实用且安全的程序来管理用户...

    获取Windows常用文件夹的路径,VB源码.rar

    在VB(Visual Basic)编程中,获取Windows操作系统中的一些常用文件夹路径是非常常见的需求,例如桌面、程序...这在编写需要与这些特定文件夹交互的软件时非常有用,例如备份、文件管理或者设置自定义快捷方式等。

    用VB5.0创建Windows快捷方式

    - `lpstrLinkPath`:指向的目标文件路径。 - `lpstrLinkArguments`:启动时传递给目标文件的参数。 - 返回值:如果成功则返回非零值;失败则返回零。 - **OSfRemoveShellLink**:删除指定的快捷方式。 - 参数...

    VB在Windows桌面为程序建立快捷方式

    通过学习和理解这段代码,你可以扩展功能,比如动态获取程序路径,或者添加更多的快捷方式属性,如描述、热键等。这将帮助你更好地掌握VB在Windows桌面创建快捷方式的技术,并且在实际开发中提高效率,提供更友好的...

    为指定程序在桌面在创建快捷方式VB

    ' 获取快捷方式对象 Dim shortcut As Object Set shortcut = CreateObject("WScript.Shell").CreateShortcut(shortcutFile.Path) ' 访问快捷方式属性,如TargetPath targetPath = shortcut.TargetPath ``` `Create ...

    创建快捷方式的软件源码

    - 设置`TargetPath`为目标文件路径。 - 设置`Arguments`为命令行参数。 - 设置`WindowStyle`为最小化模式(值为1)。 - 设置`Hotkey`为热键。 - 如果`IconFileIconIndex`被设置,则使用该图标;否则,默认使用...

    精彩编程与编程技巧-在VB中获取可执行文件及Windows 95快捷方式的图标...

    ### 在VB中获取可执行文件及Windows 95快捷方式的图标 #### 一、概述 在Visual Basic(简称VB)编程中,有时我们需要获取一个可执行文件或Windows 95快捷方式的图标来增强程序的用户体验或者进行图标管理等工作。...

    vb 添加URL快捷方式到收藏夹、开始菜单和桌面上

    在VB中,你还可以增加错误处理机制,确保路径有效并检查权限,以及在创建快捷方式时提供更多的自定义选项,如图标、工作目录等。通过结合这些方法,你可以构建一个功能完善的程序,方便用户一键访问指定的网页。 ...

    桌面快捷方式的创建

    - **IconLocation**:指定显示在快捷方式上的图标的文件路径。如果没有提供,则默认使用目标文件的图标。 - **WorkingDirectory**:当运行快捷方式指向的应用程序时,当前工作目录将被设置为此路径。这对于需要特定...

    获得桌面所有快捷方式.rar

    4. **快捷方式对象**:一旦确定了一个项是快捷方式,可以使用`Shell.Namespace(0).GetDetailsOf(Item, ColumnIndex)`函数获取其详细信息,如目标路径、图标等。`ColumnIndex`可以根据需要指定,例如,0通常是名称,4...

    vb.net 2008 定时开启/关闭EXE文件

    4. **文件路径处理**:我们需要获取或输入EXE文件的完整路径,这涉及到字符串处理和文件系统知识。可以使用Environment.GetFolderPath获取常用文件夹路径,或者使用OpenFileDialog控件让用户选择文件。 5. **事件...

    登录电脑自动为应用系统创建快捷方式

    这种文件包含了指向实际程序或文件的路径信息,当用户点击快捷方式时,系统会根据这些信息启动目标程序。 要实现"登录电脑自动为应用系统创建快捷方式",我们可以采用以下步骤: 1. **登录事件检测**:首先,我们...

    从指定目录下查找指定文件的例子

    这样,`glob.glob()`会返回匹配该模式的所有文件路径。 在Java中,可以使用`Files.walk()`方法从给定的起始路径开始,递归地遍历文件树。配合`Files.isRegularFile()`判断是否为普通文件,以及`Path.getFileName()....

    【windows 脚本系列】10. 建立快捷方式

    - **设置快捷方式属性**: 创建了快捷方式对象后,可以设置多个属性,如目标路径、工作目录、图标路径等。 ```vbscript Shortcut.TargetPath = "C:\path\to\application.exe" Shortcut.WorkingDirectory = "C:\...

Global site tag (gtag.js) - Google Analytics