Проверка того, запущена ли программа в интегрированной среде разработки или EXE-файле

В этой статье описывается, как определить, работает ли программа в интегрированной среде разработки Visual Basic или в виде скомпилированного исполняемого файла.

Исходная версия продукта: Visual Basic
Исходный номер базы знаний: 177636

Итоги

В этой статье показано, как определить, работает ли программа в интегрированной среде разработки Visual Basic или в виде скомпилированного исполняемого файла. Вам может потребоваться проверить, где работает ваша программа, если необходимо добавить сведения об отладке, которые не будут отображаться в скомпилированной версии программы.

Дополнительная информация

Существует два метода, которые можно использовать для определения того, работает ли программа из интегрированной среды разработки или EXE.

  • Метод 1. Имя файла EXE отличается от имени проекта

    Объект App содержит общие сведения о программе, например имя исполняемого файла. Если имя проекта и скомпилированная версия проекта имеют разные имена файлов, можно использовать App.EXEName свойство, чтобы определить, выполняется ли EXE или работает ли проект в интегрированной среде разработки. Если программа выполняется из интегрированной среды разработки Visual Basic, EXEName свойство возвращает имя проекта. При запуске программы из исполняемого EXEName файла свойство содержит имя EXE-файла.

  • Метод 2. ИМЯ EXE-файла и имя проекта совпадают

    Если имя проекта и скомпилированная версия используют то же имя, используйте GetModuleFileName функцию API, чтобы определить, работает ли программа из интегрированной среды разработки или из скомпилированной версии. GetModuleFileName получает полный путь и имя файла для исполняемого файла, содержащего указанный модуль. Если функция возвращает путь к файлу Visual Basic, VB5.EXE, программа выполняется в интегрированной среде разработки. В противном случае программа выполняется из исполняемого файла.

GetModuleFileName требует следующих аргументов:

  • hModule: дескриптор модуля, имя файла которого требуется. hInstance Используйте свойство APP объекта для этого параметра.

  • lpFilename: указатель на буфер для получения пути модуля. Создайте строковую переменную длиной 255 символов и передайте эту переменную для этого параметра.

  • nSize: размер символов буферизации. Используйте 255 для этого параметра.

В следующем разделе показано, как создать пример проекта, реализующего оба этих метода.

Пример проекта

  1. Запустите новый проект STANDARD EXE в Visual Basic. Форма1 создается по умолчанию.

  2. Добавьте два commandButtons в Form1.

  3. Скопируйте следующий код в окно "Код" формы 1:

    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. Сохраните проект с именем проекта IDEApp .

  5. Скомпилируйте два разных исполняемых файла из этого проекта. Используйте имя файла по умолчанию IDEApp.exe для первого исполняемого файла. Для второго исполняемого файла используйте имя EXEApp. Чтобы скомпилировать проект, выполните следующие действия.

    • В меню "Файл" нажмите кнопку "Сделать IDEApp.exe". Откроется диалоговое окно "Создание проекта ".

    • Используйте имя файла по умолчанию или введите имя файла в текстовом поле "Имя файла".

    • Нажмите кнопку "ОК ", чтобы создать исполняемый файл и закрыть диалоговое окно "Создание проекта".

  6. В меню "Запуск" нажмите кнопку "Пуск" или нажмите клавишу F5, чтобы запустить программу. Нажмите кнопку "Разные имена проектов и исполняемых файлов". Окно сообщения отображается с сообщением IDEApp, чтобы указать, что программа выполняется из интегрированной среды разработки. Нажмите кнопку "Похожие имена файлов". В окне сообщения отображается сообщение с версией интегрированной среды разработки, чтобы указать, что программа выполняется из интегрированной среды разработки. Закройте проект.

  7. Запустите любой исполняемый файл и щелкните CommandButtons. Отображается окно сообщения, указывающее, что программа выполняется из исполняемого файла.