メッセージ欄
2012年2月の日記
▼ 2012/02/26(日) rubyでメッセージボックス
2012/02/26 23:03 【研究課題】
メッセージボックスというか、Windows Scripting Hostのpopupなんだけど。
ポイントはVbOKOnlyとかの定数を書いているところ。
win32oleの使い方は結構あちこちで書いてあるし、excelなんかが持っている定数をrubyで使う方法なんかは探すと見つかるけど、意外や意外、普通にメッセージボックスを使う方法が結構少なかった。
で、ま、最低限いりそうな部分を書いてみたのさ。
ポイントはVbOKOnlyとかの定数を書いているところ。
win32oleの使い方は結構あちこちで書いてあるし、excelなんかが持っている定数をrubyで使う方法なんかは探すと見つかるけど、意外や意外、普通にメッセージボックスを使う方法が結構少なかった。
で、ま、最低限いりそうな部分を書いてみたのさ。
require 'win32ole' require 'singleton' class Msgbox include Singleton # ボタンの種類 VbOKOnly = 0 #[OK] VbOKCancel = 1 #[OK] [キャンセル] VbAbortRetryIgnore = 2 #[中止] [再試行] [無視] VbYesNoCancel = 3 #[はい] [いいえ] [キャンセル] VbYesNo = 4 #[はい] [いいえ] VbRetryCance = 5 #[再試行] [キャンセル] # アイコン VbCritical = 16 #警告メッセージ アイコン VbQuestion = 32 #問い合わせメッセージ アイコン VbExclamation = 48 #注意メッセージ アイコン VbInformation = 64 #情報メッセージ アイコン # ボタン戻り値 VbOK = 1 #[OK]ボタン VbCancel = 2 #[キャンセル] ボタン。 VbAbort = 3 #[中止] ボタン。 VbRetry = 4 #[再試行] ボタン。 VbIgnore = 5 #[無視] ボタン。 VbYes = 6 #[はい] ボタン。 VbNo = 7 #[いいえ] ボタン。 def initialize @wsh = WIN32OLE.new('WScript.Shell') end def open(strText,intSecondsToWait,strTitle,intType = VbOKOnly + VbInformation ) @wsh.popup(strText,intSecondsToWait,strTitle,intType) end end msgbox = Msgbox.instance msgbox.open("hoge",0,"fuga") #デフォ ret = msgbox.open("hoge",0,"fuga", Msgbox::VbOKCancel + Msgbox::VbCritical ) #OkCancelでやばいアイコン case ret when Msgbox::VbOK puts "ok" when Msgbox::VbCancel puts "cancel" end
- TB-URL http://snjx.info/diary/adiary.cgi/snjx/052/tb/
▼ 2012/02/23(木) くるくる回る
2012/02/23 24:10 【研究課題】
深夜に思いついてしまった。
rubyでコマンドラインでくるくる回る。
rubyでコマンドラインでくるくる回る。
@str = '(´v` )' def windmill case @str when '(´v` )' @str='(v` )' when '(v` )' @str='(` )' when '(` )' @str='( )' when '( )' @str='( ´)' when '( ´)' @str='( ´v)' when '( ´v)' @str='( ´v`)' else @str= '(´v` )' end print "\r" + @str end 20000.times { windmill }
- TB-URL http://snjx.info/diary/adiary.cgi/snjx/051/tb/
▼ 2012/02/12(日) rubyでfso
2012/02/12 15:11 【研究課題】
ちょっとしたツールを作ったときに、事前調査代わりに小手調べしたコードを書いておく。
日常的な作業を一部自動化させたくて、ちょっとディレクトリの操作をしたかったの。
日常的な作業を一部自動化させたくて、ちょっとディレクトリの操作をしたかったの。
# 指定したフォルダ以下のサブフォルダを全部出力 require 'win32ole' def getSubFolders folders folders.each do |folder| puts folder.Path getSubFolders folder.subFolders end end fso = WIN32OLE.new('Scripting.FileSystemObject') getSubFolders fso.getFolder(ARGV[0]).subFoldersARGV[0]ってのはコマンドラインの第一引数をあらわすわよ。
- TB-URL http://snjx.info/diary/adiary.cgi/snjx/050/tb/
1: よ 2022年02月28日(月) 午前11時46分
クラス内の定義を削除して、
WIN32OLE.const_load('Visual Basic For Applications', Msgbox)
で Msgbox::VbOK などロードできますよ(^_^)