Hi Paul,
try this code - it work on my PC:
#COMPILE EXE
#DIM ALL
#INCLUDE "WSHOM.INC"
#Include "shlobj.inc"
' ========================================================================================
' Main
' ========================================================================================
FUNCTION PBMAIN
' =====================================================================================
' Creates an instance of the Windows Script Host
' =====================================================================================
LOCAL pWsh AS IWshShell
pWsh = NEWCOM "WScript.Shell"
IF ISNOTHING(pWsh) THEN
MSGBOX "Error creating an instance of Windows Scripting Host"
EXIT FUNCTION
END IF
' =====================================================================================
' =====================================================================================
' Creates a shortcut programatically (if it already exists, CreateShortcut opens it)
' =====================================================================================
LOCAL pLnk AS IWshURLShortcut
Local strDesktop as string
Local sPath As Asciiz * %MAX_PATH
SHGetFolderPath(0, %CSIDL_DeskTop, 0, 0, sPath)
strDesktop = sPath
pLnk = pWsh.CreateShortcut(UCODE$(strDesktop & "\TestURL.url"))
IF ISNOTHING(pLnk) THEN
MSGBOX "Error creating the shortcut"
EXIT FUNCTION
END IF
' =====================================================================================
' =====================================================================================
' Sets the TargetPath property and saves it to disk
' =====================================================================================
' pLnk.TargetPath = UCODE$(EXE.Path$ & "EX_WHLNK_CreateShortcut.EXE")
pLnk.TargetPath = UCODE$("http://www.microsoft.com")
pLnk.Save
' =====================================================================================
MSGBOX "Url Shortcut created ????"
END FUNCTION
' ========================================================================================