- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

Ruby

はじめに Edit

WindowsのRubyで、メッセージボックスというか、メッセージダイアログを出したい時。

WSHを使う方法 Edit

WSHを使うのが多分、一番簡単な方法です。

1
2
3
4
5
6
7
8
require 'win32ole'

def show(msg, title)
  wsh = WIN32OLE.new('WScript.Shell')
  wsh.Popup(msg, 0, title, 0 + 64 + 0x40000)
end

show("Hello World!", "message")

簡単ポン

こちらのページも参考にして下さい。

WConstの値 Edit

上記サイトから、重要な定数を引用しておきますので、参考にすべし。

WConstの値と返り値
MB_OK                   = 0 # OK->1
MB_OKCANCEL             = 1 # OK->1, CANCEL->2
MB_ABORTRETRYIGNORE     = 2 # ABORT->3, RETRY->4, IGNORE->5
MB_YESNOCANCEL          = 3 # YES->6, NO->7, CANCEL->2
MB_YESNO                = 4 # YES->6, NO->7
MB_RETRYCANCEL          = 5 # RETRY->4, CANCEL->2

例えば、4(つまり、MB_YESNO) を指定すると
YES->6, NO->7ってのは、つまり、6が返ってきたらYES、7が返ってきたらNOが押されたということ。

アイコンと規定値 Edit

アイコン

MB_ICONERROR            = 16   # 丸く赤い所に白抜き×
MB_ICONSTOP             = 16   #      同上
MB_ICONHAND             = 16   #      同上
MB_ICONQUESTION         = 32   # 白い吹出しの中に青い ?
MB_ICONEXCLAMATION      = 48   # 黄色い三角の中に !
MB_ICONWARNING          = 0x30 #      同上
MB_ICONINFORMATION      = 64   # 白い吹出しの中に青く i の字
MB_ICONASTERISK         = 64   #      同上
MB_USERICON             = 128  # (ユーザアイコンの指定法不明)

デフォルト選択

MB_DEFBUTTON1           = 0
MB_DEFBUTTON2           = 256
MB_DEFBUTTON3           = 512
MB_DEFBUTTON4           = 0x300 # 768

MB_TOPMOST

MB_TOPMOST              = 0x40000 # 262144

例外を補足するには Edit

例外をポップアップしたいときは、以下のような感じで、

1
2
3
4
5
6
7
8
9
10
11
12
require 'win32ole'

def show(msg, title)
  wsh = WIN32OLE.new('WScript.Shell')
  wsh.Popup(msg, 0, title, 0 + 64 + 0x40000)
end

begin
  raise "exception"
rescue => e
  show(e.to_s, "error")
end

参考リンク Edit


  • ああ -- 2017-02-09 (Thu) 14:53:46


Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2017-02-09 Thu 14:53:52 JST (190d)