Access编程交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 活动
  • 关于

技巧

ACCESS数据库

启动/设置/选项/背景

修复/压缩

安全/加密/解密

快捷键

版本升级/其它等

数据表

命名方式/设计规范

表设计

查询

Sql语言基础

选择查询

更新查询

删除查询

追加查询

生成表查询

交叉表查询

SQL特定查询

查询参数

查询综合应用

界面/窗体/控件

标签

文本框

命令按钮

组合框/列表框

选项组/复选框/选项按钮

选项卡

子窗体

窗体本身/综合应用

其它

报表打印

报表设计

高级报表

模块/函数/VBA/API/系统

VBA基础

内置函数

调试/跟踪/Debug

模块/类模块

API/COM/系统相关

字符数字日期

网络通信游戏

加密解密安全

文件处理

经典算法

宏/菜单/工具栏/功能区

宏/脚本

菜单/工具栏

功能区/Ribbon

图表/图形/图像/多媒体

图表

图形/图像

音频

视频/动画

DAO/链接表/ADO/ADP

DAO/链接表/ODBC

ADO/RDO

ADP

ActiveX/第三方控件/插件

Treeview树控件

ListView列表控件

Toolbar工具栏控件

微软其它控件

Dbi-Tech

CodeJock

Grid++Report

FastReport

ComponentOne

加载项/插件/Addin

OFFICE集成/导入导出/交互

Excel导入导出/交互

Word导入导出/交互

PPT交互

Outlook控制/邮件

Text文本文件/INI/CSV

PDF/SWF/XML格式

CAD格式

Sharepoint/其它Office

SqlServer/其它数据库

表

视图

存储过程/触发器

函数

用户/权限/安全

调试/维护

SqlServer其它/综合

发布/打包/文档/帮助

开发版/运行时

打包/发布/部署

开发文档/帮助制作

Access完整行业系统

采购管理系统

销售管理系统

仓库管理系统

人力资源管理HRM

CRM管理系统

MRP/ERP管理系统

BRP/流程优化

其它管理系统

心得/经验/绝招
其它/杂项
Excel技巧

Excel应用与操作

Excel开发编程

Word技巧

Word应用与操作

Word开发编程

Outlook技巧

Outlook应用与操作

Outlook开发编程

热门文章

  • ACCESS提示错误信息,..
  • 我的一个编程的经验
  • 提供两个极好工具下载
  • 按组合添加多条记录
  • 利用存储过程向SQL Se..
  • Access2000快餐第..

最新文章

  • Access数据库设计技巧..
  • Access数据库设计技巧..
  • Access数据库设计技巧..
  • Access数据库设计技巧..
  • Access数据库设计技巧..
  • 使用Access和Exce..

联系方式

Access交流网(免费Access交流)

QQ:18449932 

网  址:www.access-cn.com

当前位置:首页 > 技巧 > 心得/经验/绝招
心得/经验/绝招

Windows快捷方式文件格式解析


Windows快捷方式文件格式解析

作者:
Cuick

下载源代码  最近一直作linux项目,很久没来VC知识库了,先向大家问个好!现在拜个晚年不是很晚吧?(不是说有心拜年八月十五也不晚吗!!嘿嘿)
  好了,言归正传。大家知道通过IShellLink接口可以得到快捷方式的各种属性。具体怎么做,网上有很多文章,这里就不介绍了。现在主要是分析一下快捷方式文件的格式,并且自己写一个解析程序。
为了方便大家理解,解说完每个段后附上一个快捷方式对应部分的事例数据并附内容解说。这里以Windows Media Player在桌面上的快捷方式为例。
一、文件的整体结构
access数据库
二、文件头
文件头结构,参照下面表格:



Offset Size/Type Description
0h 1 dword 值常为0000004CH,为字符"L"
4h 16 bytes GUID
①14h 1 dword Flags,用来标识快捷方式文件中有哪些可选属性,后面有表单独解释每一位的意义。
②18h 1 dword 目标文件属性,后面解释。
1ch 1 qword 文件创建时间
24h 1 qword 文件修改时间
2ch 1 qword 文件最后一次访问时间
34h 1 dword 目标文件长度
38h 1 dword 自定义图标个数,
3ch 1 dword 目标文件执行时窗口显示方式:
1、 正常显示
2、 最小化
3、 最大化
40h 1 dword 热键
44h 2 dword 暂时还不清楚用途值常为0

  
① 偏移14h开始的标志标示有哪些可选属性,见下表:



Bit 所在位为1时表示
0 有shell item id list
1 指向文件或文件夹,如果此位为0表示指向其他。
2 存在描述字符串
3 存在相对路径
4 存在工作路径
5 存在命令行参数
6 存在自定义图标

② 偏移18h开始的目标文件属性:  



