AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de Windows / Funciones de ejecutables
  • Usando un comando Line
  • Uso de la constante exeActive
  • Valor de retorno de un ejecutable WINDEV
  • Iniciar una aplicación en código de servidor WEBDEV
  • Iniciar una aplicación en Windows Vista (y posterior)
  • Varios
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Ejecuta un programa (un archivo ejecutable, por ejemplo) desde la aplicación actual.
WEBDEV - Código ServidorAjax Esto le permite recuperar:
  • el valor de retorno del ejecutable con la constante exeReturnValue.
  • el identificador del proceso, también llamado PID con la constante exePID.
WEBDEV - Código Servidor Observaciones:
  • Desde Windows Vista, es posible que las aplicaciones no se inicien si el mecanismo UAC está activado.. Para obtener más información, consulte observaciones.
  • En Windows de 64 bits, puede acceder a un directorio del sistema desde un ejecutable de 32 bits en un directorio diferente. Para obtener más información, consulte Nativo de 64 bits y nativo de 32 bits.
Ejemplo
WEBDEV - Código Servidor
// Start Notepad in default mode
ExeRun("NOTEPAD.EXE Readme.txt")
WEBDEV - Código Servidor
// Start a program with long name containing space characters
// For example: Word with "My documents" as working directory

// Solution 1: Using the syntax specific to the multiline strings
// (to avoid doubling or tripling the quotes)
IF ExeRun([
"C:\Program Files\Microsoft Office\Office12\WINWORD.EXE"
], ...
exeActive, exeDontWait, SysDir(srMyDocuments)) = False THEN
Error(ErrorInfo())
END

// Solution 2: Doubling the quotes
ExeRun("""C:\Program Files\Microsoft Office\Office12\WINWORD.EXE""", ...
exeActive, exeDontWait, SysDir(srMyDocuments))
WEBDEV - Código Servidor
// Start applications with a file in command line
// Name of application to start
sAppName is string = "C:\Program Files\Adobe\Photoshop 6.0\Photoshp.exe"
// Name of the image to open
sImageName is string = "C:\Users\My Name\Pictures\Buildings\IMGP0993.JPG"

// Equivalent to "Start Run" 
// We must get a character string containing "" such as: 
// "C:\Program Files\Adobe\Photoshop 6.0\Photoshp.exe" 
// "C:\Users\My Name\Pictures\Buildings\IMGP0993.JPG"
IF ExeRun(StringBuild([
"%1" "%2"
], sAppName, sImageName)) = False THEN
Error(ErrorInfo())
END
Sintaxis

Ejecutar un ejecutable (en modo de bloqueo o no bloqueo) Ocultar los detalles

<Result> = ExeRun(<Program name> [, <Mode> [, <Wait for end> [, <Working directory>]]])
<Result>: booleano
  • True si se inició el programa,
  • False en caso contrario. ErrorInfo devuelve más detalles sobre el error.
PHP Esta función no devuelve ningún resultado.
<Program name>: Cadena de caracteres
Nombre del programa a iniciar con su ruta y/o los parámetros que deben pasarse al programa (si es necesario).
  • Si no se especifica ruta , el programa se busca en el directorio actual, luego en el directorio de Windows y en los directorios accesibles por PATH.
  • Si el ejecutable corresponde a un nombre largo con espacios, debe utilizarse la siguiente sintaxis:
    <Program name> = " " " Long_name_with_spaces" " Command_line"
<Mode>: Constante opcional de tipo Integer
Modo de inicio de programa (sin acción sobre los programas de DOS):
exeActive
(Valor predeterminado)
El programa ejecutado es Active, "toma control" sobre el programa actual.
exeIconizeEl programa que se ejecuta es Inactive y se minimiza.
exeInactiveEl programa que se ejecuta es Inactive: se ejecuta mientras el programa actual mantiene el foco.
exeMaximizeEl programa ejecutado es Active, "toma control" sobre el programa en curso (la ventana de ejecución se maximiza).
exeNoHandleInheritanceIndica que el ejecutable no debe heredar los manejadores del padre (se aplica a TODOS los manejadores, incluidos los archivos). El ejecutable es independiente de la aplicación que lo lanzó.
Esta constante puede combinarse con otras constantes de lanzamiento de la aplicación.
PHP Este parámetro no está disponible.
<Wait for end>: Constante opcional de tipo Boolean
Configura el tiempo de espera antes de reanudar la ejecución del programa actual:
exeDontWait
(Valor predeterminado)
El programa actual y el programa lanzado se ejecutan en paralelo.
exeWaitEl programa actual continúa su ejecución cuando finaliza la ejecución del programa.
PHP Este parámetro no está disponible.
<Working directory>: Cadena de caracteres opcional
Directorio de trabajo de la aplicación a iniciar.
PHP Este parámetro no está disponible.
WEBDEV - Código ServidorWindowsLinuxAjax

Iniciando un programa y recuperando un valor Ocultar los detalles

