Comprobar 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 está ejecutando en el entorno de desarrollo integrado (IDE) de Visual Basic o como archivo ejecutable compilado.

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

Resumen

En este artículo se muestra cómo determinar si el programa se está ejecutando en el IDE de Visual Basic o como archivo ejecutable compilado. Es posible que desee 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 está ejecutando desde el IDE o desde el EXE.

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

    El objeto App 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 distintos, puede usar la App.EXEName propiedad para determinar si el exe se está ejecutando o si el proyecto se está ejecutando en el IDE. Si el programa se está ejecutando 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 del archivo exe.

  • Método 2: el 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, use la GetModuleFileName función API para determinar si el programa se está ejecutando 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 está ejecutando en el IDE. De lo contrario, el programa se ejecuta desde un archivo ejecutable.

GetModuleFileName requiere los siguientes argumentos:

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

  • lpFilename: un puntero al búfer para recibir la ruta de acceso del módulo. Cree una variable de cadena de 255 caracteres de longitud 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 implemente ambos 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 de 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 desde 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, siga los pasos que se indican a continuación:

    • En el menú archivo , haga clic en crear IDEApp.exe. Aparecerá 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 distintos nombres de proyecto y ejecutables. Se muestra un cuadro de mensaje con el mensaje, IDEApp, para indicar que el programa se está ejecutando desde el IDE. Haga clic en el botón nombres de archivo similares . Se muestra un cuadro de mensaje con el mensaje, versión IDE, para indicar que el programa se está ejecutando desde el IDE. Cierre el proyecto.

  7. Ejecute un archivo ejecutable y haga clic en el CommandButtons. Se muestra un cuadro de mensaje que indica que el programa se está ejecutando desde un archivo ejecutable.