Comprobación de si el programa se está ejecutando en el IDE o en un archivo EXE

En este artículo se describe cómo determinar si el programa se ejecuta en el entorno de desarrollo integrado (IDE) de Visual Basic o como un archivo ejecutable compilado.

Versión original del producto: Visual Basic
Número de KB original: 177636

Resumen

En este artículo se muestra cómo determinar si el programa se ejecuta en el IDE de Visual Basic o como un archivo ejecutable compilado. Es posible que quiera comprobar dónde se ejecuta el programa si necesita agregar información de depuración que no sería visible en la versión compilada del programa.

Más información

Hay dos métodos que puede usar para determinar si el programa se ejecuta desde el IDE o exe.

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

    El objeto App contiene información general sobre el 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 usar la App.EXEName propiedad para determinar si el EXE se está ejecutando o si el proyecto se ejecuta en el IDE. Si el programa se ejecuta desde el IDE de Visual Basic, la EXEName propiedad devuelve el nombre del proyecto. Cuando un programa se ejecuta desde un archivo ejecutable, la EXEName propiedad contiene el nombre de archivo EXE.

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

    Si el nombre del proyecto y la versión compilada comparten el mismo nombre, use la GetModuleFileName función de API para determinar si el programa se ejecuta desde el IDE o desde una versión compilada. GetModuleFileName recupera la ruta de acceso completa y el nombre de archivo 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, el programa se ejecuta en el IDE. De lo contrario, el programa se ejecuta desde un archivo ejecutable.

GetModuleFileName requiere los argumentos siguientes:

  • hModule: identificador del módulo cuyo nombre de archivo desea. Use la hInstance propiedad del APP objeto para este parámetro.

  • lpFilename: puntero al búfer para recibir la ruta de acceso del módulo. Cree una variable de cadena de 255 caracteres de largo y pase esa variable para este parámetro.

  • nSize: el tamaño de los caracteres de almacenamiento en búfer. Use 255 para este parámetro.

En la sección siguiente se muestra cómo crear un proyecto de ejemplo que implementa estos dos métodos.

Proyecto de ejemplo

  1. Inicie un nuevo proyecto EXE estándar en Visual Basic. Form1 se crea de forma predeterminada.

  2. Agregue dos 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. Guarde el proyecto con el nombre del proyecto IDEApp .

  5. Compile dos archivos ejecutables diferentes de este proyecto. Use el nombre de archivo predeterminado, IDEApp.exe, para el primer archivo ejecutable. Para el segundo archivo ejecutable, use el nombre de archivo EXEApp. Para compilar el proyecto, complete los pasos siguientes:

    • En el menú Archivo , haga clic en Crear IDEApp.exe. Aparece el cuadro de diálogo Crear proyecto .

    • Use el nombre de archivo predeterminado o escriba el nombre de 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 Crear proyecto .

  6. En el menú Ejecutar , haga clic en Iniciar o presione la tecla F5 para iniciar el programa. Haga clic en el botón Diferentes nombres de proyecto y ejecutable. Se muestra un cuadro de mensaje con el mensaje IDEApp para indicar que el programa se ejecuta desde el IDE. Haga clic en el botón Nombres de archivo similares . Se muestra un cuadro de mensaje con el mensaje, Versión del IDE, para indicar que el programa se está ejecutando desde el IDE. Cierre el proyecto.

  7. Ejecute cualquiera de los archivos ejecutables y haga clic en commandbuttons. Se muestra un cuadro de mensaje que indica que el programa se ejecuta desde un archivo ejecutable.