ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Standard functions / Windows functions / Executable functions
  • Using a command line
  • Using the exeActive constant
  • Return value of a WINDEV executable
  • Starting an application in Windows Vista (and later)
  • Miscellaneous
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Executes a program (an executable file, for example) from the current application.
WINDEVJavaUser code (UMC) This allows you to retrieve:
  • the return value of executable with the exeReturnValue constant.
  • the process identifier, also called PID with the exePID constant.
WINDEV Remarks:
Example
WINDEV
// Lancement du bloc-notes avec le mode par défaut
ExeRun("NOTEPAD.EXE Lisezmoi.txt")
WINDEV
// Lancement d'un programme avec un nom long comprenant des espaces
// Par exemple : Word avec "Mes documents" pour répertoire de travail

// Solution 1 : Utilisation de la syntaxe spécifique des chaînes multilignes
// (évite de doubler ou tripler les guillemets)
IF ExeRun([
	"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE"
	], ...
	exeActive, exeDontWait, SysDir(srMyDocuments)) = False THEN
		Error(ErrorInfo())
END

// Solution 2 : Doublement des guillemets
ExeRun("""C:\Program Files\Microsoft Office\Office12\WINWORD.EXE""", ...
	exeActive, exeDontWait, SysDir(srMyDocuments))
WINDEV
// Lancement d'applications avec un fichier en ligne de commande
// Nom de l'application à lancer
sNomAppli is string = "C:\Program Files\Adobe\Photoshop 6.0\Photoshp.exe"
// Nom de l'image à ouvrir
sNomImage is string = "C:\Users\Mon Nom\Pictures\Photos Immeubles\IMGP0993.JPG"

// Lancement équivalent à "Démarrer Exécuter" 
// Il faut obtenir une chaîne de caractères contenant des "" du type : 
// "C:\Program Files\Adobe\Photoshop 6.0\Photoshp.exe" 
// "C:\Users\Mon Nom\Pictures\Photos Immeubles\IMGP0993.JPG"
IF ExeRun(StringBuild([
"%1" "%2"
], sNomAppli, sNomImage)) = False THEN
	Error(ErrorInfo())
END
Syntax

Running an executable (in locking or non-locking mode) Hide the details

<Result> = ExeRun(<Program name> [, <Mode> [, <Wait for end> [, <Working directory>]]])
<Result>: Boolean
  • True if the program was started,
  • False otherwise. ErrorInfo returns more details about the error.
<Program name>: Character string
Name of program to start with its path and/or the parameters that must be passed to the program (if necessary).
  • If no path is specified, the program is sought in the current directory, then in the Windows directory and in the directories accessible by PATH.
  • If the executable corresponds to a long name with space characters, the following syntax must be used:
    <Program name> = " " " Long_name_with_spaces" " Command_line"
<Mode>: Optional integer constant
Program start mode (no action on DOS programs):
exeActive
(Default value)
The program run is active, it "takes control" over the current program.
exeIconizeThe program run is inactive and it is minimized.
Java This constant is not available.
exeInactiveThe launched program is inactive: it runs while the current program maintains focus.
Java This constant is not available.
exeMaximizeThe program run is active, it "takes control" over the current program (the execution window is maximized).
Java This constant is not available.
exeNoHandleInheritanceIndicates that the executable should not inherit handles from the parent (applies to ALL handles, including files). The executable is independent of the application that launched it.
This constant can be combined with other application launch constants.
Java This constant is not available.
Java The launched program is always active: it runs, "taking over" the current program.
<Wait for end>: Optional Boolean constant
Configures the timeout before resuming the execution of the current program:
exeDontWait
(Default value)
The current program and the launched program run in parallel.
exeWaitThe current program resumes its execution when the program run is over.
<Working directory>: Optional character string
Working directory of the application to be started.
WINDEVWindowsLinuxJavaUser code (UMC)

Starting a program and retrieving a value Hide the details

<Result> = ExeRun(<Program name> [, <Mode> [, <Element to return> [, <Working directory>]]])
<Result>: Integer
Sought value:
  • Return value of the executable if <Element to return> corresponds to the exeReturnValue constant.
  • PID of the executable if <Element to return> corresponds to the exePID constant.
ErrorInfo is used to find out whether an error occurred.
<Program name>: Character string
Name of program to start with its path and/or the parameters that must be passed to the program (if necessary).
  • If no path is specified, the program is sought in the current directory, then in the Windows directory and in the directories accessible by PATH.
  • If the executable corresponds to a long name with space characters, the following syntax must be used:
    <Program name> = " " " Long_name_with_spaces" " Command_line"
<Mode>: Optional integer constant
Program start mode (no action on DOS programs).
exeActive
(Default value)
The program run is active, it "takes control" over the current program
exeIconizeThe program run is inactive and it is minimized
exeInactiveThe launched program is inactive: it runs while the current program maintains focus
exeMaximizeThe program run is active, it "takes control" over the current program (the execution window is maximized)
Java This parameter is ignored. The program run is active, it "takes control" over the current program.
<Element to return>: Optional constant
Configures the function result:
exePIDThe current program and the launched program run in parallel. <Result> corresponds to the identifier of created process (also called PID) if the executable was successfully run, 0 if an error occurred.
This identifier can be used in some APIs for example.
Java This constant is not available.
exeReturnValueThe current program resumes its execution when the program run is over. <Result> is the return value of the executable.
<Working directory>: Optional character string
Working directory of the application to be started.
Remarks

Using a command line

To pass parameters in command line to the executable run, you must specify the name and full path of the executable to run.
WINDEV If the program run was developed with WINDEV or WINDEV Mobile, you can get the command line using CommandLine.
WINDEVWindowsLinuxJavaUser code (UMC)

Using the exeActive constant

If the process where the application is run (with the exeActive constant) runs a code allowing the calling program to regain focus, the called program loses control.
In order for the called program to keep focus, you must avoid:
In addition, the Button control (if there is one) whose associated "Click" event contains a call to ExeRun must not be "Tab Stop" ("Accessible by TAB" in the "UI" tab of the control description).
WINDEVWindowsLinuxJavaUser code (UMC)

Return value of a WINDEV executable

A WINDEV executable can return a value. Simply:
  1. Create an Integer variable global to the project.
  2. Initialize this variable with the value to return.
  3. Return this variable with the RETURN keyword in the project closing code.
WINDEVWindowsUser code (UMC)

Starting an application in Windows Vista (and later)

If UAC (User Account Control) is enabled, the application that uses ExeRun to start another application must have higher permissions than the application that is started.
For example, a first application started with the administrator rights can start a second application that requires no specific rights.
If the second application requires greater rights than the application that starts it, the second application may fail to start. Windows proposes to enable the management of compatibility with Windows Vista. If the management of compatibility is enabled, the second application will be run during its next startup. You can also use ShellExecute.
WINDEVWindowsLinuxJavaUser code (UMC)

Miscellaneous

  • ExeRun does not modify the current directory. The current directory before running ExeRun is identical to the current directory after running ExeRun.
  • If the launched program does not take into account the specified execution mode, the program is launched by default in exeActive mode.
Component: wd300std.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 03/28/2025

Send a report | Local help