2011年11月10日木曜日

◆システムモーダルなメッセージボックス(MessageBox)を使う

Powershellから表示しているメッセージボックスが他のウインドウに隠れて気づかないことがあるとの相談を受けた。

ん~、コマンドウインドウにフォーカスを与えれば良いのかな・・・。
それなら前にやったことがあるなぁ、と思いちょっと調べてみた。(なんか簡単に出来た記憶がある)

しかし、見つからない・・・。
自分のブログとかも見てみたが、それらしい記述は無し。
多分、ブログに書くほどでもなかったんだよなぁ・・・、と思いながらネットを調べるもAPIを使ったサンプルばかり。
それほどじゃなかったんだよな・・・。
考えていくうちに、MessagaBox自体モーダルじゃないからコマンドウインドウにフォーカスしても駄目だよなぁ、メッセージボックス自体システムモーダルとかで出してやれば話は早いと思い始めた所で思い出した。

VBの関数だ!!

そう、VBの世界ではシステムモーダルとか簡単に出来たので、なんてことのない機能と思っていたんだ。
最近、VB頭はどんどん減衰しているので以前は取るに足らない機能と思っいたにも関わらず思い出せない状態になっていた。

という事で忘れないようにメモしておく。

PS>[Void][Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
PS>[Microsoft.VisualBasic.Interaction]::MsgBox("Prompt",([Microsoft.VisualBasic.MsgBoxStyle]::Yes -bor [Microsoft.VisualBasic.MsgBoxStyle]::SystemModal),"Title")

ちなみに、最初に探していたフォーカス設定もVBの関数で可能だ。

Interaction クラス

0 件のコメント:

コメントを投稿