Windows 10でメッセージボックスを表示する方法(PowerShellとバッチファイル)

Windows 10 でカスタムメッセージ ボックスを表示するには、Windows PowerShell から組み込みの Windows FormsMessageBox.Showメソッドを呼び出します。ターミナルから一度実行するか、再利用可能なファイルとして保存してください.bat。.ps1サインインしているデスクトップ セッションに管理者アカウントは必要ありません。

メッセージボックスは、閉じられるまで開いたままになり、所有者とのやり取りをブロックするモーダルダイアログです。トースト通知とは異なります。MicrosoftのMessageBox.Showリファレンスには、メッセージ、キャプション、ボタン、アイコンの引数が記載されています。

メッセージの表示方法を選択してください

  • 一度限りのダイアログ: PowerShellで短いコマンドを実行します。
  • コマンドプロンプトから実行します: Windows PowerShell を起動しますpowershell.exe。
  • 後で再利用するには、コマンドをバッチファイルまたはPowerShellスクリプトとして保存してください。

この例では、Windows PowerShellとSystem.Windows.FormsWindowsに搭載されているアセンブリを使用しています。コマンドはまずそのアセンブリを読み込み、次にメッセージ、タイトル、OKボタン、および情報アイコンを指定します。

再利用可能なバッチファイルを作成する

  1. スタートメニューからメモ帳を開いてください。この短いスクリプトには、空白の文書で十分です。
    カーソルが文書の先頭にある、空白のメモ帳ウィンドウ。
    スクリプトを入力する前に、空白のメモ帳を開いてください。
  2. 以下の2行を貼り付けてください。
    @echo off
    powershell.exe -NoProfile -Command "Add-Type -AssemblyName System.Windows.Forms; [void][System.Windows.Forms.MessageBox]::Show('Backup complete.', 'Backup status', [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)"
    バッチファイルの冒頭行「@echo off」とPowerShellコマンドが書かれたメモ帳。
    このバッチファイルは、プロファイルを読み込まずにPowerShellを起動します。
  3. Backup complete.テキストとタイトルをそれぞれ変更してくださいBackup status。両方の文字列をシングルクォーテーションで囲んでください。ボタンとアイコンの値を明示的に指定することでダイアログが予測可能になります。[void]この例ではボックスを表示するだけなので、メソッドの戻り値は破棄されます。
    メモ帳に、カスタムタイトル、メッセージ、OKボタン、情報アイコンを含むWindowsフォームメッセージボックスの呼び出しが表示されている。
    MessageBox.Show メソッド内でメッセージとタイトルを設定します。
  4. 「ファイル」>「名前を付けて保存」を選択します。ShowMessage.batファイル名に「」と入力し、ファイルの種類として「すべてのファイル」を選択して、デスクトップなど見つけやすい場所に保存します。ファイルの種類をテキスト文書のままにしておくと、メモ帳がShowMessage.bat.txt別の名前で保存する場合があります。
    Windowsの「名前を付けて保存」ダイアログで、ファイル名としてShowMessage.batを入力し、「すべてのファイル」を選択している。
    .bat拡張子で保存し、「すべてのファイル」を選択してください。
  5. 保存したShowMessage.batファイルを開きます。メッセージボックスが表示されますので、「OK」をクリックして閉じます。
    デスクトップ上のファイルエクスプローラーで、ShowMessage.batが選択されている状態。
    ファイルエクスプローラーから保存したバッチファイルを実行してください。
    「バックアップの状態」というタイトルのWindows情報ダイアログが表示され、「バックアップが完了しました」というメッセージと「OK」ボタンが表示されます。
    カスタムメッセージボックスは、「OK」が選択されるまで開いたままになります。

バッチファイルではPowerShellコマンドが引用符で囲まれた形で記述されるため、テキストは簡潔にし、メッセージとタイトルには二重引用符を使用しないでください。

