satocchiaブログ

satocchiaブログ

PR

×

キーワードサーチ

▼キーワード検索

カレンダー

コメント新着

tomoZo@ Re:Pale Moon日本語化トラブル(06/06) はじめまして。 28.16.0でまたもや提供さ…
satocchia @ Re[1]:Pale Moon日本語化トラブル(06/06) zui_9さんへ 本日、確認しました。ようや…
zui_9 @ Re:Pale Moon日本語化トラブル(06/06) 上記リンク「Githubのプロジェクト」の左…
わたなべ@ Re:powershellコンソール、見づらくありませんか?(08/26) 初めまして、この情報最高です! 背景を白…
y__@ Re:uwscでGUIフォーム(05/12) UWSC 仮掲示板から飛んできました。 HTAで…
2017.03.17
XML
カテゴリ: powershell
Windowsフォームのmessageboxを簡単に使える関数を作ってみた。

最初の引数は出力メッセージ、第二引数はボックスのタイトルなんだけど、途中でボタンやらアイコンやらのオプションとして解釈できる引数があると順不同でちゃんと設定してくれる。

でどんなオプションがあるかは下のコメントアウト部分を実行すると表示してくれる。


#msgbox メッセージボックス表示関数 
#引数に System.windows.forms.MessageBox 関連の列挙体を入れると位置に関係なく所定の動作を行う。
#列挙体の指定はあくまでシンボル文字列で行う。例えば、System.windows.forms.MessageBoxButtons::ok
#の値は0であるが、0を引数として与えてもただの文字列"0"をメッセージかタイトルに表示し、メッセージボタン表示には影響しない。
#逆に、「はい」「いいえ」の2ボタンを表示する場合は、System.windows.forms.MessageBoxButtons::yesnoの値である4を与えても
#ただの文字列として解釈するため、明示的に yesno を与えなければならない。
#yesnoという文字をh常時したいときは次のようにっ空白を追加するなどする。
#下の例では、タイトルに「yesno」本文に「質問」、「はい」「いいえ」「キャンセル」を表示する。
#msgbox 質問 "yesno " yesnocancel
###############################################################################################
#それ以外の引数は若い順に メッセージ本文、タイトルとなる。
#可能なオプション(列挙体の値)は次のスクリプトで得られる。
#
#"Buttons","DefaultButton","Icon"|%{
#    "$_="
#    $typename="System.windows.forms.MessageBox$_"
#    "`t"+(iex "[enum]::GetValues([$typename])")
#}    
###############################################################################################
try{
    [void][System.Windows.Forms.MessageBox]
}catch [Exception]{
    [void][Reflection.Assembly]::LoadWithPartialName( "System.Windows.Forms" )
}
function msgbox{ #引数最初の二つは 表示文字列、タイトル。残りは列挙体として解釈可能なものを設定し、指定がなければデフォルト値とする。
    functiongetEnum( $enumName ){#System.windows.forms.MessageBoxButtons
        iex "[enum]::GetValues([${enumName}])"
    }
    functionisMember( $str, $enumName ){
        !!(( getEnum $enumName )|?{[string]$_ -eq $str})
    $argsave=$args
    $arguments=@();
    0..( $args.length - 1 )|%{
        $argu=$argsave[ $_ ]
        if ( isMember $argu "System.Windows.Forms.MessageBoxButtons" ){
            $buttontype=$argu
            return
        }
        if ( isMember $argu "System.Windows.Forms.MessageBoxIcon" ){
            $icon=$argu
            return
        }
        if ( isMember $argu "System.Windows.Forms.MessageBoxDefaultButton" ){
            $default=$argu
            return
        }
        $arguments+=,$argu
    }
    $msg=$arguments[ 0 ]
    $title=$arguments[ 1 ]
    if ( ![string]$msg ){ $msg=" " }
    if ( !$title ){ $title=" " }
    if ( !$buttontype ){ $buttontype="OK" }
    if ( !$icon ){ $icon="None" }
    if ( !$default ){ $default="Button1" }
    [System.Windows.Forms.MessageBox]::show( $msg, $title, $buttontype, $icon, $default )
}
#msgbox aaa button2 bbb yesnocancel warning





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2017.05.30 07:01:22
コメント(0) | コメントを書く
[powershell] カテゴリの最新記事


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: