说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Delphi创建Internet快捷方式

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi创建Internet快捷方式

在Windows中,为了方便文件或者文件夹的访问,我们常常为某些文件或者文件夹建立快捷方式(shortcut)。同样,在Internet Explorer中,我们也可以为自己喜爱的网址建立Internet快捷方式(Internet Shortcut)。只要点击快捷方式,Internet Explorer就会启动,并联接到相应的网站。事实上,除了Internet Explorer可以创建Internet快捷方式之外,在我们的应用程序中也同样可以实现此功能。在本文中,我将要向读者介绍如何在Delphi程序中为网址建立Internet快捷方式。

Internet快捷方式的格式

为了分析Internet快捷方式的文件格式,我们可以先用Internet Explorer为某个网址建立一个快捷方式,然后在DOS窗口中用DIR命令找到Internet快捷方式所对应的文件,并且用edit查看文件的内容。不难发现,Internet快捷方式的文件格式与INI文件的格式是一样的,只不过它的扩展名必须是 .URL罢了。 Internet快捷方式的文件格式如下:

[DEFAULT]

BASEURL=

[InternetShortcut]

URL=

WorkingDirectory=

ShowCommand=

IconIndex=

IconFile=

Modified=

HotKey=

其中BASEURL、URL和WorkingDirectory这3项的含义是不言而明的。ShowCommand规定Internet Explorer启动后窗口的初始状态:7表示最小化,3表示最大化;如果没有ShowCommand这一项的话则表示正常大小。IconFile和IconIndex用来为Internet快捷方式指定图标;如果你不想指定图标,Windows会使用缺省的Internet快捷方式图标。HotKey指定一个整数值;HotKey的值及其含义如下:

833 - Ctrl + Shift + A

834 - Ctrl + Shift + B

835 - Ctrl + Shift + C

836 - Ctrl + Shift + D

837 - Ctrl + Shift + E

838 - Ctrl + Shift + F

1601 - Ctrl + Alt + A

1602 - Ctrl + Alt + B

1603 - Ctrl + Alt + C

1604 - Ctrl + Alt + D

1605 - Ctrl + Alt + E

1606 - Ctrl + Alt + F

...

一个简单的Internet快捷方式只需要在

[InternetShortcut]节中包含URL项就可以了,例:

[InternetShortcut]

URL=http://www.yahoo.com

快捷方式的创建

接下来,我们来看一个非常简单的Delphi例子。此程序将在Windows的桌面上建一个一个名为“计算机世界”的快捷方式,它指向《计算机世界》的首页;快捷方式的图标使用Windows 98/95中System目录(或者Windows NT中的System32目录)下的shell32.dll动态联接库中的第41号图标。

由于Internet快捷方式的文件格式与INI文件的是相同的,我们可以使用Delphi的TiniFile类来读写.URL文件的内容。而要使快捷方式出现在桌面上,我们只要把.URL文件保存在Windows桌面所对应的那个目录之下即可。当前用户的桌面目录可以从注册表中获取,此信息保存在Windows注册表HKEY_CURRENT_USER 根键下的Software\Microsoft\Windows

\CurrentVersion\Explorer\Shell Folders主键的Desktop项中。

示例程序的单元文件的代码如下:

unit Unit1;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs

7

StdCtrls

Registry

IniFiles;

type

TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

ini:TIniFile;

Reg:TRegistry;

DesktopPath

FileName

S:String;

Buf:array[0..max_path]of char;

begin

//获取当前用户Desktop文件夹的路径

Reg:=TRegistry.Create;

Reg.RootKey:=HKEY_CURRENT_USER;

try

Reg.OpenKey('Software\Microsoft\Windows

\CurrentVersion\Explorer\Shell Folders'

False);

if Reg.ValueExists('Desktop') then

DesktopPath:=Reg.ReadString('Desktop');

finally

Reg.Free;

end;

