IDE または EXE ファイルでプログラムが実行されているかどうかを確認する

この記事では、プログラムが Visual Basic 統合開発環境 (IDE) で実行されているか、コンパイルされた実行可能ファイルとして実行されているかを判断する方法について説明します。

元の製品バージョン: Visual Basic
元の KB 番号: 177636

概要

この記事では、プログラムが Visual Basic IDE で実行されているか、コンパイルされた実行可能ファイルとして実行されているかを判断する方法について説明します。 プログラムのコンパイル済みバージョンでは表示されないデバッグ情報を追加する必要がある場合は、プログラムが実行されている場所をチェックすることもできます。

詳細

プログラムが IDE または EXE から実行されているかどうかを判断するには、2 つの方法があります。

  • 方法 1: EXE ファイル名がプロジェクト名と異なる

    App オブジェクトには、実行可能ファイル名など、プログラムに関する一般的な情報が含まれています。 プロジェクト名とコンパイル済みバージョンのプロジェクトのファイル名が異なる場合は、 プロパティを App.EXEName 使用して、EXE が実行されているかどうか、またはプロジェクトが IDE で実行されているかどうかを判断できます。 プログラムが Visual Basic IDE から実行されている場合、プロパティは EXEName プロジェクト名を返します。 プログラムが実行可能ファイルから実行されている場合、 EXEName プロパティには EXE ファイル名が含まれます。

  • 方法 2: EXE ファイル名とプロジェクト名は同じです

    プロジェクト名とコンパイル済みバージョンが同じ名前を共有している場合は、API 関数を GetModuleFileName 使用して、プログラムが IDE から実行されているか、コンパイル済みバージョンから実行されているかを判断します。 GetModuleFileName は、指定されたモジュールを含む実行可能ファイルの完全なパスとファイル名を取得します。 関数が Visual Basic ファイルへのパスを返 VB5.EXE 場合、プログラムは IDE で実行されます。 それ以外の場合、プログラムは実行可能ファイルから実行されます。

GetModuleFileName には、次の引数が必要です。

  • hModule: ファイル名が必要なモジュールのハンドル。 このパラメーターには hInstance 、 オブジェクトの APP プロパティを使用します。

  • lpFilename: モジュール パスを受け取るバッファーへのポインター。 255 文字の文字列変数を作成し、このパラメーターにその変数を渡します。

  • nSize: バッファリング文字のサイズ。 このパラメーターには 255 を使用します。

次のセクションでは、これらの両方のメソッドを実装するサンプル プロジェクトを作成する方法を示します。

サンプル プロジェクト

  1. Visual Basic で新しい Standard EXE プロジェクトを開始します。 Form1 は既定で作成されます。

  2. 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. このプロジェクトから 2 つの異なる実行可能ファイルをコンパイルします。 最初の実行可能ファイルには、既定のファイル名 (IDEApp.exe) を使用します。 2 番目の実行可能ファイルには、 ファイル名 EXEApp を使用します。 プロジェクトをコンパイルするには、次の手順を実行します。

    • [ ファイル ] メニューの [ IDEApp.exeを作成 ] をクリックします。 [ プロジェクトの作成 ] ダイアログ ボックスが表示されます。

    • 既定のファイル名を使用するか、[ファイル名] テキスト ボックスにファイル名を入力します。

    • [ OK] を クリックして実行可能ファイルを作成し、[ プロジェクトの作成] ダイアログ ボックスを閉じます。

  6. [ 実行 ] メニューの [ スタート ] をクリックするか、 F5 キーを押してプログラムを開始します。 [別のプロジェクトと実行可能ファイル名] ボタンをクリックします。 メッセージ ボックスにメッセージ IDEApp が表示され、プログラムが IDE から実行されていることを示します。 [ 類似ファイル名 ] ボタンをクリックします。 プログラムが IDE から実行されていることを示すメッセージ ボックス ( IDE バージョン ) が表示されます。 プロジェクトを閉じます。

  7. いずれかの実行可能ファイルを実行し、 CommandButtons をクリックします。 プログラムが実行可能ファイルから実行されていることを示すメッセージ ボックスが表示されます。