<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8205021131712580609</id><updated>2011-07-09T01:32:56.018+09:00</updated><category term='COM'/><category term='ダイアログボックス'/><category term='Windows'/><category term='Tk'/><category term='WSH'/><category term='Ruby'/><category term='コモンダイアログ'/><category term='WinApp'/><category term='INI'/><title type='text'>よしのぼりんだいありぃ</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yoshinoborin-diary.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yoshinoborin-diary.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>よしのぼりん</name><uri>http://www.blogger.com/profile/05351443405377679158</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8205021131712580609.post-4046393259705415350</id><published>2009-09-14T23:37:00.020+09:00</published><updated>2009-09-16T23:22:36.794+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ダイアログボックス'/><category scheme='http://www.blogger.com/atom/ns#' term='Tk'/><category scheme='http://www.blogger.com/atom/ns#' term='WSH'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='コモンダイアログ'/><title type='text'>WinDialog</title><content type='html'>&lt;div style="text-align: left;"&gt;Windows のコモンダイアログを利用するための Ruby ライブラリです。&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/windialog"&gt;http://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/windialog&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ruby 1.8 の標準ライブラリのみを使っていますので、windialog.rb にさえ $RUBYLIB のパスが通っていれば、何も gem install しなくても使えます。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;しばしば利用する、以下の４つのダイアログボックスを、メソッド呼び出し一発で利用できます：&lt;br /&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;message box　（メッセージを表示します）&lt;/li&gt;&lt;li&gt;input box　（文字列を入力します）&lt;/li&gt;&lt;li&gt;open file dialog　（「ファイルを開く」ダイアログボックスです）&lt;/li&gt;&lt;li&gt;save file dialog　（「ファイルを保存する」ダイアログボックスです）&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;また、メソッドの引数はハッシュとして指定しますので、（少なくとも個人的には）使いやすいです。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;まずは、メッセージボックスです：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ne5YxYBIT1Y/SrDwfVJZ_EI/AAAAAAAAAAU/zFzOE5c67iQ/s1600-h/message.bmp"&gt;&lt;img src="http://1.bp.blogspot.com/_ne5YxYBIT1Y/SrDwfVJZ_EI/AAAAAAAAAAU/zFzOE5c67iQ/s400/message.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5382065975750949954" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 251px; height: 190px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;上図のメッセージボックスを表示するコードは、以下のようになります： &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style=" ;font-family:Georgia, serif;"&gt;&lt;span class="Apple-style-span"  style=" color: rgb(102, 51, 255); font-family:'courier new';"&gt;require 'windialog'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-family:Georgia, serif;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;pressed_button = WinDialog::&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;message&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;:title          =&gt; 'Need to confirm with you...',&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;:message =&gt; 'Failed. Retry?',&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;:button         =&gt; :retry_cancel,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;:icon           =&gt; :question,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;:default_button =&gt; 2,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;:modal          =&gt; :application&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;次に、インプットボックスです：&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(0, 0, 0);  font-family:Georgia, serif;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ne5YxYBIT1Y/SrDzg75fZSI/AAAAAAAAAAc/xuNRgEg1XJo/s1600-h/input.bmp"&gt;&lt;img src="http://1.bp.blogspot.com/_ne5YxYBIT1Y/SrDzg75fZSI/AAAAAAAAAAc/xuNRgEg1XJo/s400/input.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5382069301867930914" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 373px; height: 146px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style=" color: rgb(102, 51, 255); font-family:'courier new';"&gt;require 'windialog'&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;puts WinDialog::input(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;:title =&gt; 'Title',&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;:message  =&gt; 'Prompt',&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;:default  =&gt; 'Default'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;最後に、open file dialog と save file dialog です。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238); -webkit-text-decorations-in-effect: underline; "&gt;&lt;img src="http://4.bp.blogspot.com/_ne5YxYBIT1Y/SrD0hYEsrXI/AAAAAAAAAAk/YxtecZzIfyI/s400/open_file.bmp" border="0" alt="" id="BLOGGER_PHOTO_ID_5382070408942759282" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 315px; " /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;require 'windialog'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;filetypes = [&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[ 'Ruby Scripts', ['.rb', '.erb'], 'TEXT' ],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[ 'Text Files', '.txt' ],&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;[ 'All Files', '*' ]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;filename = WinDialog::open_file(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;:title =&gt; 'Open a new file',&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;:filetypes =&gt; filetypes,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;:initialdir =&gt; 'C:/cygwin/home/username/work',&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;:initialfile =&gt; 'foo.rb'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上記のサンプルコードにおいて、呼び出されるメソッド名を、open_file から save_file に変えると、open file dialog の代わりに、save file dialog が表示されます。Save file dialog の場合は、既存のファイルが選択されると、「既存のファイルが選択されたが、上書きするか？」と確認するダイアログボックスが表示されます。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ドキュメントは、いつも通り、rdoc 形式でソースファイル中に記述されています。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8205021131712580609-4046393259705415350?l=yoshinoborin-diary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yoshinoborin-diary.blogspot.com/feeds/4046393259705415350/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yoshinoborin-diary.blogspot.com/2009/09/windows-message-box-input-box-open-file.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default/4046393259705415350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default/4046393259705415350'/><link rel='alternate' type='text/html' href='http://yoshinoborin-diary.blogspot.com/2009/09/windows-message-box-input-box-open-file.html' title='WinDialog'/><author><name>よしのぼりん</name><uri>http://www.blogger.com/profile/05351443405377679158</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ne5YxYBIT1Y/SrDwfVJZ_EI/AAAAAAAAAAU/zFzOE5c67iQ/s72-c/message.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8205021131712580609.post-1853095788228732278</id><published>2009-09-05T10:35:00.013+09:00</published><updated>2009-09-10T23:37:20.544+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='COM'/><category scheme='http://www.blogger.com/atom/ns#' term='WSH'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><category scheme='http://www.blogger.com/atom/ns#' term='WinApp'/><title type='text'>WinApp</title><content type='html'>Ruby から Windows アプリケーションを操作するためのライブラリです。&lt;div&gt;Windows アプリケーションを COM オブジェクトとして操作するのではなく、キーストロークを与えて操作します。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/winapp"&gt;http://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/winapp&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;以下のコード例では、メモ帳を実行して、'Hello, world.\nHello, world.' と入力して、ファイル名 'test.txt' で保存します。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;require 'winapp'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;# メモ帳を実行する&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad = WinApp.new('%windir%\system32\notepad.exe')&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;# キーストロークを与える&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( 'Hello, world.' )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( '{ENTER}' )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( 'Hello, world.' )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( '%FA' ) &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;# Alt+F, A&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( '%N' )  &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;# Alt+N&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( 'test.txt' )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.send_keys( '%S' )  &lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;# Alt+S&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;sleep 0.5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt;# メモ帳を終了する&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#6666CC;"&gt;notepad.terminate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="color:#CC0000;"&gt;2009年9月10日追記：&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt; WinApp::alive? のバグを修正しました。&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#6666CC;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8205021131712580609-1853095788228732278?l=yoshinoborin-diary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yoshinoborin-diary.blogspot.com/feeds/1853095788228732278/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yoshinoborin-diary.blogspot.com/2009/09/winapp.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default/1853095788228732278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default/1853095788228732278'/><link rel='alternate' type='text/html' href='http://yoshinoborin-diary.blogspot.com/2009/09/winapp.html' title='WinApp'/><author><name>よしのぼりん</name><uri>http://www.blogger.com/profile/05351443405377679158</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8205021131712580609.post-5308758893279328123</id><published>2009-08-02T20:16:00.015+09:00</published><updated>2009-09-06T14:21:21.137+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='INI'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows'/><title type='text'>INI</title><content type='html'>&lt;div&gt;ブログ初投稿です。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Windows の .ini ファイルを読み込む Ruby クラスを作成しました。&lt;div&gt;.ini フィルにタブが含まれている場合の挙動がおかしいですが、とりあえずアップロードします。&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/ini"&gt;https://sites.google.com/site/yoshinoborinlibrary/home/ruby-library/ini&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Ruby の YAML クラスと似たインターフェイスを持たせています。（といっても、現時点では、load と load_file だけをサポートしています。)&lt;/div&gt;&lt;div&gt;例えば、次のような mailaccount.ini ファイルに対して、&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:'courier new';color:#330099;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;[SMTP]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;Server = smtp.foo.com&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;[POP]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;Server = pop.foo.com&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;User = jack&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以下の Ruby コードを実行すると、cfg に mailaccount.ini の中身が Hash オブジェクトとして読み込まれます：&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;require 'ini'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;cfg = INI.load_file( 'mailaccount.ini' )&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;p cfg['SMTP']['Server']&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt; # =&gt; "smtp.foo.com"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;p cfg['POP' ]['Server']&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt; # =&gt; "pop.foo.com"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#6633FF;"&gt;p cfg['POP' ]['User'  ]&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#33CC00;"&gt; #=&gt; "jack"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ini.rb というファイル名で $RUBYLIB でパスのとおっているディレクトリに格納してご利用ください。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;より詳細なドキュメントは、rdoc 形式でソースに埋め込んでいますので、以下の手順でご覧ください：&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;(rdoc がインストールされていない環境では) gem install rdoc を実行する。&lt;/li&gt;&lt;li&gt;$RUBYLIB で、rdoc -U ini.rb を実行。&lt;/li&gt;&lt;li&gt;$RUBYLIB/doc/index.html をブラウザで開く。&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8205021131712580609-5308758893279328123?l=yoshinoborin-diary.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yoshinoborin-diary.blogspot.com/feeds/5308758893279328123/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://yoshinoborin-diary.blogspot.com/2009/08/ini.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default/5308758893279328123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8205021131712580609/posts/default/5308758893279328123'/><link rel='alternate' type='text/html' href='http://yoshinoborin-diary.blogspot.com/2009/08/ini.html' title='INI'/><author><name>よしのぼりん</name><uri>http://www.blogger.com/profile/05351443405377679158</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