<Result> = ExeRun(<Program name> [, <Mode> [, <Element to return> [, <Working directory>]]])
<Result>: Integro
Valor buscado:
  • Valor de retorno del ejecutable si <Elemento por devolver> corresponde a la constante exeReturnValue.
  • PID del ejecutable si <Elemento por devolver> corresponde a la constante exePID.
ErrorInfo se utiliza para saber si se ha producido un error.
<Program name>: Cadena de caracteres
Nombre del programa a iniciar con su ruta y/o los parámetros que deben pasarse al programa (si es necesario).
  • Si no se especifica ruta , el programa se busca en el directorio actual, luego en el directorio de Windows y en los directorios accesibles por PATH.
  • Si el ejecutable corresponde a un nombre largo con espacios, debe utilizarse la siguiente sintaxis:
    = " " " Nombre_largo_con_espacios" " Comando_Line"
<Mode>: Constante opcional de tipo Integer
Modo de inicio del programa (no hay acción en los programas de DOS).
exeActive
(Valor predeterminado)
El programa ejecutado es Active, "toma control" sobre el programa actual
exeIconizeEl programa que se ejecuta es Inactive y se minimiza
exeInactiveEl programa que se ejecuta es Inactive: se ejecuta mientras el programa actual mantiene el foco
exeMaximizeEl programa ejecutado es Active, "toma control" sobre el programa en curso (la ventana de ejecución se maximiza)
<Element to return>: Constante opcional
Configura el resultado de la función:
exePIDEl programa actual y el programa lanzado se ejecutan en paralelo. corresponde al identificador de Process creado (también llamado PID) si el ejecutable se ha ejecutado correctamente, 0 si se ha producido un error.
Este identificador puede utilizarse, por ejemplo, en algunas APIs.
exeReturnValueEl programa actual reanuda su ejecución cuando finaliza la ejecución del programa.. es el valor de retorno del ejecutable.
<Working directory>: Cadena de caracteres opcional
Directorio de trabajo de la aplicación a iniciar.
Observaciones

Usando un comando Line

Para pasar parámetros en el comando Line a la ejecución del ejecutable, debe especificar el nombre y el ruta completo del ejecutable a ejecutar.
WEBDEV - Código ServidorWindowsLinuxAjax

Uso de la constante exeActive

Si el proceso en el que se ejecuta la aplicación (con la constante exeActive) ejecuta un código que permite al programa llamador recuperar el foco, el programa llamado pierde el control.
Para que el programa llamado se mantenga enfocado, debe evitar:
  • llamar a otra ventana o cuadro de diálogo después de llamar a la función ExeRun,
  • llamar a la función SetFocusAndReturnToUserInput después de la función ExeRun.
Además, el control Botón (si lo hay) cuyo evento "Click" asociado contiene una llamada a ExeRun no debe ser "Tab Stop" (" Acceder al control con TAB " en la pestaña "UI" del control description ).
WEBDEV - Código ServidorWindowsLinuxAjax

Valor de retorno de un ejecutable WINDEV

Un ejecutable WINDEV puede devolver un valor. Para ello:
  1. Crear un entero Variable global al proyecto.
  2. Inicie este Variable con el valor a devolver.
  3. Devuelve esta Variable con la palabra clave RETURN en el código de cierre del proyecto.
WEBDEV - Código ServidorAjax

Iniciar una aplicación en código de servidor WEBDEV

La función ExeRun se ejecuta en el servidor, por lo que la aplicación iniciada también se ejecuta en el servidor.
Por defecto, la aplicación sólo es Visible en el administrador de tareas porque se inicia desde un servicio que no interactúa con el escritorio de Windows.
Para que la ejecución del programa sea Visible en el servidor, debe estar marcada la opción "Permitir que el servicio interactúe con el escritorio" en las propiedades del servicio WEBDEV.
WEBDEV - Código ServidorWindowsAjax

Iniciar una aplicación en Windows Vista (y posterior)

Si UAC (Cuenta de usuario control ) está habilitado, la aplicación que usa ExeRun para iniciar otra aplicación debe tener permisos más altos que la aplicación que se inicia.
Por ejemplo, una primera aplicación iniciada con los derechos de administrador puede iniciar una segunda aplicación que no requiera derechos específicos..
Si la segunda solicitud requiere más derechos que la solicitud que la inicia, la segunda solicitud puede no iniciarse. Windows propone permitir la gestión de la compatibilidad con Windows Vista. Si la gestión de la compatibilidad está habilitada, la segunda aplicación se ejecutará durante su próximo inicio.. También es posible utilizar la función ShellExecute.
WEBDEV - Código ServidorWindowsLinuxAjax

Varios

  • La función ExeRun no modifica el directorio actual. El directorio actual antes de ejecutar ExeRun es idéntico al directorio actual después de ejecutar ExeRun.
  • Si el programa ejecutado ignora el modo de ejecución especificado, el programa se ejecuta en modo exeActive de forma predeterminada.
Componente: wd290std.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 23/11/2023

Señalar un error o enviar una sugerencia | Ayuda local