CreateProcess

Runs an external process using the CreateProcess API. CreateProcess has a number of advantages over using the RUN command including a much longer command line limit and the ability to understand long filenames correctly.

This function is a standalone function and not a member of the wwAPI class.

Note this method does not support re-routing StdOut to a file. For that purpose use CreateProcessEx.

CreateProcess(lcExe,lcCommandLine,
              lnShowWindow,llWaitForCompletion,
              lnTimeoutMs)

Return Value

.t. or .f.

Parameters

lcExe
Full path to the EXE file. You need a full path even if the file lives in the SYSTEM directory.

lcCommandLine
Optional - Command line arguments for the application.

lnShowWindow
Optional - The display mode/sizing of how the window is displayed. Uses a numeric value that comes from standard Windows API values:

SW_HIDE             0
SW_SHOWNORMAL       1
SW_NORMAL           1
SW_SHOWMINIMIZED    2
SW_SHOWMAXIMIZED    3
SW_MAXIMIZE         3
SW_SHOWNOACTIVATE   4
SW_SHOW             5
SW_MINIMIZE         6
SW_SHOWMINNOACTIVE  7
SW_SHOWNA           8
SW_RESTORE          9
SW_SHOWDEFAULT      10
SW_FORCEMINIMIZE    11
SW_MAX              11

llWaitForCompletion
If .T. waits for the process to complete before control returns back to FoxPro. Useful for applications where you need to wait for a result before continuing.

lnTimeoutMs
Optional - milliseconds before this operation is considered timed out when waiting for completion.

Example

FUNCTION SetACL(lcPath,lcUser,lcAccess,llInherit,llReplace)
LOCAL lcCommand, lcFile, lcParms

*** Strip off any trailing backslashes
IF RIGHT(lcPath,1)="\" AND LEN(lcPath) > 1
   lcPath = SUBSTR(lcPath,1,LEN(lcPath)-1)
ENDIF

lcParms = ShortPath( lcPath) 
IF llInherit
   lcParms = lcParms + " /T "
ENDIF
IF !llReplace 
   lcParms = lcParms + " /E " 
ENDIF
lcParms = lcParms + " /P " + lcUser + ":" + lcAccess



LOCAL loAPI
loAPI = CREATEOBJECT("wwAPI")
CreateProcess( loAPI.GetSystemDir() + "cacls.exe",ALLTRIM(lcParms),0,.T.,5000)


See also:

Class wwAPI

© West Wind Technologies, 2023 • Updated: 04/21/19
Comment or report problem with topic