Bit 所在位为1时表示
0 快捷方式所指目标文件有只读属性
1 快捷方式所指目标文件有隐藏属性
2 快捷方式所指目标文件是系统文件
3 快捷方式所指目标是卷标
4 快捷方式所指目标是文件夹
5 快捷方式所指目标文件上次存档后被改变过
6 快捷方式所指目标文件被加密
7 快捷方式所指目标文件属性为一般
8 快捷方式所指目标文件为临时
9 快捷方式所指目标文件为稀疏文件(sparse file)
10 快捷方式所指目标文件有重分析点数据(reparse point)
11 快捷方式所指目标文件被压缩
12 快捷方式所指目标文件脱机
例:
偏移       数据             解释
0000    4c 00 00 00       字符"L"
0004    01 14 02 00       快捷方式的GUID。值固定
         00 00 00 00
         C0 00 00 00
         00 00 00 46
0014    8F 00 00 00      flags。对照表可知
                              有shell item id list
                              目标是文件
                              存在描述字符串
                              存在相对路径
0018    20 00 00 00      文件属性,具体内容可以查上面的属性说明表
001C    40 51 0A 0C      文件创建时间
        AD CB C4 01
0024    C4 D8 A5 91     文件修改时间
        AD CB C4 01
002C    00 33 16 74       文件最后一次访问时间
        F6 C7 C3 01
0034    00 20 01 00       文件长度
0038    00 00 00 00       自定义图标个数
003C    01 00 00 00       打开时窗口为normal状态
0040    00 00 00 00       热键
0044    00 00 00 00       暂时还不清楚用途值常为0
        00 00 00 00
三、Shell item ID list段
  当文件头中○1的第0位置位时才有。第一个unsigned short integer表示item ID list段的总长度。后面紧跟着SHITEMID结构。SHITEMID的定义如下:
    typedef struct _SHITEMID { 
        USHORT cb;
        BYTE   abID[0];
    } SHITEMID, * LPSHITEMID;
  cb保存SHITEMID结构的大小。abID是可变长度的对象标识。具体都是什么含义没看明白,可以参阅MSDN。因为item ID list段的开始为这个段的总长度,所以在读取的时候可以把此段跳过不做处理!!:)
例:(文件头段的flags标志显示存在shell item id list段)
偏移       数据             解释
004C    9c 00            item ID list总长度(下一段的起始地址为004E+009C=00EA)
004E    14 00           第一个item ID的长度
0050    1F 50 E0 4F      第一个item ID标示内容
        D0 20 EA 3A
        69 10 A2 D8
        08 00 2B 30
        30 9D
0062    19 00             第二个item ID的长度
0064    23 43 3A 5C       第二个item ID标示内容
        00 00 00 00
        00 00 00 00
        00 00 00 00
        00 00 00 00
        00 F1 93
007B    25 00
007D    31 00 00 00
        00 00 70 31
        47 3B 31 00
        50 72 6F 67
        72 61 6D 20
        46 69 6C 65
        73 00 50 52
        4F 47 52 41
        7E 31 00
00A0    2C 00
00A2    31 00 00 00
        00 00 70 31
        47 3B 10 00
        57 69 6E 64
        6F 77 73 20
        4D 65 64 69
        61 20 50 6C
        61 79 65 72
        00 57 49 4E
        44 4F 57 7E
        32 00
00CC    1C 00
00CE    32 00 00 20
        01 00 95 2F
        A1 99 20 00
        77 6D 70 6C
        61 79 65 72
        2E 65 78 65
        00 00
00E8    00 00                 item ID list段结束
发布人:LucasLyn…-http//bbs.office-cn.net/  
分享到:
点击次数:  更新时间:2006-08-04 12:12:40  【打印此页】  【关闭】
上一条:ACCESS数据库管理工具--之原理彻底解释  下一条:四种整数数据类型的性能对比



相关文章

  • • Access数据库设计技巧-第五部分
  • • Access数据库设计技巧-第四部分
  • • Access数据库设计技巧-第二部分
  • • Access数据库设计技巧-第一部分
  • • Access数据库设计技巧-第三部分
  • • 使用Access和Excel之间的选择理由
  • • access开发应用程序的过程汇总
  • • ACCESS提示错误信息,自动崩溃,数据库损坏的问题与解决办法

热门文章

  • [2009-11-24] 刷新父窗体中的子窗体数据示例access数据库
  • [2009-11-20] WINRAR打包视频演示全过程access数据库
  • [2013-07-23] SQL中获取两日期之间的值access数据库
  • [2009-11-23] 文件替换函数access数据库
  • [2006-11-22] 注册代码access数据库
  • [2005-08-13] 快速实现 Integer值 与 Byte 互换算,拓展思路access数据库

热门产品

公司动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2023 粤ICP备10043721号

QQ:18449932

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2025  www.metinfo.cn