PowerShellでコマンドを直接実行する

  1. スタートメニューからWindows PowerShellを開きます。
    Windows PowerShellウィンドウがプロンプトとともに開きます。
    一度限りのコマンドを実行するには、Windows PowerShellを開きます。
  2. 以下のコマンドを貼り付けてEnterキーを押してください。
    Add-Type -AssemblyName System.Windows.Forms
    [void][System.Windows.Forms.MessageBox]::Show('Backup complete.', 'Backup status', [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)
    Add-TypeコマンドとMessageBox.Showコマンドが入力されたPowerShellウィンドウ。
    Windowsフォームを読み込み、次にMessageBox.Showを呼び出します。
  3. ダイアログが表示されたら「OK」をクリックしてください。
    Windowsの情報ダイアログに、「バックアップの状態」というタイトルの下に「バックアップが完了しました」と表示されます。
    PowerShellコマンドは要求されたメッセージを表示します。

再利用可能な PowerShell スクリプトを作成するには、上記の 2 行の PowerShell スクリプトをメモ帳に保存しShowMessage.ps1、[すべてのファイル]を選択します。デスクトップコピーを で実行します& "$env:USERPROFILE\Desktop\ShowMessage.ps1"。実行ポリシーによってスクリプトがブロックされる場合は、デバイス全体のポリシーを変更するのではなく、インライン コマンドまたはバッチ ファイルを使用してください。Microsoft のAdd-Type のドキュメントを参照してください。

コマンドプロンプトからのメッセージを表示する

コマンドプロンプトで、この1行のコマンドを貼り付けてEnterキーを押してください。これによりWindows PowerShellが起動し、ダイアログコードが渡されます。

powershell.exe -NoProfile -Command "Add-Type -AssemblyName System.Windows.Forms; [void][System.Windows.Forms.MessageBox]::Show('Backup complete.', 'Backup status', [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information)"
コマンドプロンプトに、Windowsフォームのメッセージボックスを呼び出すpowershell.exeコマンドが含まれている。
コマンドプロンプトは、同じダイアログ呼び出しをPowerShellに渡すことができます。

ダイアログがデスクトップ上に表示されます。[OK]をクリックして閉じると、コマンドプロンプトが元のプロンプトに戻ります。このスイッチは、Microsoft のWindows PowerShell コマンドライン リファレンス-NoProfileに記載されているように、ユーザー プロファイルを読み込まずに PowerShell を起動します。

デスクトップ上に「バックアップの状態」というタイトルのWindows情報メッセージボックスと「OK」ボタンが表示される。
ダイアログを閉じると、コマンドプロンプトに戻ります。

はいといいえボタンを使用してください

質問をするには、ボタンとアイコンの引数を変更し、結果を確認します。このメソッドは を返すDialogResultため、スクリプトは回答に応じて異なるアクションを実行できます。

$answer = [System.Windows.Forms.MessageBox]::Show('Continue with cleanup?', 'Confirm action', [System.Windows.Forms.MessageBoxButtons]::YesNo, [System.Windows.Forms.MessageBoxIcon]::Question)
if ($answer -eq [System.Windows.Forms.DialogResult]::Yes) { 'Continue with cleanup' } else { 'Cancelled' }
「操作の確認」というタイトルのWindows確認ダイアログ(「はい」と「いいえ」ボタン付き)。
スクリプトでユーザーの判断が必要な場合は、「はい」と「いいえ」を使用してください。

PowerShell のシングルクォート文字列は、ほとんどの文字をそのまま扱います。メッセージ自体にアポストロフィが含まれている場合は、文字列内でアポストロフィを二重にしてください (例: 'Don''t close this window')。Microsoft のPowerShell の引用ルールを参照してください。バッチ コマンドの場合は、コマンドが引用符で囲まれた引数の中にネストされているため、メッセージ内で二重引用符を使用することも避けてください-Command。

メッセージボックスが表示されない場合

  • ファイルの末尾が.batまたは であることを確認してください。で終わって.ps1いないことを確認してください。.txt
  • サインインしたデスクトップセッションで実行してください。サービスや非対話型プロセスでは、UIが表示されない場合があります。
  • ダイアログが別のウィンドウの背後にある可能性がある場合は、Alt+Tabを使用してください。
  • 保存したスクリプトが失敗した場合は、インラインコマンドを使用してファイル名または引用符のエラーを特定してみてください。

現在の作業を中断させないリマインダーだけが必要な場合は、このモーダルダイアログではなく、Windows通知を使用してください。確認が必要なシンプルなカスタムポップアップの場合は、上記のPowerShellメソッドが最も簡単な方法です。

コメントを残す

Windows Serverでハードドライブの状態を確認する方法

Windows Serverでハードドライブの状態を確認する方法

Windows Serverのディスクの状態と信頼性カウンターを確認し、利用可能な場合はSMARTデータを検証し、ハードウェア警告とNTFSエラーを区別してください。

Windows Serverでユーザーを追加および削除する方法

Windows Serverでユーザーを追加および削除する方法

コンピューターの管理またはPowerShellを使用して、ローカルのWindows Serverユーザーを作成、管理者権限を付与、無効化、または削除する方法を説明します。Active Directoryを使用すべき場合についても説明します。

Windows ServerにServiioメディアサーバーをセットアップする

Windows ServerにServiioメディアサーバーをセットアップする

ServiioをWindows Serverにインストールし、ローカルまたはNASのメディアフォルダを共有して、DLNA再生をテストします。Windowsサービス、ファイアウォール、およびPro版限定のブラウザ機能を確認する方法についても説明します。

WindowsでPNG、JPG、またはBMP画像をICOに変換する方法

WindowsでPNG、JPG、またはBMP画像をICOに変換する方法

GIMPを使用して、PNG、JPG、またはBMPファイルをWindowsのICOファイルに変換します。正方形の画像を用意し、必要に応じて透明度を保持し、標準サイズを追加して、エクスポート結果を確認します。

Windows 8でキャッシュをクリアする方法:ステップバイステップガイド

Windows 8でキャッシュをクリアする方法:ステップバイステップガイド

Windows 8に内蔵されているツールを使用して、サムネイル、DNS、Internet Explorer、Microsoft Store、検索、ライブタイルのデータを消去し、それぞれのクリーンアップで何が削除されるかを学びましょう。

Windows ServerにVMware Workstation Proをセットアップする

Windows ServerにVMware Workstation Proをセットアップする

互換性のあるWindows ServerホストにVMware Workstation Proをインストールします。サポート状況の確認、適切なビルドのダウンロードから、最初の仮想マシンの作成まで、手順を追って説明します。

LinuxパーティションをフォーマットせずにWindows上で読み取る方法

LinuxパーティションをフォーマットせずにWindows上で読み取る方法

Windows上でExt2、Ext3、またはExt4ファイルを読み取り専用ワークフローで閲覧およびコピーできます。Linux Readerの無料版がサポートする機能と、WSLが適している場面を確認してください。

Windows Server上でCaddyをWebサーバーとして実行する方法

Windows Server上でCaddyをWebサーバーとして実行する方法

CaddyのネイティブWindowsバイナリをインストールし、テストサイトを稼働させ、ドメインの自動HTTPSを有効にし、CaddyをWindows Serverサービスとして実行します。

エムダッシュの入力方法:Windows、Mac、Word、Googleドキュメントで使える5つの簡単な方法

エムダッシュの入力方法:Windows、Mac、Word、Googleドキュメントで使える5つの簡単な方法

WindowsのAltコードやMacのキー、Microsoft WordやGoogle Docsの記号メニューなど、emダッシュを入力するための信頼できる5つの方法を学びましょう。

Windows Server 上に Jellyfin サーバーをセットアップする方法

Windows Server 上に Jellyfin サーバーをセットアップする方法

JellyfinをWindowsサービスとしてインストールし、メディアへの限定的なアクセス権限を付与してセットアップを完了したら、LAN上またはより安全なリモート接続を介してクライアントを接続してください。