如何检查程序是否正在运行 IDE 或 EXE 文件


摘要


本文介绍如何确定如果您的程序正在运行 Visual Basic 集成的开发环境 (IDE) 中或已编译的可执行文件。您可能想要检查您的程序运行的位置如果您需要添加不会显示在您的程序的已编译版本的调试信息。

更多信息


有两种方法可用来确定是否从 IDE 或 EXE 运行您的程序。

方法 1: 可执行文件名称与项目名称

应用程序对象包含有关的程序,例如可执行文件名称的一般信息。如果项目名称和项目的已编译的版本具有不同的文件名称,然后可以使用 App.EXEName 属性来确定该 exe 文件正在运行或在 IDE 中运行项目。如果从 Visual Basic IDE 运行该程序,则 EXEName 属性返回项目名称。当从一个可执行文件运行时程序时,EXEName 属性包含可执行文件名称。

方法 2: 可执行文件名称和项目名称是相同的

如果项目名称和编译的版本共享相同的名称,然后使用 GetModuleFileName API 函数以确定程序是否运行在 IDE 中或从已编译的版本。GetModuleFileName 检索的完整路径和文件名包含指定的模块的可执行文件。如果该函数返回的 Visual Basic 文件,VB5 路径。EXE,然后该程序在 IDE 中运行。否则,在程序运行的可执行文件中。GetModuleFileName 需要以下参数:
  • hModule: 所需的文件名的模块的句柄。此参数中使用的 hInstance 属性的应用程序对象。
  • lpFilename: 接收模块路径缓冲区的指针。创建变量 255 个字符的字符串,该变量为此参数传递。
  • nSize: 缓冲的字符的大小。使用此参数为 255。
下一节说明了如何创建一个用于实现这两种方法的示例项目。

示例项目

  1. 在 Visual Basic 中启动一个新的标准 EXE 项目。默认情况下将创建 Form1。
  2. 向 Form1 中添加两个命令。
  3. 将下面的代码复制到 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. IDEApp 项目名称保存该项目。
  5. 在此项目中的两个不同的可执行文件进行编译。使用默认文件的名称,IDEApp.exe,第一个可执行文件。对于第二个可执行文件中,使用 EXEApp 的文件的名称。若要编译该项目,请完成以下步骤:
    • 从文件菜单上,单击使 IDEApp.exe。显示生成项目对话框。
    • 使用默认文件的名称或在文件名称文本框中键入文件的名称。
    • 单击确定以创建可执行文件并关闭品牌项目对话框。
  6. 在运行菜单上,单击开始或按 F5 键以启动该程序。单击不同的项目和可执行文件的名称。消息框中显示的消息,"IDEApp,"以指示该程序正在运行从 IDE。单击文件名称类似按钮。一个消息框显示消息"IDE 版本",以指示从 IDE 中运行该程序。关闭该项目。
  7. 运行任何可执行文件,然后单击命令。指示在程序运行的可执行文件中显示一个消息框。

参考


确定是否在设计环境中运行 16 位 Visual Basic 应用程序有关的信息,请参阅以下文章 Microsoft 知识库中相应的文章:
118819 : 如何判断是否在 VB 设计环境中运行应用程序