共用方式為


檢查程式是否在 IDE 或 EXE 檔案中執行

本文說明如何判斷程式是否在 Visual Basic 集成開發環境 (IDE) 或編譯的可執行檔中執行。

原始產品版本: Visual Basic
原始 KB 編號: 177636

摘要

本文示範如何判斷程式是否在 Visual Basic IDE 中執行,或以已編譯的可執行檔的形式執行。 如果您需要新增在編譯版本的程式中看不到的偵錯資訊,您可能想要檢查程序執行位置。

其他相關資訊

您可以使用兩種方法來判斷程式是否從 IDE 或 EXE 執行。

  • 方法 1:EXE 檔名與項目名稱不同

    App 物件包含程式的一般資訊,例如可執行檔名稱。 如果專案名稱和已編譯的專案版本有不同的檔名,您可以使用 App.EXEName 屬性來判斷 EXE 是否正在執行,或專案是否在 IDE 中執行。 如果程式是從 Visual Basic IDE 執行,則 EXEName 屬性會傳回項目名稱。 當程式從可執行檔執行時, EXEName 屬性會包含 EXE 檔名。

  • 方法 2:EXE 檔名和項目名稱相同

    如果專案名稱和編譯的版本共用相同的名稱,請使用 GetModuleFileName API 函式來判斷程式是否從 IDE 或從編譯的版本執行。 GetModuleFileName 會擷取包含指定模組之可執行檔的完整路徑和檔名。 如果函式傳回 Visual Basic 檔案的路徑,VB5.EXE,則程式會在 IDE 中執行。 否則,程式會從可執行文件執行。

GetModuleFileName 需要下列自變數:

  • hModule:您要其檔名的模組句柄。 hInstance針對這個參數使用 對象的屬性APP

  • lpFilename:要接收模組路徑之緩衝區的指標。 建立長度為 255 個字元的字串變數,並傳遞此參數的變數。

  • nSize:緩衝字元的大小。 針對此參數使用 255。

下一節說明如何建立實作這兩種方法的範例專案。

範例專案

  1. 在 Visual Basic 中啟動新的 Standard EXE 專案。 Form1 預設會建立。

  2. 將兩個 CommandButton 新增 至 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. 執行任一個可執行檔,然後按下 CommandButtons。 顯示消息框,指出程式是從可執行檔執行。