過去にQTPにVBScriptを使用したことがあり、入力ボックス機能を使用してポップアップウィンドウを表示できました。
Rubyでこれを行う方法があるかどうか疑問に思っていますか? WATIR スクリプトを実行する前に、ユーザーが情報を入力できるポップアップが必要です。
StackOverflow を見回しましたが、何も表示されませんでした。
過去にQTPにVBScriptを使用したことがあり、入力ボックス機能を使用してポップアップウィンドウを表示できました。
Rubyでこれを行う方法があるかどうか疑問に思っていますか? WATIR スクリプトを実行する前に、ユーザーが情報を入力できるポップアップが必要です。
StackOverflow を見回しましたが、何も表示されませんでした。
ここでは、Ruby で vbscript からメッセージ ボックスを取得する方法の例を示します。同じ方法で入力ボックスを取得してみます。
require "Win32API"
message = "This is a sample Windows message box generated using Win32API"
title = "Win32API from Ruby"
api = Win32API.new('user32','MessageBox',['L', 'P', 'P', 'L'],'I')
api.call(0,message,title,0)
たぶん、このサンプルコードはあなたを助けます(win32のみ):
require 'win32ole'
def inputbox( message, title="Message from #{__FILE__}" )
vb_msg = %Q| "#{message.gsub("\n",'"& vbcrlf &"')}"|
vb_msg.gsub!( "\t", '"& vbtab &"' )
vb_msg.gsub!( '&""&','&' )
vb_title = %Q|"#{title}"|
# go!
sc = WIN32OLE.new( "ScriptControl" )
sc.language = "VBScript"
sc.eval(%Q|Inputbox(#{vb_msg}, #{vb_title})|)
#~ sc.eval(%Q|Inputbox(#{vb_msg}, #{vb_title}, aa,hide)|)
end
def popup(message)
wsh = WIN32OLE.new('WScript.Shell')
wsh.popup(message, 0, __FILE__)
end
str = "a | does not break it...\n\nOne\n\tTwo tabbed\nThree..."
res = inputbox( str, "demonstration | title")
popup %Q|When asked\n\n"#{str}"\n\nyou answered:\n#{res}|
これにより、次のようになります。
ポップアップボックスの後に続きます。
http://rubyonwindows.blogspot.com/2007/04/ruby-excel-inputbox-hack.htmlも参照してください。
Windows 用の入力ボックス API が見つからないため、簡単なダイアログが必要な場合は、ほとんどの場合これを行います。赤い靴とは違い、装着が簡単なだけの逸品です。
require 'green_shoes'
Shoes.app{
e = edit_line
button("Click me!"){alert("You entered." + e.text)}
}
shoesをお勧めします。これは、グラフィカル アプリを作成するためのクロスプラットフォーム ツールキットです。
私はそれを使用しましたが、それはかなりクールです。次のようなことができます:
Shoes.app :width => 300, :height => 200 do
stack do
edit_line :width => 400
end
end
Ruby はプログラミング/スクリプト言語であるため、Ruby だけでは GUI やグラフィックス関連の処理は一切行いません。そうは言っても、Ruby を使用して探しているタイプのことを達成するプロジェクトやフレームワークはかなりあります。大きなものは、 Rubyを使用して Web アプリケーションを作成する Ruby on Railsと、コンピューター アプリケーションを作成するためのShoesです。
この質問もあります Rubyの最良/最も簡単なGUIライブラリは何ですか?