`

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

 

分享到:
评论

相关推荐

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

    获取LNK文件的源目标路径应网友要求,重新整理了此源码,没有的抓紧下载啊,

    VB创建网页快捷方式到开始菜单、桌面及收藏夹

    摘要:VB源码,系统相关,收藏夹,快捷方式 VB创建网页快捷方式,程序可以把网页快捷方式添加到桌面、添加到收藏夹、添加到开始菜单。程序根据指定的文件夹获得程序的文件名,从窗体程序文件列表中获取程序文件的具体...

    API_VB实例150(精)

    SendMessage改变任意程序的标题 SendMessage实现获得密码 IsIconic判断窗口是否已最小...路径 SHAddToRecentDocs加入清除文档快捷方式示例 SetParent转移控件 PlaySound播放WAV文件 keybd...

    DELPHI专题文档-程序应用

    用Delphi创建Internet快捷方式 用Delphi实现远程屏幕抓取 资源文件在DELPHI中的使用 在DELPHI应用程序中使用DLL 为DELPHI应用程序制作安装程序 用注册表对Delphi程序进行加密 在Delphi程序中操作注册表 鼠标...

    DELPHI专题--程序应用

    用Delphi创建Internet快捷方式 用Delphi实现远程屏幕抓取 资源文件在DELPHI中的使用 在DELPHI应用程序中使用DLL 为DELPHI应用程序制作安装程序 用注册表对Delphi程序进行加密 在Delphi程序中操作注册表 鼠标...

    我整理的VBA 自定义函数大全 共138页

    70.创建桌面快捷方式 71.自动建立多级目录 72.统计经筛选后符合条件的记录条数 73.复制单元格列高与栏宽 74.取消隐藏工作表(包括vba Project工程保护的) 75.删除单元格自定义名称 76.从文件路径中取得文件名 77....

    1345个易语言模块

    创建快捷方式模块-简 1.0.ec 创建快捷方式模块2.2.ec 创建快捷方式 正.ec 创建数据库模块 1.0 .ec 创建数据库模块.ec 创建时钟事件.ec 删除文件模块.ec 删除文本所 在行.ec 判断ASCII编码.ec 判断XP外观支持文件是否...

    vc++ 应用源码包_6

    VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++实现任务管理器源码 任务...

    vc++ 应用源码包_5

    VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++实现任务管理器源码 任务...

    vc++ 应用源码包_3

    VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++实现任务管理器源码 任务...

    vc++ 应用源码包_1

    VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++实现任务管理器源码 任务...

    vc++ 应用源码包_2

    VC++建立桌面或开始菜单快捷方式 VC++界面库编程 SkinMagic 2.21 动态库版本的使用和 Skin++动态库及静态库版本的使用。 VC++精仿QQ2008窗体及分类菜单 VC++卡通风格气泡提示源码 VC++实现任务管理器源码 任务...

    vc++ 开发实例源码包

    服务器可以将收集到的信息以柱状图和文件列表以及其他方式呈现给用户,以便用户对局域网内的主机进行监测和管理。 CClockST_demo 电子钟的实现,自绘Button、Static的实现,其中自定了一个辅助主题风格类。 ...

    易语言程序免安装版下载

    修改应用接口支持库,增强“取快捷方式目标”命令功能,可以获取目标、参数、启始位置、图标、运行方式、快捷键、备注等信息。 9. 修改扩展界面支持库三,解决高级选择夹会导致所在窗口的收不到“首次激活”事件的...

    1350多个精品易语言模块

    创建快捷方式模块-简 1.0.ec 创建快捷方式模块2.2.ec 创建快捷方式 正.ec 创建数据库模块 1.0 .ec 创建数据库模块.ec 创建时钟事件.ec 删除文件模块.ec 删除文本所 在行.ec 判断ASCII编码.ec 判断XP外观支持文件是否...

    excel中161个VBA_自定义函数超级实用

    函数作用:创建桌面快捷方式.........................86 '71.函数作用:自动建立多级目录.........................86 '72.函数作用:统计经筛选后符合条件的记录条数...........87 '73.函数作用:复制单元格列高与栏宽...

Global site tag (gtag.js) - Google Analytics