Include the following subroutine in your script to allow easy creation of Internet Shortcuts (*.url ) and Windows Shortcuts (*.lnk):
Sub Shortcut(LinkFile, CommandLine) Set WshShell = WScript.CreateObject("WScript.Shell") If LCase(Right(LinkFile, 4)) <> ".lnk" And _ LCase(Right(LinkFile, 4)) <>".url" Then _ LinkFile = LinkFile & ".LNK" Set ShortcutHandle = WshShell.CreateShortcut(LinkFile) ShortcutHandle.TargetPath = CommandLine ShortcutHandle.Save End Sub
To create a shortcut to a program or file, use the following statement:
Call Shortcut("C:\Documents and Settings\All Users\SendTo\Notepad.lnk", _ "Notepad.exe")
To create a shortcut to an Internet address:
Call Shortcut("D:\Prjects\Important\Annoyances.url", _ "http://www.annoyances.org/")
If the first parameter, LinkFile, ends in .lnk (case doesn't matter), the Shortcut subroutine will automatically create a standard Windows shortcut; if LinkFile ends in .url, however, an Internet Shortcut file will be created. Note the If...Then structure in the routine, which automatically adds the .lnk filename extension if no proper extension is found.
|
If you specify a nonexistent folder in the path for the new shortcut file, an "Unspecified Error" will occur. You may want to use the FolderExists function, detailed in the Section 9.4 topic earlier in this chapter, to supplement this routine and eliminate the possibility of this error.