if (DesktopPath< >'')and(DesktopPath

[Length(DesktopPath)]< >'\')

then DesktopPath:=DesktopPath+'\';

//将Buf清零

FillChar(Buf

SizeOf(Buf)

0);

//获取Win98/95中的System

文件夹或者NT中的System32文件夹的路径

GetSystemDirectory(Buf

SizeOf(Buf));

S:=Buf;

if (S< >'')and(S[Length(S)]< >'\') then S:=S+'\';

S:=S+'shell32.dll';

//Internet快捷方式的文件名(扩展名必须是URL)

FileName:=DesktopPath+'计算机世界.url';

ini:=TIniFile.Create(FileName);

//指定URL

ini.WriteString('InternetShortcut'

'URL'

'http://www.computerworld.com.cn');

//指定图标文件

ini.WriteString('InternetShortcut'

'IconFile'

S);

ini.WriteString('InternetShortcut'

'IconIndex'

'41');

ini.Free;

end;

end.

编写Connect Strings-VB资料 表或查询是否存在-VB资料 不创建DSN直接在程序中使用ODBC数据源-VB资料 不用 DATA 控件操作数据库文件 -VB资料 不用 EOF 以加快记录循环-VB资料 处理Select语句中的单引号 -VB资料 断开所有的数据连接 -VB资料 访问VB外来数据库 非access数据库在vb中的编程及应用 关闭程序中所有创建的数据库连接。 -VB资料 关闭所有的数据连接 -VB资料 关于数据报表的打印设置-VB资料 VB建立、改变及重构Access数据库-VB资料 结构化查询语言(SQL)详解之一-VB资料 利用VB使ACCESS数据库在网络使用中保持同步 返回 连接Data到多个表单-VB资料 列出 SQL Server 数据库中所有的存储过程-VB资料 列出MDB档当中所有table的名称-VB资料 您想知道有谁正在使用您的 Access 文件吗?(多人环境中)-VB资料 主题:浅谈Excel 的VB编程 巧用VB6的DataGrid实现通用电子表格 VB取得正确的 RecordCount 值 主題:如何动态新增、移除 ODBC DSN? -VB资料 VB如何将表中的数据导出到电子表格中 VB如何将文本文件转换为ACCESS数据库 VB如何將 Excel 的文件导入 Access文件? VB如何判断数据中是否存在某一表或查询 VB如何删除FoxPro数据库的数据? VB如何设置对VB数据库连接的动态路径 VB如何使用 ADO 來压缩或修复 Microsoft Access 文件 VB如何修改Foxpro数据库(不是用VB实现的,不过也可以看看) ATL & STL 的问题 about string 疑问 IE环境总是出现cannot open file "Debug/xx.exe,在线等候? 一个简单的问题:) com中用ado连接数据库 简单问题,小弟不会,怎样把picture对象的内容保存成文件?《真的给分》 谁有 Style Report EE 的非试用版序列号? 几个使用linux的很菜的问题 怎么把linux下的图形转移到window 2000下(请大家帮忙!急用!!谢谢!!!) 树?? 请问哪儿有acrobat下载?不是acrobat reader. 一个窗口,可以改变大小,但宽度高度只能在一个范围内,比如宽的范围是u-v,高的范围是x-y,超过范围就不能再改变,怎么做? 小问题,如何解决?谢谢各位大虾!!谢谢,我在线等 要上次网络程序员的试题。 sanfen 为什么我的字总是看着上下都缺一点? 死阿猫,老博亦,跑那去了,赶快看看我的问题~~~~~ 错在哪里?提示“标准表达式数据类型不匹配” 记得原来WIN95下有个快速查看的软件,2000下找不到了,请大家指点指点 快救我一下 急1! 怎么在DBGRID中实现下拉框??在线等待高手!!! 请问一个在安装WIN2000时的问题 delphi 编程时,如何把memo中字符的“回车”去掉! 如何在串口通讯中读写中文? 有没有誰知道哪个网站现场直播世界杯的. Query的查询 有关DDX的问题,高手请帮忙 用过NUCLEUS GRAFIXWT 和GRAFIXGS的朋友请进 about windows media player? 请问哪里有outlook express60的安装程序下载? socket通讯的问题! winxp的桌面图表问题 软件工程预算,急急急!!!!! 程序员教材的错误。 ADO简单问题求教,解决问题立即送分,绝不食言! 对于您来说可能很简单的日期问题,对于我很重要! 哈哈,阿猫现在不在,有想骂他的赶紧进了啊,我先来一句:死阿猫。。。。。 请大家说说这个小偷是不是很有义气呀! 猪猪要退出水园了,强烈挽留猪猪继续当我们的版主!支持的进来签名 着急!! 我是菜鸟 如何在sdk程序中获得.lnk文件的icon? 我在FORM1上加上了数据模块,FROM1上有一个DBedit控件,为什么Datasure属性里却没有 我是菜鸟 着急!! VC开发如何OFFIC,关于WORD的? 新手请教:如何从一张表中取出最新的50条数据? 硬盘抢救!!!大家帮忙! 国外有没有类似http://bbs.51soft.com/的大的软件讨论站? 格式化字符串的问题 望洞庭这首诗描写了什么地方,什么时喉的景色? 燃气报警器费电吗?24小时要要多少电? 什么是大气层? 物体发出辐射大小与物体吸热多少有关吗 燃油气锅炉是水管还是火管 电流互感器怎么算电费求大神帮助电流互感器 型号是:LMZJ1-0.5 0.5KV 电流:500/5A 卷绕匝数:1匝 频率:50HZ 准确0.5线 5VA-3.75VA 这个电费怎么算? 如图所示农田一昼夜温度变化Ⅰ、光照强度变化Ⅱ和植物吸收CO2变化Ⅲ数据绘制成的曲线则下列说法不正确的是(  ) A.在Ⅲ曲线与时间轴交点c和e时,光合作用吸收的CO2与细胞呼吸释放的CO2 人耳听到的声音的高低叫做什么,它跟发声体的震动的什么有关 人发出的声音的频率范围是多少? 根据流变测试数据画流变曲线我现在有一组橡胶流变原始测试数据,请问怎么画流变曲线? 用火烧的锅炉循环泵在出水管按还是回水管按 人说话发出的声音的频率是什么范围 奥比岛的西瓜和梨子从哪里拿? 将收音机放在耳朵附近,能听到音乐声;用手把耳朵堵住,把收音机放额头上,也能听到声音,提出一个探究课 大多数人能听到的声音的频率范围是多少 地球重力状态下水滴的体积是多少? 我家走的上管就是在门上走的!在回水管与锅炉之间加的补水箱!我想问一下循环泵怎么安装!要具体的! 大多数人能听到的声音的频率范围是多少a 怎么由相图画步冷曲线, 四年级上册语文园地一作文300字 大多数人能够听到声音的频率范围大约是多少? 用步冷曲线法绘制相图,应注意哪些问题? 钢厂煤气管道泄漏如何处理 桥梁结构中的物理原理分析 由二组分相图画出步冷曲线 气体运输管道 关于 泄压 求问~求大神解答如果是运输气体的管道(气体会带来污染)请问下 泄压阀开启 泻出压力 这个压力是里面的气体么?会不会造成气体外泄导致污染呢? 物理问题:有关桥梁设计问题 谢谢... 在透明玻璃上,放冰,拿开后,玻璃下为什么会有小水珠 土星的光坏的主要成分是什么 木星大还是土星大 水珠的受力分析一块竖直放置的玻璃板上有一静止的水珠,试对其受力情况分析.我就是不明白到底在水平方向上它受不受力? 同样重量的两份大米,一份蒸米饭,一份煮粥,两份的热量一样吗? 耳朵的听觉频率 多少到多少赫兹使人们能听到 的 米饭煮成粥——糊涂 怎么造句 声音的频率一定要在人的听觉范围之内,即 为什么我能听到1赫兹的音乐?隆隆声 蛮震撼 听得很清楚 测试表明声音的确是1赫兹 为什么浓硫酸和铜反应生成so2小于理论值浓硫酸不足量 人除了用耳朵听到声音之外还可以用什么来引起听觉? 望洞庭是描写哪里的景色? 这个配置现在大概什么价钱, 按形状分,桥有___.___.___等快 地球有大气层,是怎么行成的?为什么只有地球有,别的星球怎么没有呢? 在探究声音与频率关系中,如图把尺放在桌子上,使尺的一端伸出桌边,用手拔动钢尺,听尺振动时发出的声音,同时观察尺震动的快慢.下表是实验记录情况,请你补充表中的空缺.次数 尺出的长度 三种以上的桥的形状、结构、特点和优点. 为什么地球有大气层包围,其它星球没有呢? 有一个发声体,2mim振动了3×10的6次方,求声体振动的频率是多少,这个声音人可能听到吗?有一个发声体,2mim振动了3×10的6次方,求声体振动的频率是多少,这个声音人可能听到吗?为什么? 桥有哪些形状? 假设地球表面不存在大气层,那么人们观察到的日出时刻与实际存在大气层的情况相比 [ ] 用01mol的铜跟足量浓硫酸反应制取so2,消耗浓硫酸物质的量是多少 桥是什么形状的 怎么样自己制做兵粥 铜与浓硫酸加热反应制取SO2,利用了硫酸什么性质 大气层在哪里? 怎么制做西瓜果冻啊! 怎么省手机电?拜托各位大神 大气层分哪几层 《望洞庭》描写了哪四种景 如果世界上没有了煤气和电,人类会变的怎样? 大气层有几层
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