不象常规的.LNK快捷方式(指向一个文档或应用程序), 网络快捷方式指向一个URL(web文档).下面是如何创建一个.URL文件的网络快捷方式,用的是Delphi语言.
网络快捷方式对象被用来创建互联网或web文档的快捷方式.互联网快捷方式和常规的快捷方式(在二进制文件中包含数据)是不同的,常规的快捷方式指向一个文档或者应用程序。这种带有.URL扩展名的文本文件包含的内容是INI格式的。
网络快捷方式(.URL)
要创建一个网络快捷方式,直接拖拽网络链接到你的桌面上(或者到其他文件夹里).如果你使用的是IE,把系统图标从IE标题栏的左边拖拽到桌面或者你选择的一个文件夹中,一个新的文件(带有.URL扩张名)被创建,那些链接变成了快捷方式,这样你就可以发邮件或者共享网络资源。
看一个.URL文件内部的最简单方式是通过记事本打开它.一个网络快捷方式的内容(它里面最简单的)看起来象这样:
[InternetShortcut]
URL=http://delphi.about.com
正如你所看到的,.URL文件有一个INI的文件格式.
URL描述的是要加载的网页的地址位置.它必须指定一个带有协议格式://server/page的完全有效的URL.对于URL的更多介绍我建议你看一下这篇文章:
"An Unofficial Guide to the URL File Format"
"新建..."网络快捷方式
如果你有想要链接的网页的URL那么你能很容易的用程序创建一个网络快捷方式,当你双击的时候,默认的浏览器被打开通过快捷方式显示网站内容(或者网页文档)
这儿是一个用来创建.URL文件的简单的Delphi函数.CreateInterentShortcut函数通过提供的文件名为给定的URL(LocationURL)创建一个URL快捷方是文件,并且覆盖那些带有相同文件名的已经存在的网络快捷方式.
uses IniFiles; ... procedure CreateInternetShortcut (const FileName, LocationURL : string); begin with TIniFile.Create(FileName) do try WriteString( 'InternetShortcut', 'URL', LocationURL); finally Free; end; end;
这儿是例子的应用:
CreateInterentShortcut( ' ', ' ');
注释0: 你可以保存一个网页作为MHT(web 存档),这样比创建.URL快捷方式更适合去访问一个离线版本的WEB文档。
注释1: 你必须给参数FileName提供一个连同.URL扩展名的全路径名。
注释2: 如果你已经有了一个网络快捷方式,那说明你对此很感兴趣,你能很容易的从一个网络快捷文件(.URL0中提取URL
指定 .URL 的图标
.URL文件格式最优雅的一个特性是你可以改变快捷方式的图标.默认情况下.URL协带的是默认浏览器的图标,如果你想改变图标,你仅仅需要给.URL文件增加两个额外的内容,就象下面一样:
[InternetShortcut]
URL=http://delphi.about.com
IconIndex=0
IconFile=C:/MyFolder/MyDelphiProgram.exe
IconIndex 和 IconFile 项让你为.URL快捷方式指定图标.IconFile能可以指向你的exe应用程序文件(IconIndex 是一个图标的索引指向exe文件的资源)
网络快捷方式...打开一个常规的文档或应用程序
既然被叫做网络快捷方式,那么.URL文件格式不允许你做其他事情,比如,比如一个标准的应用程序快捷方式。
注意URL必须被指定协议://server/page例如,你能在桌面上创建一个网络快捷方式的图标,并且指向你的应用程序文件,你只需要指定file:///协议.当你双击.URL文件是,你的应用程序将被执行,这儿是一个例子:
[InternetShortcut]
URL=file:///c:/MyApps/MySuperDelphiProgram.exe
IconIndex=0
IconFile=C:/MyFolder/MyDelphiProgram.exe
这儿有一个程序用来定位桌面上的网络快捷方式,快捷方式指向*current*应用程序,在你的程序中,你能用这段代码创建一个快捷方式:
uses IniFiles, ShlObj; ... function GetDesktopPath: string; var DesktopPidl: PItemIDList; DesktopPath: array [0..MAX_PATH] of Char; begin SHGetSpecialFolderLocation(0, CSIDL_DESKTOP, DesktopPidl); SHGetPathFromIDList(DesktopPidl, DesktopPath); Result := IncludeTrailingPathDelimiter(DesktopPath); end; procedure CreateSelfShortcut; const FileProtocol = 'file:///'; var ShortcutTitle : string; begin ShortcutTitle := Application.Title + '.URL'; with TIniFile.Create(GetDesktopPath + ShortcutTitle) do try WriteString( 'InternetShortcut', 'URL', FileProtocol + Application.ExeName); WriteString( 'InternetShortcut', 'IconIndex', '0'); WriteString( 'InternetShortcut', 'IconFile', Application.ExeName); finally Free; end; end;
注释:简单的调用"CreateSelfShortCut"在桌面上给你的应用程序创建一个快捷方式。
何时会用到
在我的项目中我正在使用那些随手可得.URL文件。当你为你的应用程序创建一个在启动菜单里包含.URL文件的安装包时.这可以使用户有更便利的方式访问你的网站去更新或者查看帮助文件的例子。