Cómo comprobar si el programa se ejecuta en el IDE o un archivo EXE


Resumen


En este artículo se muestra cómo determinar si el programa se ejecuta en el entorno de desarrollo integrado (IDE) de Visual Basic o como un archivo ejecutable compilado. Es posible que desee comprobar dónde se ejecuta el programa si desea añadir información de depuración no estará visible en la versión compilada del programa.

Más información


Hay dos métodos que puede utilizar para determinar si se ejecuta el programa desde el IDE o en el archivo EXE.

Método 1: Nombre de archivo EXE difiere del nombre de proyecto

El objeto de la aplicación contiene información general acerca del programa, como el nombre del archivo ejecutable. Si el nombre del proyecto y la versión compilada del proyecto tienen nombres de archivo diferentes, puede utilizar la propiedad App.EXEName para determinar si se está ejecutando el archivo EXE o si está ejecutando el proyecto en el IDE. Si el programa se ejecuta desde el IDE de Visual Basic, la propiedad EXEName devuelve el nombre del proyecto. Cuando se ejecuta un programa desde un archivo ejecutable, la propiedad EXEName contiene el nombre del archivo EXE.

Método 2: Nombre del archivo EXE y el nombre del proyecto son los mismos

Si el nombre del proyecto y la versión compilada comparten el mismo nombre, a continuación, utilice la función API de GetModuleFileName para determinar si se ejecuta el programa desde el IDE o desde una versión compilada. GetModuleFileName recupera la ruta de acceso completa y el nombre del archivo ejecutable que contiene el módulo especificado. Si la función devuelve una ruta de acceso al archivo de Visual Basic, VB5. EXE, a continuación, el programa se ejecuta en el IDE. De lo contrario, el programa se ejecuta desde un archivo ejecutable. GetModuleFileName requiere los siguientes argumentos:
  • hModule: identificador del módulo cuyo nombre de archivo que desee. Utilice la propiedad hInstance del objeto APP para este parámetro.
  • lpFilename: puntero al búfer que recibe la ruta de acceso del módulo. Crear una cadena de caracteres en la variable 255 y pasar esa variable para este parámetro.
  • nSize: el tamaño del búfer de caracteres. Utilice 255 para este parámetro.
La sección siguiente muestra cómo crear un proyecto de ejemplo que implementa ambos métodos.

Proyecto de ejemplo

  1. Inicie un nuevo proyecto EXE estándar en Visual Basic. Se creará Form1 de forma predeterminada.
  2. Agregue dos controles CommandButtons a Form1.
  3. Copie el código siguiente en la ventana código de Form1:
          Option Explicit      Private Declare Function GetModuleFileName Lib "kernel32" _         Alias "GetModuleFileNameA" _         (ByVal hModule As Long, _         ByVal lpFileName As String, _         ByVal nSize As Long) As Long      Private Sub Form_Load()         'Set the command button names         Command1.Caption = "Different Project and Executable Names"         Command2.Caption = "Similar File Names"      End Sub      Private Sub Command1_Click()          'Click this button if the project name and the compiled file          'name are different.          MsgBox VB.App.EXEName      End Sub      Private Sub Command2_Click()         'Click this button if the project name and the compiled file         'name are the same.         Dim strFileName As String         Dim lngCount As Long         strFileName = String(255, 0)         lngCount = GetModuleFileName(App.hInstance, strFileName, 255)         strFileName = Left(strFileName, lngCount)         If UCase(Right(strFileName, 7)) <> "VB5.EXE" Then             MsgBox "Compiled Version"         Else             MsgBox "IDE Version"         End If      End Sub
  4. Guardar el proyecto con el nombre del proyecto IDEApp.
  5. Compile los dos archivos ejecutables diferentes de este proyecto. Utilice el nombre de archivo predeterminado, IDEApp.exe, para el primer archivo ejecutable. Para el segundo archivo ejecutable, utilice el nombre de archivo EXEApp. Para compilar el proyecto, realice los pasos siguientes:
    • En el menú archivo, haga clic en hacer IDEApp.exe. Aparecerá el cuadro de diálogo Crear proyecto.
    • Utilice el nombre de archivo predeterminado o escriba el nombre del archivo en el cuadro de texto Nombre de archivo.
    • Haga clic en Aceptar para crear el archivo ejecutable y cerrar el cuadro de diálogo proyecto de realizar.
  6. En el menú Ejecutar, haga clic en Inicio o presione la tecla F5 para iniciar el programa. Haga clic en el botón proyecto diferente y nombres de archivo ejecutable. Muestra un cuadro de mensaje con el mensaje "IDEApp", para indicar que se está ejecutando el programa desde el IDE. Haga clic en el botón de los nombres de archivo similares. Muestra un cuadro de mensaje con el mensaje "Versión de IDE", para indicar que el programa se ejecuta desde el IDE. Cierre el proyecto.
  7. Ejecutar cualquier archivo ejecutable y haga clic en los botones de comando. Se muestra un cuadro de mensaje indicando que el programa se ejecuta desde un archivo ejecutable.

Referencias


Para obtener información acerca de cómo determinar si está ejecutando una aplicación de 16 bits de Visual Basic en el entorno de diseño, consulte el artículo siguiente en Microsoft Knowledge Base:
118819 : cómo saber si una aplicación se ejecuta en el entorno de diseño VB