File "linkexec.bas"

Path: /linkexec/linkexec.bas
File size: 1.75 KB
MIME-type:
Charset: utf-8

#COMPILE EXE "linkexec.exe"
#DIM ALL
#RESOURCE "linkexec.pbr"

'------------------------------------------------------------------------------
'   ** Includes **
'------------------------------------------------------------------------------
#INCLUDE ONCE "WIN32API.INC"
#INCLUDE ONCE "SHORTCUT.INC"
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Main Application Entry Point **
'------------------------------------------------------------------------------
FUNCTION PBMAIN()
    LOCAL lnk   AS LINKTYPE
    LOCAL arg     AS STRING
    LOCAL s     AS STRING

    s = TRIM$(COMMAND$(1), ANY $SPC+$TAB+$DQ)

    IF RIGHT$(LCASE$(s), 4) <> ".lnk" THEN
        ?"Error: argument(s) needed."+$CR+$CR _
        +"Either call ""linkexec myshortcut.lnk my_parameters"""+$CR _
        +"on the command line"+$CR _
        +"-or-"+$CR _
        +"drag and drop a Windows shortcut onto"+$CR _
        +"this program, to launch it without argument." _
        ,%MB_ICONINFORMATION ,"linkexec"
        EXIT FUNCTION
    END IF

    ' Get the remaining arguments
    arg = TRIM$(REMOVE$(COMMAND$, COMMAND$(1)))

    ' Parse shortcut filepath from argument
    lnk.zLinkFolder = PATHNAME$(PATH, s)
    lnk.zLinkName   = PATHNAME$(NAMEX, s)

    ' Read all fields shortcut
    ReadShortcut(lnk)

    ' Merge arguments
    lnk.zArguments = TRIM$(lnk.zArguments + " " + arg)

    ' Launch the target program with its parameters, in the specified workdir
    SHELLEXECUTE BYVAL 0, "open", lnk.zExeName, lnk.zArguments, lnk.zWorkDir, %SW_SHOWNORMAL

END FUNCTION
'------------------------------------------------------------------------------