function Cre8Shortcut > lparameters m.lcLinkname,m.lcApplication,m.cAppParameters,; > m.lcWorkingdir,m.lcInFolder,m.lcWinstyle,m.lcHotKey, m.cIconLoc > *!* parameters > *!* 1. name of link > *!* 2. Target application or file > *!* 3. Parameters for target > *!* 4. Workingdir > *!* 5. location for shortcut "Desktop" > *!* <Default> , "Startup", "Programs" "PROGRAMS\MYFOLDER\"... > *!* 6. Window Style "MIN" "MAX", "NORM" <DEFAULT> > *!* 7. startup HOT KEY > *!* 8. Icon Location - defaults to target file (assumes embedded icon if not passed") > #DEFINE SC_MAXIMIZED 3 > #DEFINE SC_MINIMIZED 7 > #DEFINE SC_NORMAL 4 > if type("m.lcApplication") <> "C" .or. !file(m.lcApplication) > return .f. > endif > m.lcApplication = locfile(m.lcApplication) > if type("m.lcLinkname") <> "C" > m.lcLinkname = juststem(m.lcApplication)+".LNK" > else > m.lcLinkname = juststem(m.lcLinkname)+".LNK" > endif > if type("m.lcWorkingdir") <> "C" .or. !directory(m.lcWorkingdir) > m.lcWorkingdir = justpath(m.lcApplication) > endif > do case > case type("m.lcWinstyle") <> "C" > m.lnWinstyle = SC_NORMAL > case atc("NORM",m.lcWinstyle) > 0 > m.lnWinstyle = SC_NORMAL > case atc("MAX",m.lcWinstyle) > 0 > m.lnWinstyle = SC_MAXIMIZED > case atc("MIN",m.lcWinstyle) > 0 > m.lnWinstyle = SC_MAXIMIZED > otherwise > m.lnWinstyle = SC_NORMAL > endcase > > *!* Create the Windows Script Host > loWsh = CREATEOBJECT("Wscript.shell") > > *!* Locate the user's start up folder > **lcFolder = loWsh.SpecialFolders("StartUp") > *lcFolder = loWsh.SpecialFolders("Desktop") > > do case > case type("m.lcInFolder") <> "C" > lcFolder = loWsh.SpecialFolders("Desktop") > m.lcInFolder = lcFolder > case atc("Desktop",m.lcInFolder) > 0 > lcFolder = loWsh.SpecialFolders("Desktop") > m.lcInFolder = strtran(Lower(m.lcInFolder),"desktop\","") > m.lcInFolder = addbs(addbs(lcFolder)+m.lcInfolder) > case atc("Startup",m.lcInFolder) > 0 > lcFolder = loWsh.SpecialFolders("StartUp") > m.lcInFolder = strtran(Lower(m.lcInFolder),"startup\","") > m.lcInFolder = addbs(addbs(lcFolder)+m.lcInfolder) > case atc("Programs",m.lcInFolder) > 0 > lcFolder = loWsh.SpecialFolders("Programs") > m.lcInFolder = strtran(Lower(m.lcInFolder),"programs\","") > m.lcInFolder = addbs(addbs(lcFolder)+m.lcInfolder) > otherwise > m.lcInFolder = addbs(fullpath(m.lcInFolder)) > endcase > if !empty(m.lcInFolder) .and. cre8dir(m.lcInFolder) > *!* create specified folder in programs if it does not exist > lcFolder = m.lcInFolder > endif > > *!* Create a shortcut object > loShortCut= loWsh.CreateShortcut(addbs(lcFolder) + m.lcLinkname) > > *!* Set the properties of the shortcut. Note that no error occurs if > *!* one of the parameters is wrong. The shortcut just won't be saved. > *!* Also, if the shortcut already exists, it will be overwritten w/o > *!* warning. > *!* > lcAppPath = addbs(JUSTPATH(fullpath(m.lcApplication))) && For example > lcAppName = justfname(m.lcApplication) && For example > if type("m.cAppParameters") = "C" .and. !empty(m.cAppParameters) > loShortCut.Arguments = m.cAppParameters > endif > loShortCut.WorkingDirectory = m.lcWorkingdir > loShortCut.TargetPath = '"' + lcAppPath + lcAppName + '"' > loShortCut.IconLocation = iif(type("m.cIconLoc") = "C" .and. ; > file(m.cIconLoc), m.cIconLoc,loShortCut.TargetPath) > ** Assumes built-in ICO if not passed > loShortCut.WindowStyle = m.lnWinstyle > > if type("m.lcHotKey") = "C" > loShortCut.HOTKEY = m.lcHotKey && For example > endif > *!* Save the shortcut > loShortCut.SAVE() > > loShortCut = .null. > release loShortCut > > return file(addbs(lcFolder) + m.lcLinkname) >>