この記事では、プログラムが 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 ファイル名とプロジェクト名は同じです
プロジェクト名とコンパイル済みバージョンが同じ名前を共有している場合は、
GetModuleFileNameAPI 関数を使用して、プログラムが IDE またはコンパイル済みバージョンから実行されているかどうかを判断します。GetModuleFileNameは、指定されたモジュールを含む実行可能ファイルの完全なパスとファイル名を取得します。 関数が Visual Basic ファイルへのパスを返VB5.EXE場合、プログラムは IDE で実行されています。 それ以外の場合、プログラムは実行可能ファイルから実行されます。
GetModuleFileName には、次の引数が必要です。
hModule: ファイル名が必要なモジュールへのハンドル。 このパラメーターには、APPオブジェクトのhInstanceプロパティを使用します。lpFilename: モジュール パスを受け取るバッファーへのポインター。 255 文字の長い文字列変数を作成し、このパラメーターにその変数を渡します。nSize: バッファリング文字のサイズ。 このパラメーターには 255 を使用します。
次のセクションでは、これらの両方のメソッドを実装するサンプル プロジェクトを作成する方法を示します。
サンプル プロジェクト
Visual Basic で新しい Standard EXE プロジェクトを開始します。 Form1 は既定で作成されます。
Form1 に 2 つの CommandButtons を追加します。
次のコードを 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 SubIDEApp プロジェクト名でプロジェクトを保存します。
このプロジェクトから 2 つの異なる実行可能ファイルをコンパイルします。 最初の実行可能ファイルには、既定のファイル名 (IDEApp.exe) を使用します。 2 番目の実行可能ファイルには、ファイル名 EXEApp を使用します。 プロジェクトをコンパイルするには、次の手順を実行します。
File メニューの [Make IDEApp.exe] をクリックします。 [ Make プロジェクト ] ダイアログ ボックスが表示されます。
既定のファイル名を使用するか、[ファイル名] テキスト ボックスにファイル名を入力します。
[ OK をクリックして実行可能ファイルを作成し、 Make プロジェクト ダイアログ ボックスを閉じます 。
Run メニューの Start をクリックするか、F5 キーを押してプログラムを開始します。 [別のプロジェクト名と実行可能ファイル名] ボタンをクリックします。 メッセージ ボックスに、プログラムが IDE から実行されていることを示すメッセージ IDEApp と共に表示されます。 [ ファイル名 ボタンをクリックします。 メッセージ ボックスにメッセージ IDE バージョン 表示され、プログラムが IDE から実行されていることを示します。 プロジェクトを閉じます。
いずれかの実行可能ファイルを実行し、 CommandButtons をクリックします。 プログラムが実行可能ファイルから実行されていることを示すメッセージ ボックスが表示されます。