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 を使用します。
次のセクションでは、これらの両方のメソッドを実装するサンプル プロジェクトを作成する方法を示します。
サンプル プロジェクト
Visual Basic で新しい Standard EXE プロジェクトを開始します。 Form1 は既定で作成されます。
2 つの CommandButton を Form1 に追加します。
次のコードを 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
IDEApp プロジェクト名でプロジェクトを保存します。
このプロジェクトから 2 つの異なる実行可能ファイルをコンパイルします。 最初の実行可能ファイルには、既定のファイル名 (IDEApp.exe) を使用します。 2 番目の実行可能ファイルには、 ファイル名 EXEApp を使用します。 プロジェクトをコンパイルするには、次の手順を実行します。
[ ファイル ] メニューの [ IDEApp.exeを作成 ] をクリックします。 [ プロジェクトの作成 ] ダイアログ ボックスが表示されます。
既定のファイル名を使用するか、[ファイル名] テキスト ボックスにファイル名を入力します。
[ OK] を クリックして実行可能ファイルを作成し、[ プロジェクトの作成] ダイアログ ボックスを閉じます。
[ 実行 ] メニューの [ スタート ] をクリックするか、 F5 キーを押してプログラムを開始します。 [別のプロジェクトと実行可能ファイル名] ボタンをクリックします。 メッセージ ボックスにメッセージ IDEApp が表示され、プログラムが IDE から実行されていることを示します。 [ 類似ファイル名 ] ボタンをクリックします。 プログラムが IDE から実行されていることを示すメッセージ ボックス ( IDE バージョン ) が表示されます。 プロジェクトを閉じます。
いずれかの実行可能ファイルを実行し、 CommandButtons をクリックします。 プログラムが実行可能ファイルから実行されていることを示すメッセージ ボックスが表示されます。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示