如何檢查程式是否正在 IDE 或 EXE 檔上執行


摘要


本文將示範如何判斷,如果您的程式正在執行 Visual Basic 整合式的開發環境 (IDE) 中,或為編譯的可執行檔。您可能想要檢查您的程式是否正在執行,如果您要新增不會顯示在您的程式的編譯版本的偵錯資訊。

其他相關資訊


有兩個方法可用來判斷您的程式是否正在執行從 IDE 或 EXE。

方法 1: EXE 檔案名稱不同於專案名稱

應用程式物件包含該程式,例如可執行檔名稱的一般資訊。如果專案名稱及專案的編譯的版本有不同的檔案名稱,然後您就可以使用 App.EXEName 屬性來決定如果 EXE 正在執行,或如果您的專案在 IDE 中執行。如果應用程式從 Visual Basic IDE,EXEName 屬性會傳回專案名稱。當程式在執行時,所可執行檔時,EXEName 屬性會包含 EXE 的檔案名稱。

方法 2: EXE 檔案名稱和專案名稱相同

如果專案名稱以及編譯的版本共用相同的名稱,然後使用 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 設計環境中執行的應用程式