【ActiveScript】RubyをWindowsで使うスレ【GUI】
1 :
デフォルトの名無しさん :
2006/08/08(火) 19:08:09
2 :
1 :2006/08/08(火) 19:09:57
3 :
1 :2006/08/08(火) 19:11:20
5 :
1 :2006/08/08(火) 19:21:19
他にも、cygwin版rubyの話とか、visualuruby以外の様々なGUIの話とか、 windows環境独自のややこしい話はこちらでどーぞ。
この開き直り方いいね
9 :
1 :2006/08/08(火) 19:50:33
WindowsでRubyを使うまめ知識
EmEditor Ver6.0 は、ActiveScriptとして登録された言語ならば、
エディタのスクリプト言語として使用出来ます。
EmEditor Professional v6 (Windows Vista/2003/XP/2000)
http://www.emeditor.com/jp/ ActiveScriptRubyをインストールすれば、EmEditorのマクロにRubyが使えます。
>>9 なに、何事もなかったように続けてんだよ。
氏ね。
11 :
1 :2006/08/08(火) 20:08:34
ここ最近ずっとOne-click Ruby InstallerかInstant Railsばっかりで、 ASRとはご無沙汰だなぁ。win32oleは結構使うが別にASRでなくても困らんし 他にもそんな人いない?
スタートメニューに自動登録してくれるのでありがたい。 あと、自動関連づけのRubyのパスおかしいのでいつも手で直す CygwinもcoLinuxももInstantRailsも入れてますが何か?
何が何でも情報を分散させたいみたいだな
18 :
1 :2006/08/09(水) 15:52:07
まつもとゆきひろ 答える
http://slashdot.jp/developers/03/03/14/0258247.shtml?topic=86 より、
問)
Ruby の利用者を増やすために何が必要だとお考えですか?
答(一部))
>Windows対応については多くの協力者が大変な苦労をしてメンテナンスしてくれています。
>もしもっとたくさんの人が情報や労力などを提供してくださればもっとよくなるでしょうが、
>ほっておいてもよくなることはないでしょう。
>Rubyが成功した理由の一部は、Ruby のような言語になにが必要か私が分かっていたことにあると思います。
>私はWindows について知識がないので、Windowsユーザにとって正しい判断ができるとは思えません。
>より良いWindows対応のためには、どのようなものが欲しいか、どのようなWindow対応が「良い」のか
>きちんと定義できる人たちの積極的な参画によって実現できるのではないか、私は思います。
まあいまさらの話なのだが、
・作者のまつもと氏はWindowsの知識がない→「ほっておいても(windows版が)よくなることはないでしょう。」
・「より良いWindows対応のためには、どのようなものが欲しいか、どのようなWindow対応が
「良い」のかきちんと定義できる人たちの積極的な参画によって実現できるのではないか」
なので、「どのようなWindow対応が「良い」のかきちんと定義できる人たち」
というのには俺はなれないけど、「どのようなものが欲しいか」という意見を
言うことは出来るわけで、このスレはそういう意見を書き残す場所として使って
欲しいとおもいこのスレを立てた。
そして誰も読まずにそのまま廃れて消えていくのであった
Windowsでruby使う奴はレジストリをいじっとくと幸せになれる HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer] "InheritConsoleHandles"=dword:00000001
なんでこのレジストリ指定が標準になってないんだ?
互換性がなくなるからとか?
どんな互換性? MSのKBもそれを一切説明してないからさっぱりわからん。
なんで、標準入出力がデフォルトで存在すると思うのか、そっちの方がわからん。
コンソールアプリケーションだから。
コンソールが嫌いな人がいるみたいだから VisualuRubyの話でもしようぜ
>>29 VisualuRuby いいんだけど不安定でちょっと困ってる。
>>1 GJ!
せっかくだからRuby on WindowsなWikiもあるといいかもな〜
ここはあえてPukiWikiでw
32 :
デフォルトの名無しさん :2006/08/11(金) 13:12:23
Hikiでいいじゃん。 hikilet.rbでWikiサーバ立ち上げて軽いメモ用に使ってるよ。
VisualuRubyのVRListviewがどうも不安定なので、こんな実験をした。(WinXP SP ASR1.8.4.4) FormDegignerを使って簡単な画面を作る。画面にVRListviewを貼り付け、それにcolumnを3つぐらいセットする。 1秒に10行ぐらいのペースで、VRListviewにデータをAddItemしていくスレッドを動作させる。 この画面が動作している状態(リスト画面にデータが続々と挿入されている画面)で、 Windowの位置をマウスで移動させたり、Column 間の境界線をマウスでつまんで、 幅を動かそうとすると、すぐに画面が固まってしまう。 今回は1秒に10回という多めのデータ挿入だが、実際に使っている監視用の自作プログラムで、 30秒に1データぐらいのペースでVRListViewを書き換えるものを動作させていても、 十分ほどでなんのメッセージもなく落ちてしまったり、画面が固まったりする事がよくある。
VisualuRubyの画面は、ちょっとした操作で画面が固まったり、音もなくプログラムが終了してしまった りすることが多い。とくに、単純なVREditよりも、VRListviewのような複雑な画面部品を使っていると 起こりやすい気がするし、画面の部品数が増えるほど、画面の書き換えが多いほど落ちやすくなる。 なんか、頻繁に画面部品を描き変える処理のタイミングがぶつかったときに落ちてるような気がする。 でも、Ruby側でMutexを使って描き変えのタイミングがぶつからないようにしても効果がなかった。 当然、マウスでcolumnを動かすなど、手で画面を書き換える動作が絡んでくるとさらに落ちる確率が上がる。 うーん。こーゆーのは、プログラムの書き方で回避出来る問題なんでしょうか? また、FOXとかの他のGUIだとどうなんでしょう?
Windows板でやれば?
VREdit/VRRadiobutton/VRCheckbox/VRButton くらいしか使わないけど落ちたり固まったりしたことはないな
そもそも、VisualuRubyで作られているFormDesignerがよく落ちる。
>>37 > Windows板でやれば?
Windows板の表題を検索したが、java VB VisualBasic C# delphi Python Perl Ruby など、
言語に関するスレは一つもなかった。Windows板でのRubyの話題は板違いだろう。
Ruby on Windowsに望むのは .rbをコマンドプロンプト版に、 .rbwを非コンソール版に関連付けて欲しい。 環境変数pathextに.rbを登録したらfoo.rbを dir /s /b | foo > result.txt のように使えるようにして欲しい。 某インストーラで登録されるスタートメニューのアイコンの位置が微妙な所を改善。 Windows限定でいいので Pathnameかなんかに'/' <-> '\\'の相互変換メソッドが欲しい Rubyインストールするたびに上記の拡張子周りの設定して回るのは正直うんざり。
>>42 > Ruby on Windowsに望むのは
どのバイナリパッケージについていってる?
> 環境変数pathextに.rbを登録したらfoo.rbを
> dir /s /b | foo > result.txt
> のように使えるようにして欲しい。
>>20
そのうち出るだろう.NET版Rubyは.NET版としての進化を続けるだろうが、 いまのASRなどに期待したいのは、.NETになる前のVBのように、 Windowsでのプログラムを一通り手軽に実現出来る環境。 環境だけならかなりいいところまで出来ているんだけど、GUIが不安定で・・・
>>44 > GUIが不安定で・・・
あ、VisualuRubyの話ね。FXRubyとかは未確認。
>
>>20 いや、そういう情報かき集めて手作業でやりたくないって話
今知ったんだからもう情報かき集める必要ないし、 バッチ書けば手作業の必要も無い
Ruby関連プロジェクトってって腰が重いよな・・・ 個人的に不便に思ってる点が改善されたことが一度もない。
本スレでもそうだけど要望出るといちいち必要ないとか 火消しに回ってる部隊はなぜそんなことやってるのか意味がわからん
>>49 必要のあるなしを吟味せずに、無節操に取り入れていったらどうなるか考えてみろ
キターw
>>48 kwsk。出来れば具体的なプロジェクト名を。
>>49 2chに限定した話?
2chのスレや日記などであげられていた問題がきっかけで
直接修正されたということなら数回見たことがあるけど、
そんなにひどいことってあったかな。
出来ればどのスレのどの辺りって教えてくれませんか。
vrubyはdelphiみたいなAnchorsはないのかな あれがあるだけでレイアウトが簡単になるのだが
∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ / つ. 要望禁止│ 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ ゛゛'゛'゛
57 :
デフォルトの名無しさん :2006/08/15(火) 16:17:52
vrubyで、次のようにしてウィンドウの位置と大きさを保存・復帰させてみたのですが、 起動と終了を繰り返すたびにウィンドウが小さくなってしまいます。 どうすれば正しくできるのでしょうか? require 'vr/vruby' require 'vr/vrhandler' require 'pstore' class Form1 < VRForm include VRClosingSensitive #include VRMessageHandler def construct @db = PStore.new("window.db") @db.transaction do pos = @db["pos"] || @db.abort p pos self.move(*pos) end end def self_close @db.transaction do @db["pos"] = [x, y, w, h] end end end VRLocalScreen.start(Form1)
>>57 バグか仕様か知らんけど、x,y,w,hはクライアント領域のものなので、
それを使ってmoveしちゃうとタイトルバーとかウィンドウ枠とかの分
どんどん小さくなる。
self_closeで、
@db["pos"] = [x, y, w, h]
でなく
@db["pos"] = self.windowrect
とすればうまくいくんじゃないか? 試してないが。
59 :
57 :2006/08/15(火) 19:13:51
>>58 その通りでした。おかげでうまくいきました。
>>42 > Windows限定でいいので
> Pathnameかなんかに'/' <-> '\\'の相互変換メソッドが欲しい
'\\'->'/'はFile.expand_pathでできるよね
'/'->'\\'は単純にgsubでも大丈夫だと思うけど
それじゃだめ?
デフォルトのパス区切りが/なんてWindows環境じゃありえないウンコ仕様は未来永劫直らないんだろうな。
別にどっちもウンコ仕様だとは思わないけど。
ああ、RubyのWin対応がウンコって意味か。 それなら同意
殺伐としてるなぁ
殺伐としてる割には進行遅いがな
>>33 のすぐ落ちる画面を書いてみた。
require 'vr/vruby'
require 'vr/vrcomctl'
require 'vr/vrcontrol'
class Test_Form < VRForm
def self_created
self.caption = 'form1'
self.move(265,185,600,400)
addControl(VRListview,'listView',"listView",56,16,488,304,1342177281)
@listView.addColumn("column1",100)
@listView.addColumn("column2",120)
Thread.start do
loop do
@listView.insertItem(0,[Time.now.strftime("%H:%M:%S") , "auauauauauau"])
# sleep(0.1)
end
end
end
end
VRLocalScreen.start Test_Form
スレッドにsleepを入れていないので猛スピードでカラムを挿入するが、
この状態でカラムの幅を変えようとすると画面が固まったり、プログラムが落ちて窓が消えてしまう。
sleepのコメントをはずすと、平均して10回に1回ぐらいの確率(体感)で、固まったり落ちたりする感じ。
あと、カラム1の要素をクリックして選択しようとしても同じ事が起こる。
なぜ作者に連絡したり、MLに投げたりという発想がないのか
定期巡回乙であります
>>66 手元でやってみたが固まりも落ちもしなかった
ひょっとしてActiveScriptRubyのせいじゃない?
るびま15号のartonさんインタビューで、XPでスレッド周りが動かなくなったとか言ってる
>>69 ActiveScriptRubyだけど、固まりも落ちもしなかった。
とりあえずお前らrubyとライブラリのバージョンくらい書け。
つか、動く報告があったんだから、
>>33 は他のWindowsバイナリでも落ちるのかどうか
検証してから報告して欲しいな。
>>66 ASR1.8.4.1で試したけど問題なし。
Webに行ったら1.8.4.5が出てたのでインストールして試したが問題なし。
75 :
33 :2006/08/17(木) 01:40:51
環境差の可能性があるって事であわててテストしました。
まず、cygwinをインストールして、
ruby-1.8.4-i386-cygwin.tar.gz
vrswin-040314-i386-cygwin-1.8.tar.gz
vruby-040717-i386-cygwin-1.8.tar.gz
で動作させたら、これは33に書いたとおり、一発で落ちます。
で、サーバー用に動作させていたWindows2000 SP4 で、
ASR 1.8.4.4 で動作させたら、これは、落ちることなく正常動作します。
WindowsXP SP2だと落ちるのか?それとも自分のマシン独自の問題か?
>>70 や、
>>74 はXP SP2ですか?
76 :
74 :2006/08/17(木) 02:29:09
XP Home SP2
77 :
74 :2006/08/17(木) 02:42:38
78 :
74 :2006/08/17(木) 02:59:06
もっかい
>>33 を読んで、「10分放置」をしてみたが、問題なし。
ライブラリ作者に、詳細な環境と状況を添えて、メールしたら?
79 :
69 :2006/08/17(木) 04:21:31
swinとvrubyの最新リリースはvrswin060205とvruby060223だからね... (ASRのパッケージはもちろん最新) 2年前の古いリリース使っておかしいよって言っても作者も困るでしょ ちなみにおれの環境は Windows2000SP4、garbagecollect.jpから落とした1.8.4のバイナリ 本家から落としたvrswin060205とvruby060223のセット ぜんぜん問題なし
windows2000sp4, mswin32版rubyで固まった。swinのバージョンはよくわからん
swinのバージョンの検査は require 'swin' p SWin::VERSION かな。 vrubyのバージョン検査方法は?
82 :
33 :2006/08/18(金) 01:07:40
>>33 および、
>>66 のソースの件ですが、
require の3行の下に、
SWin::Application.thread_critical=true
を書き足した所、私の必ず落ちる環境でも、正常動作するようになりました。
よかった〜これでGUIを気兼ねなく使えるかも。
でもなんで?
http://www.osk.3web.ne.jp/~nyasu/vruby/sqa.html の一番最後に、
>mswin版はデフォルトでtrue。
と書いてあるので、この修正は必要ないと思っていたのに。
ちなみに、
p SWin::Application.thread_critical
でデフォルト値を表示してみるとfalseでした。
環境:ASR1.8.4.4
追伸
>>75 の、vrubyとswinのバージョンが古いcygwin版でも、
SWin::Application.thread_critical=true
の行を書き足すことで正常動作しました。
皆さんがテストしてくださったおかげで、問題点が絞り込め、
解決に到達出来たようです。本当にありがとうございました。
vrubyの中の人。不安定とか、あらぬ疑いをかけてごめんなさいでした。
いまここを発見しました。 mswin版rubyとGUIのスレッド相性は、Windowsの構造化例外が どうとか(詳細忘れました)が原因で、その後ruby本体側の改修で直ったように 見えたので、mswin版もthread_critical=falseをデフォルトにしました。 cygwin版でもおかしなことが起こるということは、他にも何か問題あったんでしょうかね。 (とりあえずうちでは問題出てません。) sqa.htmlは修正しておきます。
86 :
74 :2006/08/20(日) 15:40:35
作者キターーーーーーー&乙であります。
dl2でドトネトらいくなライブラリを作ることを月狼に命じる
落ちないけど固まった。 でもタスクマネージャを見るとCPUは回ってるから何かは動いてるんだなと思って-rdebugしたらsegvった。 これどのスレッドが動いてるとか追いかける方法はあるの? sleepすりゃ問題ない(今のところ)し、thread_criticalでも問題ないみたい。 だいたいスレッド経由でノーウェイトで何の手当もせずにぶん回すような用途って何だろうとは思うが。 バージョンは ・Epson NA701(CoreDuo) ・WindowsXP SP2 ・CYGWIN_NT-5.1 hoge 1.5.21(0.156/4/2) 2006-08-09 13:38 i686 Cygwin ・ruby 1.8.5 (2006-08-09) [i386-cygwin] <= preview3 ・SWin::VERSION => "060205" ・VRuby => "060223"
visualurubyの画面で、ボタンのcaptionに ボタン(&B) と書いても Alt+B でボタンが押せないんだけど、そういうものなのでしょうか? なにか、簡単な設定かコード記述で使えるようになったりしますか?
92 :
デフォルトの名無しさん :2006/08/21(月) 22:45:11
ageてみる
>>88 core吐かせられるならgdbで追いかけられない?
1.8.5 preview4 が出たみたいだし
入れなおすついでにprintf突っ込んで追っかけてみるとか...
つーか、
>>88 は、自分の環境で1.8.4で動くのか落ちるのかはっきりさせろ
>>91 VB.NETならLabelのTextプロパティに"ほげ(&B)"って書いとけば
ショートカットキーが効くようになる。
# 多分VB6とかでも同じはず
>>93 めんどくさいのでマシン貸すから自分でやれば。
96 :
デフォルトの名無しさん :2006/08/22(火) 13:30:06
vrubyのリストボックスで、項目をダブルクリックした時に何か処理したいんだけど どう書けばええの?
97 :
90 :2006/08/22(火) 16:14:28
>>91 ありがとうございます。
>
http://vruby.sourceforge.net/cgi-bin/wiki.cgi?ToriAezu#i3 確認しました。現状はこんな感じです。
・フォームデザイナ使用。form自体にVReyFeasibleをつけてキーイベントを拾おう。
・ありゃ、self_charイベントでは、ctrl+文字は拾えるが、alt+文字は拾えないみたい(進展がなければ、ctrl+文字で妥協しよう)
・ふむふむ、
http://www.osk.3web.ne.jp/~nyasu/diary/200411.html によると、keydownイベントというのが拾えるんだね。
・addHandler WMsg::WM_KEYDOWN,"keydown",MSGTYPE::ARGINTINT,nil を設定してself_keydownイベントを拾っても、やはりalt+文字は拾えないみたい
・でも出来ないはずはないんだよね。menuでは、alt+FでFileメニューをpopupしたりしているんだから。
・うーん、menu関係のソースを読んで情報を探るしかないのか?
といったところです。なにか間違った方向に進んでいそうでしたらアドバイスお願いします。
> VBとかは(&B)とか書いただけでお手軽にショートカットキーが設定できたりするのかね?
.NETの他に、ExcelやAccessのフォームなどでも、部品のcaptionに(&B)と書いておけば、
コードを書くことなくALT+Bでボタンが押せるようになります。
VB6はいじったことはないですが、VBAと同等品と聞いていますので同じだと思います。
他に、
項目名(&K) [________]
となっているとき、ALT+Kを押すと、入力フィールドにカーソルが移動します。
Windowsでは、画面操作のすべてをキーボード操作できる画面を、フォームエディタで(&B)などと書くだけで作れるという便利さがあります。
98 :
90 :2006/08/22(火) 16:32:47
>>97 の補足です。
>他に、
>項目名(&K) [________]
>となっているとき、ALT+Kを押すと、入力フィールドにカーソルが移動します。
なぜ、labelに(&K)と書いてあるのに、フォーカスが入力フィールドのほうに行くのかというと、
VBAなどのフォームデザイナでは、入力フィールドに限らず、listやcomboboxなどの画面部品をフォームに
挿入したとき、その画面部品の見出しlabelがセットになって、グループ化されて一緒に挿入されます。
その、セットのlabelに(&K)と書くことで、画面部品にフォーカスが行くようになります。
内部的には、画面部品と、その部品用のlabelというのがリンクされた情報を保持しているのかもしれません。
ちなみに、1画面内に複数、(&K)を指定すると、そのときの動作は保証されないそうです。
>>97 vrinitにadd_parentcall("syschar")を追加しとけば親で拾えるよ
(AltはWM_CHARじゃなくてWM_SYSCHARで飛んでくるらしい)
あと、syscharに限んないけどフォーカスないと拾えないから注意
イベント拾い専用のコントロールに常時フォーカスさせて
そいつから一括してキーイベント拾うようにするとかしてくれ
最近Ruby使い始めたんだがすげーいいなこれ。 GUIが一瞬で出来し、適当に書いても動くしw
103 :
デフォルトの名無しさん :2006/08/24(木) 01:46:48
>>88 >>66 のスクリプトだよねえ
>>101 確かによく使いそうですねえ。つうか、selchangedだけか。デフォルトは。
>>102 VRListbox自体を差し替えるか、VRListboxのvrinitだけを差し替えれば?
(前者は定数代入、後者はaliasで)
>>90 はVRFormじゃなくてダイアログ使うと出来る。(Formの代わりならmodelessか)
Windowsの機能で。以下サンプルのmdlgtest2.rbから抜粋&改変
なんとなくインデントが狂いそうなんでインデントを全角スペースにしてみた。modalでごめん。
require 'vr/vrdialog'
module MyDialogContents
def construct
move 0,0,150,150
centering
addControl VRButton,"btn1","button1(&a)",10,10,100,30,WStyle::WS_TABSTOP
addControl VRButton,"btn2","button2(&b)",10,40,100,30,WStyle::WS_TABSTOP
addControl VRButton,"btn3","button3(&c)",10,70,100,30,WStyle::WS_TABSTOP
end
def btn1_clicked
close( ["This","is","sample","return","value"] )
end
def btn2_clicked
close(false)
end
def btn3_clicked
close(3)
end
end
p VRLocalScreen.modalform(nil,nil,MyDialogContents) #parent,style,dialog
しまった、sage損なった...
105 :
102 :2006/08/24(木) 02:24:11
>>103 >
>>102 VRListbox自体を差し替えるか、VRListboxのvrinitだけを差し替えれば?
> (前者は定数代入、後者はaliasで)
すんまそん。 頂いたご返答はよく分からなかった(試したが成功しなかった)のですが、
その後自分の勘違いに気づき、簡単にできることが分かりました。
self_createdで、リストボックスを表す変数に直接定義してやれば良いみたいです。
class TheForm < VRForm
include Frm_form1
def self_created
# @listBox1.addCommandHandler(WMsg::BN_CLICKED, "clicked", MSGTYPE::ARGNONE,nil)
@listBox1.addCommandHandler(WMsg::BN_DBLCLICKED, "dblclicked",MSGTYPE::ARGNONE,nil)
end
def listBox1_dblclicked
print "ダブルクリックしました" + $/
end
# def listBox1_clicked
# print "クリックしました" + $/
# end
end
ちなみにclickedは駄目みたいですね。selchangedとかぶるからかな?
すごいなvruby おらワクワクしてきたぞ
BN_????はボタンのやつで、LBN_????がリストボックスのやつ
108 :
102 :2006/08/24(木) 02:42:56
>>107 >BN_????はボタンのやつで、LBN_????がリストボックスのやつ
ほんとだ。また何か勘違いしているのか?<自分
109 :
102 :2006/08/24(木) 02:52:24
>>105 ですが、やっぱり変でした。
>>105 でリストボックスをダブルクリックすると、
listBox1_dblclicked は通ることは通るんだけど、
ダブルクリックした直後には通らず、一回画面を別画面の裏側にするとか、
画面を終了させないとlistBox1_dblclickedが動作しないです。
変な物を貼ってお騒がせしてすみませんです。
ん?うまくいってるでしょ。LBN_KILLFOCUSの値になってるんじゃないかな require '_frm_hogehoge' module WMsg LBN_SETFOCUS = 4 LBN_KILLFOCUS = 5 end class Form1 ##__BY_FDVR def self_created @listBox1.addCommandHandler(WMsg::LBN_DBLCLK, "dblclicked",MSGTYPE::ARGNONE,nil) @listBox1.addCommandHandler(WMsg::LBN_SETFOCUS, "gotfocus",MSGTYPE::ARGNONE,nil) @listBox1.addCommandHandler(WMsg::LBN_KILLFOCUS, "lostfocus",MSGTYPE::ARGNONE,nil) @listBox1.addString('みかん') @listBox1.addString('りんご') end def listBox1_dblclicked puts @listBox1.getTextOf(@listBox1.selectedIndex) end def listBox1_gotfocus; puts "gotfocus"; end def listBox1_lostfocus; puts "lostfocus"; end end ##__BY_FDVR
111 :
102 :2006/08/24(木) 04:29:48
>>110 やっと正常に動作しました。どうやらフォーカスは無関係みたいです。
・BN_DBLCLICKEDじゃなくて、ちゃんとLBN_DBLCLKを使う。
・listboxに中身を入れる
(つまり
>>110 のソースどおり。LBN_SETFOCUS関係の設定は不要)
で、理想的に動作しました。
実は私はlistboxの中身を空っぽの状態でテストしていました(謝)。
そして、listboxの中身が空っぽだと、
>>110 のソースでも
>>109 の状態になります。
何もないところをダブルクリックすると、その時点ではlistBox1_dblclickedを通らず、
窓を閉じたり、別の窓の後ろに動かしてからlistBox1_dblclicked を通ります。
112 :
90 :2006/08/25(金) 00:02:19
>>103 >>90 はVRFormじゃなくてダイアログ使うと出来る。(Formの代わりならmodelessか)
ダイアログにすることで、Alt+キーでボタンが押せました。情報ありがとうございました。
ちょっと質問ですが、 C#で書かれた.NETのプログラムがあり、ソースが公開されているとします。 このソースに手を加え、Rubyと通信できるようにして、RubyからC#のプログラムを コントロールしたり監視したりしたいとき、.NET→Ruby間の通信方法は、何が一番適切でしょうか。 条件は、 ・C#プログラム側で発生した変化を、出来るだけリアルタイムにRuby側で感知したい。 ・Ruby側から.NETにも情報を渡したい(双方向の通信)。 ・現時点では1台のマシンの中だけで閉じた状態のみを想定。
何が一番適切か?というのは、 ・.NET、Ruby側ともその通信手段のライブラリが用意されており実装は容易。 ・通信の切断、再接続など、出来るだけライブラリ内で吸収していて、あまり記述しなくてもいいのが理想的。 つまり、作成も管理も一番簡単なのはどれでしょうという質問です。
socket
fxruby1.6.0がラッパしてるfox-toolkitの1.6.0でUnicodeをサポートする
ようになったらWindows9系ではfxrubyのプログラムが動作しなくなった
ttp://fox-toolkit.net/cgi-bin/wiki.pl?Unicode_Support Windows 95/98/ME
FOX requires the Microsoft Layer for Unicode on Windows 95/98/Me Systems.
For more information see the [MSLU website].
なんかMSLUとか言うのをどうにかすればいいらしいけど
どうしたらいいの?
Microsoftがライブラリ配布してるからダウンロードしてインスコすれ
どっか説明してるサイトとかありますか?
ぐぐれ
ライブラリの名前だけでいいんだけど unicows.dll ← これ?
両方無理
>>121 リンク先は読んでないが、Excelは「OLEサーバ」。
OLEオートメーションを使うためには、入れ物が「OLEコンテナ」である必要がある。
vrubyの実装がどうなっているのか知らないけど、そうなってないなら出来ない。
COMやActiveXを使えるからといって、OLEオートメーションが出来るとは限らない。
C/C++だってそうでしょ?
125 :
113 :2006/08/28(月) 03:13:02
>>115 socket が一番簡単ですか?同じマシンで閉じているので
ネットワーク通信ではなくプロセス間通信でもいいのですが。
>>121 のActiveXの話をみて、113に書いた条件とは少し変わってしまいますが、
C#とrubyとの接続方法として、C#でActiveXコンポーネントを作成して
vrubyに貼り付けたりというのもあるのかもしれないと思いました。
126 :
デフォルトの名無しさん :2006/08/29(火) 09:45:56
VR(Vert|Horiz)TwoPaneでセパレータをドラッグしたときにゴミが残るのうちだけ? @pane_2.moveしたときに再描画されなくてPatBltで描いた線が残ったままになってる。 もう一度PatBltして線を消すとか、@pane_2.refreshをするとかすればいいんだけど、 そうなってないってことは、うちの環境がおかしいの?
複数Excelファイルの集計とか、全部Rubyでやってるよ。 最初はVBAでやってたけど、Ruby使い出すともう戻れないねぇ・・・ でも、Visualプログラミングはまだやる気起きないなぁ。 Delphi6で不満な局面がないし
VRTwoPaneFrameは修正したけど、VRTwoPaneの方は修正してないみたいだね
ActiveScriptRubyのActiveScript部分のみのインストール手順(必要なファイルとか登録するレジストリ情報とか) とかってどこかにないですかね? ActiveScriptRubyが入っていないPCでRubyで書いたHTAとかを動かしたいときに 関連物を全自動でさくっと登録したいです
>>132 artonさんのWikiに質問を書いてからblogのコメントに質問があるからWiki見ろゴルァとか書くと良いらしいと日記に書いてあったヨ。
>>131 documentを取得しようとするとExcelのインスタンスが取得できた稀ガス。
>>133 ちょっと試してみました。
@excel = @exp.ole_interface.Document # でExplorerAxControlのインスタンスからexcelを取り出し、
@sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、
p @sheet.Cells.Item(3,2).Value # でC2のセルを表示
できました。
>>134 > @sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、
は、
@sheet = @excel.Worksheets.Item("Sheet1") # で、シートを取り出し、
の間違いでした。
これが出来ると、excelの機能をまるまるvrubyのアプリケーションに使えそうで良い感じです。
Excelへの印刷まではrubyから制御してるんだけどさ、 プリンタのジョブが完了したとかあと何件残ってるとか監視したいんだけど それはWin32OLEやASRで出来るもの? 無理? どこから監視すればいいのかわからんとです。
>>136 コントロールパネルからプリンタの画面を見る。
ということが、Rubyから出来れば可能。出来なければ不可能。
ネットワーク越しの対戦型囲碁ソフトってこれで作れます? 作れるけど困難? GUIアプリは作ったことありません。プログラミング経験は、Perl と Ruby のCGIだけです。 C#とかを勉強して、Visual Studio で作る方が近道でしょうか?
>>139 140でFA
自力でやるなら、やり方によるがネットワークプログラミングはどっちでも変わらんと思う。
地道にやると何にしろ面倒。
dRubyを使ってもいいのならRubyのほうが楽だと思う。
GUIだからってかまえなきゃいいんじゃない?
Labelで○●+表示して、クリックイベント拾うとかw
通信を自前のメッセージにするのかGTPにも対応するかで
困難さはだいぶかわってくると思われ。
>>141 が書いてるdRuby使った案だとViewをWin32ネイティブにも
CGIでのフロントエンドにもできていいんじゃない?
(256本網道編っぽい)
pstoreがmswin32でバグってるてのは多用している自分にとってびっくりだった。 次バージョンでのバグ修正を期待します。
winユーザーには冷たいですから
one-click Ruby をインストールしているマシンに ActiveScriptRubyをインストールしたらまずいことになりますか? やはりone-click Rubyをアンインストールしたほうがいいのでしょうか?
パスが違えば問題ないんじゃない?
One-click をインストールすると、環境変数 RUBYOPT=-rubygems が設定されるから、場合によっては不都合あるかもな
コマンドプロンプト毎に環境変数設定するバッチファイル書けば?
なぜWin32API.soは小文字にしない
固有名詞
155 :
デフォルトの名無しさん :2006/09/25(月) 11:55:05
WinとかWINで統一感ないね
Win32APIのオブジェクトって def playsound(filename, option = SND_SYNC) api = Win32API.new('winmm.dll','sndPlaySoundA',%w(p i),'i') api.call(filename, option) end より def playsound(filename, option = SND_SYNC) $win32playsound ||= Win32API.new('winmm.dll','sndPlaySoundA',%w(p i),'i') $win32playsound.call(filename, option) end みたいにして使いまわしたほうがいいんですかね。 オブジェクトの生成って重いんですか?
なぜ試さない/コードを見ないんだろう
定数でいいんでねか
USB Joypad を ruby上で利用する方法探してます。 ライブラリないしサンプルとなるコードってどっかにないですか?
SDLを使うとか?
ruby -e "`cls`" でcmd窓がクリアされないんですが他にいいやり方ないですか
ruby -e "system('cls')"
164 :
デフォルトの名無しさん :2006/10/17(火) 04:58:43
RubyでDDEを直接扱うライブラリありますか? vrubyのGUI経由でのライブラリがあるのは知っているのですが、 データをrequestするメソッドと返り値をとるメソッドが分かれてしまっているのが 使いづらくて・・・。
166 :
デフォルトの名無しさん :2006/11/06(月) 21:16:53
Win32APIをDLで置き換えるってのはいつから?
もう置き換えてるはずなんだがな。
168 :
デフォルトの名無しさん :2006/11/16(木) 01:53:02
いまさらだけど vruby061102リリース記念age
169 :
デフォルトの名無しさん :2006/12/03(日) 19:43:36
Bad file descriptor - connect(2) (Errno::EBADF)が出やすいのはwindowsだから?
なんかどっかで聞いたことあるな Threadの中でやるとよくないんだっけ?
俺の中ではgemが出すエラーだな。 rubyforgeが落ちてる時の。
ネット系は至る所からTimout::Errorがやってくる恐怖のライブラリ
174 :
デフォルトの名無しさん :2006/12/26(火) 04:18:38
Apolo使ってる人いる?
>>174 visualuよりもお手軽だしDelphi部品使えるから、たまに使うけど、
Apollo側からgem使うのがメンドイので、ふつーのmingw版と
共存させてる(おかげでPATHの関係でたまにハマる)
Apoloに関しては、 別にDelphiだけでいいじゃんという究極の問題点があるからな 無論、正規表現とかを使いたいときはありだけどさ
つーかDelでも正規表現使えるように環境整備しとけって。
178 :
デフォルトの名無しさん :2007/01/08(月) 01:56:39
まあ、単発のユーティリティとか、プロトタイピングでしかRubyつかってないからなあ、俺は。 GUIは、Delphiでいいやという気もする
180 :
デフォルトの名無しさん :2007/01/09(火) 23:08:01
exerb 4.1.0 上げ
VisualuRubyのフォーム作りはFormDesignerが一番楽なのか? 更新止まってるが、代替アプリやスクリプトってないよね。
exerbキター
VisualuRubyのフォーム作りはFormDesignerが一番楽なのか? 更新止まってるが、代替アプリやスクリプトってないよね。
ラクっつか、それしかないんじゃ? (VBだのDelphiだのみたいに)かゆいとこまでは手が届かないから 細かいとこは結局手でいぢってるけど、おおまかな部分をつくるものだと おもって、あんまり気にしてないや
ごめん。1日遅れの二重投稿してたorz 今気づいて自分の目を疑った。
ActiveScriptRubyをアップデートするために1.8.4をアンインストールしたらMS系のアプリがやられた。 .NET FrameWork とかスクリプティングホストで使ってる共用ライブラリも巻き込んでないか?
187 :
デフォルトの名無しさん :2007/01/18(木) 22:59:34
188 :
・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2007/01/19(金) 01:59:27
そーいえば俺も困ったことになった アップグレードしようとしたらインストーラがInternal Error吐くようになったり。 レジストリの手動削除を試してみるといい HKEY_CURRENT_USER\Software\Microsoft\Installer\ 配下にActiveRubyが作ったエントリがあるからそいつを手動削除
rubygemsはもっと高速化できぬものか
190 :
デフォルトの名無しさん :2007/02/02(金) 02:02:06
win32api と win32module だけでテキストボックスの中身を取得しようとするとどうすればいいんでしょうか? require 'win32/user32' include Win32 hWND = 11111 # ハンドル str = " "*255 SendMessage.call( hWND, WM_GETTEXT, 255, str) としてはいけないんですよね。 格納先をアドレスで指定しなければならないのですよね? うまいことstrをAPIに渡してやる方法はないでしょうか。
191 :
・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2007/02/02(金) 02:13:42
GetWindowTextA = Win32API.new('user32','GetWindowTextA','LPI','I') buf = "\0" * 500 code = GetWindowTextA.call(hwnd, buf, buf.size) text = buf.unpack("A*").first
早速のお返事ありがとうございます。 しかし、それだとキャプションしか拾えないようですorz
193 :
・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6 :2007/02/02(金) 02:55:26
ん? エディットコントロールのハンドルに対してGetWindowTextもしくはWM_GETTEXTやると テキストを取得する動作になる
プロセスが違う場合、共有メモリとかほげほげ
195 :
デフォルトの名無しさん :2007/02/10(土) 11:21:11
win32oleを使ってExcelファイルを読み込むプログラムを高速化したいのですが どうすれば速くなりますか? 読んだ後は、テキストファイルに書くだけです。 同じような構造のシートを10シート以上読み込むことがあります。 一つのシートは大体、100columns*100rowsより大きなサイズです。 全てのシートを読んだ後、データを整理して望むフォーマットで出力します。 プロファイルを取った結果、読み込んでいる部分が遅いという判断に至りました。 Rubyのバージョンは1.8.5です。 質問なのでageさせていただきます。
まずは読み込んで書き出す部分のソースを見ないことには何とも言えない。 コーディングが悪いのか、RubyとCOMの組み合わせの限界なのか。
OLEだと遅いよねー。 ODBCに登録してからの呼び出しだとアンマリ変わんないかな。 ヘタレなので元のExcel側でCSV書き出ししてから rubyで処理するとかしか思いつきません。
で、あと何年待ったらパス区切り文字のデフォルトが\にならないバグが改善されるの?
バグじゃないから仕様変更の理由を添えて開発陣を説き伏せない限り一生変わりませんが
Matzにっきを読むとわかるが、反論の仕方が「〜〜で十分」なので、言うだけ虚しい。
現在、vrubyでランチャーのような物を作っています。 値を入力してボタンをクリックすると コマンドラインからソフトを立ち上げ、入力フォームを非表示、又は消去したいんです。 何かに対して、Visible = false をするのかなと思うのですがうまくいきません。 MyForm < VRForm という形で宣言しています。 どうぞよろしくお願いします。
非表示は、form.visible = false みたいな感じだと思う vrubyだったらhideとか定義されてたはず
203 :
201 :2007/02/11(日) 21:26:08
>>202 ありがとうございます!
さっそくhide = true なぞを試してみます!
hide() だよ
>>193 >>194 遅くなりましたがありがとうございます。
確かに外部ソフトのeditコントロール内のテキストを拾おうとしています。
ruby+apiだけでは無理でしょうか。
ProgIDも見つからず、どうやらCOMサーバとして使用することは不可能なようです。
やりたいこと
VB(ver.5)で作られた外部ソフトのeditコントロールに入力された文字列を拾いたい。
WinSpectorで調べたクラス名:ThunderRT5TextBox
WinXPSP2で Dir.glob('C:/本/*')だと何も引っかからないが、 Dir.chdir('C:/本');Dir.glob('*')だと正常に読める。 なんで?
$KCODEは?
>>206 ,207
SJISIでそ。
「本」の2バイト目が'{'と同じなので、誤判定していると思われ。
1.8.6で解決しそうなふいんき(←なぜか変換できない)
>>209 > ふいんき(←なぜか変換できない)
このネタいいかげんウザイw
206みたいな前世紀的ネタで七転八倒する言語のスレだからな
Rubyに限らず文字コードまわりはまだしばらく課題となるだろうが、 今ソース見てるんだけどglobにはダメ文字の対処がないな。
>>212 どのソース?
>>209 のいうとおり1.8.6で対応したものが入るものだと思うんだけど。
>>213 あー、CVS見てた。
もうsvnだもんな。
忘れてた。
215 :
デフォルトの名無しさん :2007/03/05(月) 13:48:16
age
>gem install rails ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError) Bad file descriptor - connect(2)(Errno::EBADF) インストールできないです。 FW全てカット セキュリティ関連ソフトも起動せずにやっても変わりません。 ちなみにプロキシは無い環境です。
217 :
デフォルトの名無しさん :2007/03/31(土) 05:54:09
>>216 何故、誰も見てないここで聞く?
gemの他のコマンドは利く?
gem search rails --remote
とか
>216 rubyについては今日始めてプログラム板に来ました。 他で聞かれたようですね。串で経験があるという人がいましたね。解決済み でしょうか。 私は、先月中旬から数日間Windows+Oracle10g環境で「Railsによるアジャイル Webアプリケーション開発」という本の100ページまで試してみた者です。 (その後rubyを触る時間がなくて放っています) 私も同様のエラーが出た記憶があります。 他で答えていた人がいるようにプロキシが悪さをしている可能性があります。 私が覚えているrubyに関する変わった作業は、以下の二つです。 1)環境変数をさわりpathを通した。 2)gem installする時に(会社で時間外に試していたのですが)、プロキシ 不要の線から外に繋いだ。 Oracleに関しては100ページまでは以下の三つが変わった作業でした。 1)本にあるMySQL用のcreate table文やrbファイルの命令をOracle用に変更 2)table毎に順序オブジェクトを作成(例:line_items→line_items_seq) 3)NLS_LANGをAL32UTF8に変更 他の環境との関係もあり面倒なので、コマンドプロンプト内で変更 しています。 例) >SET NLS_LANG=JAPANESE_JAPAN.AL32UTF8 >ruby script/server
>>219 > 私が覚えているrubyに関する変わった作業は、以下の二つです。
> 1)環境変数をさわりpathを通した。
「変わった作業」なのかー。
221 :
デフォルトの名無しさん :2007/05/09(水) 21:58:50
2) は変わってると思った
わざわざ、環境変数なんて設定させるなよ、とは思うね
デフォルトで/usr/local/binにインストールしろよ、と?
Windowsで /usr/local/bin もなにもないだろ
オレのマシンにはありますがなにか。
>>225 Windowsなのに/なのか。珍しいな。
そういえばRubyの内部でファイルのディレクトリ区切りが"/"なのは気持ち悪い。
WindowsでもAPIレベルでは/も使えるからな。 でもそんなお前に Wuby。
228 :
・∀・)っ-○◎● :2007/06/14(木) 00:44:20
AN HTTPDで仮想パス使えるな
ruby/GSL 1.9.0をwindowsマシンにいれて、ブイブイ言わしている人いますか? pathでこけ、makeでこけ、あきらめ気味です...
Vista x64 にしたのですが、 x64 用のバイナリってどこかで配布してないですか?
232 :
・∀・)っ-○◎● :2007/06/29(金) 03:05:34
お荷車がLLP64にまともに対応してないし。
234 :
デフォルトの名無しさん :2007/06/30(土) 18:25:31
すみません。 gem で mysql 2.7.3 (mswin32) を入れたのですが、require すると以下のエラー出ます。 mysql を使うにはどうすればいいのでしょうか。 c:/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7.3-mswin32/ext/mysql.so: 193: %1 は有効な Win32 アプリケーションではありません。 - c:/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7.3-mswin32/ext/mysql.so (LoadError) あと、gem の使い方がいまひとつわかりません。 RUBYLIB に手動でインストールしたライブラリのパスを追加していくのでしょうか。
235 :
234 :2007/07/01(日) 00:14:09
すみません。自己解決しました。 libmySQL.dll が x64 バージョンだったので動かなかったっぽいです。
236 :
・∀・)っ-○◎● :2007/07/01(日) 17:49:21
鬼車はね、sizeof (long) == sizeof (void*) きめうちなんだよな。 longが32ビットでポインタが64ビットのWin64(x64)のプログラミングモデルをまともに想定してない。
LLP64では、ポインタだけが64ビットになります。int型とlong型は32ビットのままです。
>>238 そんなことはこの話についてこれるやつは全員承知してると思う。
鬼車のコード中の sizeof (long) == sizeof (void*) を決め打ちしてるところの例を教えて欲しい。
通りがかりですが、話を見て64でコンパイルだけしてみました warningは↓の3つ出ました regcomp.c:557: warning: cast from pointer to integer of different size regexec.c:1734: warning: cast from pointer to integer of different size regexec.c:1799: warning: cast from pointer to integer of different size
原因はこれですね #define GET_ALIGNMENT_PAD_SIZE(addr,pad_size) do {\ (pad_size) = WORD_ALIGNMENT_SIZE \ - ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\ if ((pad_size) == WORD_ALIGNMENT_SIZE) (pad_size) = 0;\ } while (0) #define ALIGNMENT_RIGHT(addr) do {\ (addr) += (WORD_ALIGNMENT_SIZE - 1);\ (addr) -= ((unsigned int )(addr) % WORD_ALIGNMENT_SIZE);\ } while (0)
これだけなら影響はなさそうですけどね。 まあサラっと見ただけですが
あ、すみません。 私の環境では long が64ビットなので、int の部分しかあぶりだせませんでした。
>>241 x64だとPLATFORM_UNALIGNED_WORD_ACCESSがdefineされるから該当コードは存在しない。
245 :
・∀・)っ-○◎● :2007/07/04(水) 22:35:04
怖ぇだろ常識的に考えて
ようするに根拠はない、と。
ダンゴ使えねぇ〜
使えないどころか、害悪だな。糞以下。
うちも何も表示されません。 HTML Helpの作成ミスでは?
うちは出るなあ。 HTML Help Control Version 4.74.9273
252 :
・∀・)っ-○◎● :2007/07/10(火) 21:46:04
>>246 64bitアドレス型から32bit整数へのキャストがある時点で怖い怖い。
>>250 やっぱ見れないですか。
>>251 見れる人もいるんだ。
超初心者だからヘルプがないとよく分からない。。。orz
Visualu RubyのFormdesignerのヘルプってないですかね? 質問があります。 FormdesignerのEditというコントローラ?、フォームの上に置くテキスト入力 できるやつです。 数字(ポート番号とIPアドレス)を入れるようにしているんですけど、入力制限 したいんですよね。 例えば、ポート番号なら1〜65535、IPアドレスなら1〜255、という感じに。 どのようにすればいいのでしょうか?
256 :
デフォルトの名無しさん :2007/07/11(水) 21:13:13
win32/config.hをテキトーにx64用に書きなおしてビルドしてみ? 小さい型へのキャストの警告でまくるから。
テキトーに書き換えないで真面目にx64版をビルドすりゃいいと思うんだが。
試行錯誤しながら何とかできました。
勉強用で、ルータのUPnPを利用してポートを開放するスクリプトを作りました。
自分のバッファローのWHR-G54Sではうまく動作しました。
他のルータでもうまく動作するかの確認をお願いします。
VisualuRubyが動く環境で実行できます。
ファイルは↓です。
http://www.uploda.org/uporg899427.zip.html ”OpenPort.rb”を実行してもらえれば、GUI画面が立ち上がります。
config.hの書き換えだけで対応できないからこそ型サイズ決めうちなんだろ。
x64 windows版が既にマージされてるという事実を見るだけで、 明確な根拠を示せない批判が全て無意味になるんだが。 config.hがどうこうとか言ってる奴は書き換え方が悪いんだろ。
>>249 ファイルのプロパティに「ブロックの解除」ってボタン無いですか?
解除しないとhtmlhelpがちゃんと開けないようです。
vruby で ListView をいじってるんですが、 マウスのクリックイベントって拾えませんか? ダブルクリックは拾えるみたいですが、右クリックも拾いたいのです。 require 'vr/vrcontrol' require 'vr/vrcomctl' require 'vr/vrhandler' class MyListview <VRListview include VRMouseFeasible def vrinit super addColumn("name",120) insertColumn(1,"ext",50) addColumn("size",80) addColumn("atime",120) insertMultiItems(0,[ [["test2","dat"],0], [["foo","bar"],1] ]) end end
module MyForm def construct self.move(10,10,600,400) self.caption="TreeList TEST" addControl(MyListview,"lv1","lv", 0, 0, 300, 400) end def lv1_dblclicked p 'dblclicked' end def lv1_lbuttonup(shift,x,y) p [shift,x,y] end def lv1_columnclick(subitem) p subitem end end frm=VRLocalScreen.newform frm.extend MyForm frm.create.show VRLocalScreen.messageloop こんな感じでやっても、lv1_lbuttonup に処理がこないのです。
vrubyはしらんけどdelphiのlistviewにはonmousedownというイベントがあって通常それで拾う。
右クリックでlbuttonupが来ると?
レスありがとうございます。 >266 そうですよね。 普通イベントハンドラがデフォルトで定義されているのですが vruby の VRListview では定義されてないようです。 Spy++でみると、WM_RBUTTONDOWN, WM_RBUTTONUP などのメッセージは ListView に来てます。 >267 失礼・・。まずは lbuttonup で試してました。 rbuttonup と読み替えてください。 最終的にやりたいことは右クリックを拾う、です。 lv1_dblclicked が呼ばれると、なぜか lv1_lbuttonup が同時に後から呼ばれていることを発見。 ウィンドウメッセージは ListView に飛んできてるので おそらくは vruby 側で何か処理を足してやれば めでたくマウスの右クリックがとれるはずなので もうちょいがんばってみます。
う〜む…; VRComCtlContainer#self_wmnotify(msg) にいったんメッセージが飛んできて、ディスパッチされるらしい。 ハンドラの名前は VRNotifyControl#notifycontrolinit で登録されてる。 addNotifyHandler(0xfffffffe,"clicked",MSGTYPE::ARGNONE,nil) addNotifyHandler(0xfffffffd,"dblclicked",MSGTYPE::ARGNONE,nil) : (FormDesigner を使っているとわからないメソッド) MyForm#lv1_clicked を定義してみたら、イベントが飛んできて捕まえられました。 ただ lv1_lbuttonup(shift, x, y) と違って座標などがとれない。 MyListview クラスに include VRMouseFeasible すると、 リストビューをダブルクリックしたときにのみ MyListview2#self_lbuttonup(shift, x, y) がきちんと呼ばれる 不思議な現象になる。 たぶん理由があって、ちゃんと突き詰めれば動くのだろうけど、もういいぽ・・。 とりあえず lv1_clicked にて hittest を適当に処理することで 対処することに決めました。5 時間かかった〜…。
なにをごちゃごちゃやってるのか知らんけど VRubyのリファレンスちゃんと嫁
正しい。 でもリファレンス嫁はちょっと漠然としてて範囲が広くてきっついよ。 ここ見れ、とか、メソッドやクラス名のヒントを つ[メソッド名] とかやってくれた方が助かるわー迷ってるんだから;
self_rbuttondown
おめでとう
漏れも
>>264-268 見てたときは思い出さなかったんだけど
>>269 の5時間かかった〜っていうのを見て
3年ほど前に同じ問題で半日ほどはまったことがあるのを思い出した
vruby でウィンドウが閉じるときに呼ばれるような onClose とか onDestroy ってどこかにありますか? X ボタンで閉じたときに終了処理をするイベントが拾えなくて 困ってるんですけど、msghandler をいじるしかないのかな? と思って grep したら include VRClosingSensitive して self_close で拾えばいいのか。OK。自己解決。
276 :
デフォルトの名無しさん :2007/08/05(日) 11:49:21
.
メモ font = @screen.factory.newfont("MS Gothic", -13) self.class::const_set("DEFAULT_FONT", font) で、デフォルトフォント全変更
278 :
デフォルトの名無しさん :2007/08/25(土) 09:33:44
>>258 試してみたいのですが、すでにうpろだから消えているような。。。
279 :
デフォルトの名無しさん :2007/08/25(土) 09:34:41
>>66 vrubyで画面に出てくるところを動かすときは、GC.disableを一時的にするといいって聞いたことがある。
282 :
デフォルトの名無しさん :2007/08/25(土) 17:50:24
>>281 ありがとうございます。いただいていきます。
まぁ、自分の勉強のために見たいという気持ちもあるのでっ。
使ってみてですが、「ポート解放失敗」(泣)
プログラミング熱は冷めたとのことですが、Aterm WD701CVでの失敗を報告しておきます。
>>282 あらら、失敗しましたかw
いやいや、私もRubyでソフトを作るのはこれが2作目です。
今度はC#をやろうと思い、挫折して、プログラミング熱が冷めましたw
FormDesignerで最大化ボタンオフでタブストップをやりたいと思ったのですができず… require 'vr/vruby' require 'vr/vrcontrol' class Form1 < VRForm def construct self.maximizebox=false self.caption = 'form1' self.move(140,124,335,218) addControl(VREdit,'edit1',"edit1",38,30,160,30,0x10000) addControl(VRButton,'button1',"button1",200,30,88,32,0x10000) end end VRLocalScreen.start Form1 WS_OVERLAPPEDWINDOW & ~WS_MINIMIZEBOX的なやり方って存在しないのですかね?
TABSTOPはダイアログでしか使えんよ。 そして、maximizebox=はダイアログでは使えんらしい。(なぜか) ちょっと書き換えるが、 require 'vr/vruby' require 'vr/vrcontrol' require 'vr/vrdialog' class Form1 < VRModalDialog def construct self.maximizebox=false self.caption = 'form1' self.move(140,124,335,218) addControl(VREdit,'edit1',"edit1",38,30,160,30,0x10000) addControl(VRButton,'button1',"button1",200,30,88,32,0x10000) end def maximizebox=(bool) #こぴぺ&修正 VRWinComponent::WinStyle.new(self).setter(WStyle::WS_MAXIMIZEBOX, bool) end end VRLocalScreen.openModalDialog nil,nil,Form1 かな。
FormDesignerだけど、例えばEditコントロールを貼っつけて、 マウスで適当にクリックしたりしてると、 勝手にコントロールの位置がずれたり、 サイズが小さくなったりするんだけど俺だけ? イライラするのですが回避方法ないでしょうか。
俺もそれよくなる。 結局height値を直接打って元に戻すしか方法ないのかね。 VRTabbedPanelで各タブパネルの上でカラー選択ダイアログを直接呼び出そうとするとエラーがでるので @tab.send_parent2 1,"hoge","clicked" で親に渡してダイアログを呼び出してるんだけど、取得した色番号を元のパネルのEditに戻したいんだけど def tab_panel1_hoge_clicked @tab.panels[1].foo.text = chooseColorDialog.to_s end でできなくorz 親から孫を直接指定ってどうやるんですか?
それにしても、みんなよくVisualuRuby使う気になれるな 俺はApolloを先に使い始めたから、どうしてもVisualuRubyのAPIに慣れない 機能面の差はそんなにないと思うんだけど クラスやメソッドの構成に癖があって、非常に扱いづらい…… 慣れれば何とかなるのかな
>>287 親に渡さなくても直接タブパネルにコモンダイアログを呼び出せばOK
公式マニュアルにはないけど、カラー選択なら
SWin::CommonDialog::chooseColor(nil, 0)
で、出るはず。
>>288 VisualuRubyはexerbで固めるとdllなしのスタンドアロンツールが作れるからなぁ。
(gemとか使うとdllが必要だが)
Apolloは別途Delphiの知識が必要な感じもするし、純粋なGUIプログラムなら大方はDelphiでできるし。
Delphi+Rubyの利点って正規表現をカバーぐらいしか思い浮かばない(無知でごめんよ)
ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。
GtkにしたらVisualuRuby使う気なくなった ごめんよ
291 :
デフォルトの名無しさん :2007/09/19(水) 08:26:46
> ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。 Apolloは、Windowsでしか動かないよ それと、更新されていないApolloは、Vista非対応のはず。(動くことは動くか) Delphi2007でコンパイルしなおさないといけないと思う
コード手書きでGUIとかありえない。 20年前じゃないだからさ。
HTMLやTcl/tk(Ruby/tkにあらず)なら手書きでも良いような気がする 要は現状でGUIを書きやすくて充実してるライブラリが無いって話じゃね?
294 :
289 :2007/09/20(木) 02:16:54
>>291 言葉足らずでごめん、VisulauRubyはwin32べったりだから、比較対象として選択肢がDelphi
でコンパイルできたりすることも可能という『可能性』ってことね。
(断然って言い方がマズかったorz)
> コード手書きでGUIとかありえない。
どこまでのプログラムを手書きと言うのか分からないけど、少なくともVisualuRubyにはFormDesigner
というGUIビルダがあるのがあるし、ApolloもDelphiのGUIビルダが使えるし、完全に一から手書きし
てるというわけでもないのでは?
自分は邪道編を見て、webもGUIもできる言語って凄いと思ってRubyを使い出したので(当時は他
のLLでもGUIできるって知らなかった)
Ruby自体がGUIプログラムをやるための言語ではないが、マニュアルが極端に少ないってが問題の1つだと思うよ。
>>294 「断然って言い方」だけじゃなくて、通常そういうのはマルチプラットフォー
ムとはいわんから、用語や日本語の使いかたがマズかったのでは。
vrubyとMozilla ActiveX Controlを使ってgeckoエンジンのwebブラウザを作成したいのですが ACTIVEXCINFOでできますか? smpleだとIEの例はあるのですが、ACTIVEXCINFOが分からず四苦八苦しているので、どのよ うに調べれはよいのですか?
vrubyってクラシックな視覚スタイルしか作れないのですか? 無いとしたら、今後XP(Luna)やVista(Aero)の対応予定とかありませんか? # Ruby/TkだとTileを使えばXP風味になりました # Ruby初心者スレから誘導されてきました
>>296 ACTIVEXCINFO =["Mozilla.Browser","DWebBrowserEvents"]
>>299 おお、これでサンプルを変更したら動きました。
ありがとうございます。
>>300 効率が悪いとは具体的にどうしてでしょうか?
solebでCOMから扱うとなると、実際にはdllだけではなくMozillaそのものをDLして
埋め込むという感じになると思うのですが、やりたいことはWEBrickでプロキシ通
信したものをgeckoエンジン表示させたいのですが…
302 :
デフォルトの名無しさん :2007/09/26(水) 12:47:16
solebはActiveXコントロールの情報も出ますよ。 ただ、むちゃくちゃイッパイ情報が出るので、 探すのが効率悪い。
303 :
デフォルトの名無しさん :2007/09/26(水) 14:18:57
Windowsで現在実行中のプロセスを列挙したいのですがどうすればいい? Win32APIのEnumProcessesとかを使うと出るらしいが 使い方がわからん。 使い方をおせーて
Windows NT系上での実行を想定してるんですが、 キャラクタセットについて下記の2案だとどっちが良いと思いますか? 案1 ・ソースプログラムをUTF8で書く ・Ruby/TkへStringを投げるときはそのまま ・コマンドプロンプトへStringを出力するときはSJISへ変換してやる 案2 ・ソースプログラムをSJISで書く ・Ruby/TkへStringを投げるときはUTF8へ変換してやる ・コマンドプロンプトへStringを出力するときはそのまま
と思ったけどプログラムコードの先頭で #! ruby -Ks って指定してやれば勝手にやってくれるのね・・・
たぶんActiveScriptRuby1.8.637に更新してからだと思うけど VisualuRuby使ったプログラムで 定数の再定義警告が出るようになりました。 ただ、Rubyインタプリタで実行したときは 警告されません。 Exerbで作った実行ファイルを実行したときに 警告が出ます。 俺だけなのかなぁ?
Ruby/Tkとvrubyを混在させるにはどうしたらいいの? Tk.mainloop と VRLocalScreen.messageloop を一緒に走らせないとならないっぽいんだけど無理かな?
>>307 > VisualuRuby使ったプログラムで
> 定数の再定義警告が出るようになりました。
再現できるソースはない?
>>309 test.rb
---
require 'swin'
require 'vr/vrcontrol'
require 'vr/vrdialog'
---
これをrubyインタプリタで実行しても警告は出ない
(-W2オプション付きでも)
(続く)
test.exy --- general: startup: test.rb core: cui kcode: sjis file: test.rb: Win32API.so: file: C:\Ruby\lib\ruby\1.8\i386-mswin32\Win32API.so type: extension-library swin.so: file: C:/Ruby/lib/ruby/site_ruby/1.8/i386-msvcrt/swin.so vr/vruby: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\vruby.rb vr/winconst: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\winconst.rb vr/compat/rubycompat: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\compat\rubycompat.rb vr/rscutil: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\rscutil.rb vr/contrib/vrwincomponent: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\contrib\vrwincomponent.rb vr/vrcontrol: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\vrcontrol.rb vr/sysmod: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\sysmod.rb vr/compat/vrcontrol.rb: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\compat\vrcontrol.rb vr/vrdialog: file: C:\Ruby\lib\ruby\site_ruby\1.8\vr\vrdialog.rb ---
>>311 のレシピファイルを使ってexerbで実行ファイルを作って
それを実行すると
vr/vrcontrol:1217: warning; already initialized constant WM_VSCROLL
などが出る。
(全角スペースでインデントしています。半角に変換して使ってください。)
まあ、エラーじゃないので、特に問題は無いんですけど、
なんか心臓に悪い。
313 :
デフォルトの名無しさん :2007/10/22(月) 17:44:18
RubyをMac OS Xで使うスレが無いのが寂しい Ruby/Cocoa使いとか居ない?
>>314 "ruby cocoa" site:2ch.net でググると
いくつかのスレで話題になっているようですね。
必要であればスレ立てしてみてはいかがでしょう。
RubyCocoaは明日から本番だしな。ちょうどいいんじゃね?
これ中国の修行僧が作った道だっけ?
319 :
デフォルトの名無しさん :2007/11/14(水) 01:55:36
ActiveSupportのようにライブラリを動的に読み込むスクリプトを、 exerbで実行ファイル形式にする方法ない?
必要なやつを全部レシピに追加しとけば?
321 :
デフォルトの名無しさん :2007/11/15(木) 01:31:37
便乗質問なのですが、hpricotっていうライブラリはc言語をコンパイルしたものが 含まれているって聞いたのですがそういうのもexerbに取り込むことが出来るのでしょうか。
322 :
デフォルトの名無しさん :2007/11/16(金) 00:52:44
>321 全然オッケー
323 :
デフォルトの名無しさん :2007/11/29(木) 11:10:51
>>323 とりあえず、VS2005ProにVS2005SDKとRuby.NET、VSRuby.NETをインストールしても、
VSに統合されなかったということだけは報告しておこう。
>>325 スタート > すべてのプログラム > Ruby.NET > Visual Studio (for Ruby)
>>326 おお、動いた。ありがとう。
とりあえず、Windowsアプリケーションで、ButtonとListboxをFormに貼り付けて
Clickイベントを書いたら動いた!
(大文字小文字をちゃんとしないといけないんだね・・・)
def button1_Click(sender,e)
listBox1.Items.Add(Time.now.to_s)
end
だが、ビルドもプロジェクトの保存もできない・・・。
休みの間にドキュメント読もう。
俺も使えた。 でも、インテリセンスが効かないのが最悪。しかも大文字小文字を区別するし。
>>328 > しかも大文字小文字を区別するし。
Ruby用のIDEで区別しなかったら使いものにならんだろ。
>>329 .NETのメソッドヤプロパティが全てcase sensitiveなのは使いづらい。
>>330 Ruby.NET的にはそういうのはどうなんの?
大文字のと小文字のメソッドが全部定義されてる?
>>331 定義されていない。
いちいちAdditemなのかAddItemなのかを調べる必要がある。
え、インテリセンス使いまくりな俺には厳しい仕様だなー
>>332 > 定義されていない。
てことはmethod_missing使って呼び出す?
>>310 を書いた者ですが、
vr/vruby: などと書いているところを
vr/vruby.rb: というように拡張子まで含めて書くと
警告が出なくなりました。
というか、何で含めて書かなかったのだろう。
んー。
(追記) Windows における Ruby のバイナリ互換性について
ビルド環境として MinGW、 VC++6、VC++7、VC++8を考えます。
で、ちゃんと検証したわけではありませんが、おそらく以下が成立するはずです。
MinGWで作ったRubyとVC++6で作った拡張ライブラリは一緒に使える。逆も可。
MinGWで作ったRubyとVC++7で作った拡張ライブラリは一緒に使えない。逆も不可。
MinGWで作ったRubyとVC++8で作った拡張ライブラリは一緒に使えない。逆も不可。
VC++6で作ったRubyとVC++7で作った拡張ライブラリは一緒に使えない。逆も不可。
VC++6で作ったRubyとVC++8で作った拡張ライブラリは一緒に使えない。逆も不可。
これは利用されるC Runtime libraryの種類が問題になっています。
一応Windowsには異なるビルド環境で作ったオブジェクトファイルを混ぜても
「だいたい」問題なく動作させるための機構があるらしいのですが、
Rubyの場合問題が起こる部分を使っている、ということらしいです。
最近のRubyでは、ビルド時に異なるビルド環境を使おうとしてもできないような
対策が施されています。
そこで、バイナリ配布されているrubyの処理系は大半がVC++6かMinGW で
ビルドされているため、人に配布するためのバイナリを作るのであれば
このどちらかを使うべき、ということになります。
ttp://www.kmc.gr.jp/~ohai/diary/?date=20070305
>>337 VC7とVC8間も互換性ないからな。
VC9も同様。
>>339 VC8 なんてSPのあるなしでも互換性がないんじゃなかったっけ?
342 :
デフォルトの名無しさん :2007/12/10(月) 16:10:11
Ruby+vruby+exerbで最適な画像処理用ライブラリって何でしょうか。 jpgを読みこんで、パレットをいじったりして、bmpで出力したいのですが。。。
344 :
デフォルトの名無しさん :2007/12/11(火) 21:52:43
ttp://www.garbagecollect.jp/~usa/d/200712b.html#id20071213_P1 >_ なんかいろいろ言ってる間に[ruby-core:14039]が。
>
>Anyway, the MinGW guys just commited a few changes that will allow you
>target specific MSVCRT versions with the same compiler, removing the
>pain to create extensions with gcc for ruby build with VC6/8/9.
>
>ですってよ。マジすか。福音キター!
>
>_ こうなってくると前提が変わってきて、mingwがMSVCRT.dllとリンクするからVC6が望ましい、という理屈は成立しなくなるんだよね。
>じゃあみんなでVC9に行ってみる?
Cで拡張ライブラリを書いたときに、拡張ライブラリから関数ポインタを返してRuby側でその関数を実行するにはどうしたらいいですか。
そんなことよりモジュール関数にするとか
関数ポインタをRuby上で表現できるようなクラスを書くしかないと思うけど。 でも結局DLの車輪の再発明のような気がする。
>>348 >>349 つまり直関数ポインタそのものを渡してもRuby側で実行できなくて、
たとえば拡張ライブラリを以下のようにするしかないってことですか。
//これをRuby側で実行したい。
hoge (*pf)(hage x);
//これをエクスポートしてRuby側で使う。
hoge f(hage x)
{
if(pf)return pf(x);
else return moge;
}
拡張ライブラリの作り方くらい読めよ
>>350 そもそも、どうして関数ポインタをRuby上で扱いたいの?
関数ポインタをシェルスクリプトに返しても呼べないが如し
354 :
350 :2007/12/19(水) 18:16:05
レスありがとうございます。
>>351 >>350 のソースはSWIGにかけてからdllを生成するつもりだったんですが、その点を書くのを忘れました。ごめんなさい。
>>352 どうして関数ポインタをRuby上で扱いたいかというと、既存のC++のクラスに関数ポインタのメンバがあって、
それをRubyでも使いたかったんです。
>>353 関数ポインタは使えないのですね。
とりあえずC++のソースの追加は必要ですが、
>>350 のようにやればRubyでも使えるようになると思っているので
それでやって見ます。もっと楽な方法があったら教えてください。
Windowsだったらsuikyoってゆーローマ字変換ライブラリは使えませんか??
356 :
350 :2007/12/25(火) 20:31:37
すいません。350です。 また教えてください。 とりあえず簡単な拡張ライブラリを作ったのですが、なぜかloadできません。 mytest.soというファイルをカレントディレクトリにおいて 以下のようなスクリプトを流すと以下のようになります。 ----スクリプト----- f=open('./mytest.so') p f require './mytest' ----結果---------- #<File:./mytest.so> ./mytest.so: No such file or directory - ./mytest.so (LoadError) from test.rb:3 ------------------- openではファイルが開けるのにrequireでは見つからないといわれてしまいます。 なにが悪いのでしょうか。 環境はwinXP+cygwinです。 rubyのバージョンは1.8.4 (2005-12-24) [i386-cygwin]です。
357 :
デフォルトの名無しさん :2007/12/26(水) 04:18:49
$LIB_PATH には、./は入るんじゃなかったけ? $SAFEが1以上なら、入らんみたいだが・・・
358 :
デフォルトの名無しさん :2007/12/26(水) 04:19:21
とりあえず、プロンプトで、これどうなります? $ ruby -e 'puts $:'
359 :
350 :2007/12/26(水) 07:25:56
>>358 以下のようになりました。
/usr/lib/ruby/site_ruby/1.8
/usr/lib/ruby/site_ruby/1.8/i386-cygwin
/usr/lib/ruby/site_ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/i386-cygwin
.
ちゃんと、最後に、 ". "が入っているから、 上手くいくはずなんだがな・・・
ファイルが見つからないんじゃなくて、mytest.soをDLLとしてロードできない何らかの理由があるんじゃないかな。 Init_mytestという関数がないとか、mytest.soが依存している他のDLLが動的リンクできないとか。
>>361 ロードできました。ありがとうございます。
原因はずばりInit_mytestがない、でした。
SWIGで生成したmytest_wrap.cxxではInit_MyTestという関数になっていて
これをInit_mytestにリネームすることで動くようになりました。
(あと #define SWIG_Init Init_MyTestのところもリネームしました)
mytest.iの書き方がまずかったためにこのようなことになったのでしょうか。
mytest.iは以下です。
%module MyTest
%{
#include "test.h"
%}
%include "test.h"
swigへの引数は-c++ -ruby mytest.iです。
とりあえず %module MyTest のところを %module mytest にすると上手くいくようです。 モジュール名は大文字で始めなければいけないという先入観がありました。
364 :
デフォルトの名無しさん :2007/12/27(木) 22:15:16
ttp://arton.no-ip.info/diary/20071227.html#p03 Ruby-1.9.0.msi
ASRやExerbはもちろん、Visualu Rubyなども入っていない素のMSVCRT(VC++6SP5)版のRuby 1.9.0になります。
以下が含まれます。サイズは15MB近くとでかいので注意。
・1.9.0 リファレンスマニュアル (chm版)
・include、lib、riなど1.9.0のnmake install対象すべて。rbconfig.rbは修正が必要かも
・Vista対応
・openssl(0.9.8g)
・readline
・zlib
・iconv(1.9.1)
・tcltk84用tcltklib.so
・この忙しいのにしっかりと入ったgoruby
再配布もご自由にどうぞ。
なお、アンインストールには信じられないくらいの時間がかかります。
ゴルビーってなんやねん
俺は全然まとはずれな、答えしてたのね orz DLLの中美香
artonさんとこのインスコして うきうきわくわく ruby -e "t=Time.now; 100000.times{}; puts Time.now - t" ってやったら 1.8の方が速かった しょぼーん(´・ω・`)
どういうベンチなんだそれは・・・
require 'benchmark' puts `ruby -v` puts Benchmark::CAPTION puts Benchmark.measure(RUBY_VERSION) { "a"*100_000_000 } ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32] user system total real 1.828000 0.031000 1.859000 ( 1.875000) ruby 1.9.0 (2007-12-25 revision 14709) [i386-mswin32] user system total real 2.484000 0.015000 2.499000 ( 2.532000) ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mingw32] user system total real 0.813000 0.015000 0.828000 ( 0.828000) ruby 1.9.0 (2007-12-30 revision 0) [i386-mingw32] user system total real 0.953000 0.016000 0.969000 ( 0.969000)
まちごうた require 'benchmark' puts `ruby -v` puts Benchmark::CAPTION puts Benchmark.measure { "a"*100_000_000 }
>>368 は、詳細をだせ、と言っているのではなく、
たぶん、それはベンチになっていないといいたいのでは?
1.9のほうが遅い=ベンチになってない(Ruby脳)
ActiveTcl8.5も出てたのか
何十個かの言語のベンチを比較するページがどっかにあったけど、 あれ試せばいいんじゃね?
RubyオセロをCOM同士で戦わせるベンチみたいなのはねーの?
Rubyスクリプトから、ファイルを関連付けられてるアプリで開くにはどうすりゃよいですか?
変数fileにファイル名が入ってるとして、 system("start #{file}")
Win32APIのShellExecuteを呼ぶ
>>377-378 thx
ShellExecuteで解決しました
ただ、反応しないファイル(assoc .extで関連付けが確認できないもの?)があるのですが
それらの対策ってできます?
戻り値が32未満ならエラーだからさらにその意味を調べて分岐すればいい。 たぶんこれ SE_ERR_ASSOCINCOMPLETE = 27; 詳細はググレカス
zipを渡して戻り値SE_ERR_NOASSOC 関連付け設定しなおして再起動してもうまくいかず 試しに system("cmd /c \"#{zipfile}\"") だったらうまくいったり 他のPCだったら無問題だったので、自分の環境がおかしいということで めんどくさいので解決ということにしました 指南どうもありがとう
/\s/ =~ zipfile
RubyでUSBカメラ2台以上のリアルタイム映像を取り込みたいのですが、 ふさわしいライブラリは何ですか? 用途はwindowsでの3次元画像処理です。 ここからは有ればいいなという程度の希望です。 今のところ、機能性と安定性の両方を考えると、Pure Rubyよりもラッパー系が良いかと考えています。 ラップされた方のライブラリがカメラに対応していて、なおかつラッパーが完成しているようなものが一番いいです。
ActiveScriptRuby 1.8.5をインストールした環境でVisualuRubyのタイマーを 使いたいのですが、うまく動いてくれません。ソースは下記の通りです。 timeralive?ではタイマーが存在している旨の表示がコンソールに出力されますが、 メソッド"timer1_timer"が呼び出されません。 どうすればちゃんとタイマーが使えるようになるでしょうか? 御指南をよろしくお願いします。 require 'vr/vruby' require 'vr/vrcontrol' require 'vr/vrtimer' include VRTimerFeasible class TimerTest < VRForm def construct self.caption = 'Timer Test' self.move(140,124,303,173) addControl(VRStatic,'static1',"Startボタンを押して!",40,80,224,40,0x800201) addControl(VRButton,'button1',"Start",40,8,224,48) end def button1_clicked addTimer(1000, "timer1") puts "TimerAlive => " + timeralive?("timer1").to_s end def timer1_timer puts "タイマー来たよ" @static1.caption = "タイマー来たよ!" end end VRLocalScreen.start TimerTest
include VRTimerFeasible をclass定義内に
> 用途はwindowsでの3次元画像処理です。 あきらかに、Rubyの用途じゃない
388 :
384 :2008/01/14(月) 23:41:34
すみませんが、またまたどなたかに御指南をお願いします。 下記のコードで、timer1_timerのsleep時間中に、Start/Resetボタン(button1)を押してもすぐにはボタンが反応しません。 ボタンを押し続けていると、数秒後にようやくボタンを押し込めるようになるのですが… これを任意のタイミングでボタンを即座に押し込めるようにならないかと考えています。 できれば具体的なコードで教えていただけるとありがたいです。よろしくお願いします。 require 'vr/vruby' require 'vr/vrcontrol' require 'vr/vrtimer' class TimerTest < VRForm include VRTimerFeasible def construct self.caption = 'Timer Test' self.move(140,124,303,173) addControl(VRStatic,'static1',"Start/Resetボタンを押して!",40,80,224,40,0x800201) addControl(VRButton,'button1',"Start/Reset",40,8,224,48) end def button1_clicked deleteTimer("timer1") if timeralive?("timer1") @i = 0; addTimer(1000, "timer1") end def timer1_timer @i += 1; @static1.caption = "#{@i}回タイマー来たよ!" sleep(5) #タイマー中に行う処理のダミー end end VRLocalScreen.start TimerTest
sleepんとこの処理をスレッドにするとかそういう話?
390 :
デフォルトの名無しさん :2008/01/15(火) 10:46:47
WinグラマならPowerShell使おうぜ 6ヶ月以内にアクセスされなかったファイルを削除するサンプル Get-ChildItem | Where-Object {$_.LastWriteTime -lt (Get-Date).AddMonths(-6)} | ForEach-Object {$_.Delete()} もうRubyいらないね\(^o^)/
LastWriteTimeが最終アクセス時間なのか?
>>390 PowerShellのリファレンスマニュアルどこよ?
文法とか仕様とか標準ライブラリとか。
Rubyのリファレンスマニュアルレベルの物で良いからどこにあるのか教えてくれ。
俺はそれが見付からなくてやめた。
394 :
350 :2008/01/16(水) 19:56:40
たびたびすいません。350です。 また教えてください。 SWIGでRuby拡張ライブラリを作っています。 関数の引数にポインタを渡してそれ、を介して値を返す場合typemaps.iに定義されているOUTPUTが使えるそうなのですが、 クラスのメンバ関数だと上手くいきません。 クラスのメンバ関数をtypemapにマッチさせるにはどうしたらいいでしょうか。
395 :
350 :2008/01/16(水) 19:57:06
=============C++ヘッダ============ #ifndef MYLIB_H #define MYLIB_H void add(int a,int b,int *result); class AAA { public: void add(int a,int b,int *result); }; #endif ============C++ソース============= #include"mylib.h" void add(int a,int b,int *result) { *result=a+b; } void AAA::add(int a,int b,int *result) { *result=a+b; }
396 :
350 :2008/01/16(水) 19:57:34
==========インターフェースファイル======= %module mylib %{ #include"mylib.h" %} %include typemaps.i void add(int a,int b,int *OUTPUT); void AAA::add(int a,int b,int *OUTPUT); %include "mylib.h" ===========rubyファイル================= require "mylib" print Mylib::add(1,2),"\n" print Mylib::AAA.new.add(3,4),"\n" ===========実行結果=================== bash-3.1$ ruby test.rb 3 test.rb:4:in `add': wrong # of arguments(2 for 3) (ArgumentError) from test.rb:4
397 :
350 :2008/01/17(木) 20:45:01
半分くらい自己解決しました。 その方法はヘッダを以下のように書き換えるというもの。 一応これで動くのですが、なるべくならヘッダをいじらずに インターフェースファイルで何とかしたいです。 良い方法があったら御教示お願いします。 #ifndef MYLIB_H #define MYLIB_H void add(int a,int b,int *OUTPUT); class AAA { public: void add(int a,int b,int *OUTPUT); }; #endif
ActiveScriptRubyの1.9.0はでないのかな それとも1.9.1待ち?
399 :
デフォルトの名無しさん :2008/01/21(月) 02:00:32
ActiveScriptRubyはヤル気あるのか? 1年以上放置してんじゃねーよ。
枯れてるんなら余計なことはしなくていいよ
どうして欲しいのか言わないと 伝わらないよ。
402 :
デフォルトの名無しさん :2008/01/21(月) 22:17:42
1.9.0に対応してほしい。
迷走してるから無理
vcで作った拡張ライブラリのバイナリ配布って無理?mscr80になっちゃうでしょ 配布されてるやつはmscrt版だし ここら辺はわかってる人同士の話しかないのでエンドユーザーには大変だな
>>404 そういや、この辺まとめてあるページってないのかな?
gemとかで配布する、Win32用の拡張ライブラリ(DLL)のランタイム回りどうすればいいのという
>>404 vが抜けてるあたりで君がわかってなさそうだということは伝わった。
>>405 gemで配布するのはどうすればいいんだろうね。
MinGW版向けということでmsvcrtが無難という気はするが。
Ruby初心者です。環境はWindowsXP2とActiveScriptRubyで、 EmEditorから .rbを呼び出して使いたいのです。 開いているテキトスファイルに、.rbでの内容(主に文字列の置換)を適用するのが 主な目的です。Emのヘルプにはサンプルとして、 #language = "RubyScript" Window.document.write( "Hello!" ); と書かれており、これはちゃんと Hello! と書き込まれるのですが、 #language = "RubyScript" puts へのへのもへじ と書くと「Bad file descriptor 」と出てきます。 ActiveScriptRubyを入れれば、 そのまま .rbファイルが読み込めるというわけではないのでしょうか? さっぱりわかりません。 初心者過ぎてどこでおかしくなっているのかすら判らず立ち往生しています。 どうか問題点と解決策を御教示ください。お願いします。
上の puts へのへのもへじ は、 puts 'へのへのもへじ' の間違いでした。すみません。
ActiveScriptRuby も EmEditor も使ってないけど puts の出力先は Window.document ではないって事だろ エディタのテキスト編集したいなら Window.document いじれ
ActiveTcl8.5に対応したtcltklib.soはないんかい
vrubyについて聞きたいのですが、 VRForm上に配置した特定のVRButtonのクリックをReturnキーで 行うにはどうすればいいのでしょうか?
VBDefaultButton
413 :
411 :2008/01/27(日) 22:09:22
>>412 すみません、VisualRubyリファレンスで探しても、
vrubyのソース内をgrepしても、
vrubyとの組み合わせでググっても、
VBDefaultButtonは出てきませんでした。
VBicと関係あるのでしょうか?
お手数ですが、具体的な使い方を教えていただけないでしょうか?
class VRDefaultButton < VRButton def construct super self.stype |= BS_DEFAULTPUSHBUTTON end
>>414 以下のようなコードを書いてみたんですけど、Returnキーに反応してくれませんでした。
アドバイスがあればよろしくお願いします。
require 'vr/vruby'
require 'vr/vrcontrol'
class VRDefaultButton < VRButton
def construct
super
self.stype |= BS_DEFAULTPUSHBUTTON
end
end
class Form1 < VRForm
def construct
self.move(140,124,330,200)
addControl(VRStatic,'static1',"ボタンを押して",64,24,176,24,0x201)
addControl(VRDefaultButton,'button1',"ボタン",64,80,176,32)
end
def button1_clicked
@static1.caption = "押しました!"
end
end
VRLocalScreen.start Form1
include VRKeyFeasible ちなみに色んな意味でVirualRubyは腐ってるから 本気でGUI検討してるならwxRubyの方がお勧め
指定したファイルが 隠しファイル属性を持ってるか 調べるにはどうすれば良いですか? ASR使えば出来るのかな…? Ruby標準の機能で出来るならソレが一番良いのですけど
Win32Utils の win32/file
>418 ああ、組み込み機能では出来なくとも、それでいけるのか。さんくす。
420 :
デフォルトの名無しさん :2008/02/06(水) 23:10:08
是非ともWin32::APIを標準ライブラリに!
421 :
デフォルトの名無しさん :2008/02/07(木) 12:13:03
激しくスレ違いかもしれませんが、質問です。 PCゲームを多重起動しようと試みたのですがダメでした。 大抵のゲームはWindowsのアカウントを2つ作成し、別々のアカウントで起動すれば問題ありません。 現在、Vistaを使っているのでXPではどうなるかはわかりませんが(XPは右クリックから別ユーザーで起動が可能)、 Vistaでその手法をとる場合、runasコマンドを使用することになります。 しかしこのコマンドで別々に起動しても、後から起動したほうが無効になってしまいました。 で、ここからがわけわかめなのですが、同一のデスクトップからの起動はダメでも、 Windowメニュー→ユーザー切り替えをし、別々に起動すればうまくいきました。 この違いはいったいなんなのでしょうか?
なんの誤爆だよ
424 :
デフォルトの名無しさん :2008/02/28(木) 20:18:35
なんか書け
なんかっつっても1.9.0でないしな
いや、1.9.0-0は出てたろ。 1.9.0-1も出たし。
win32oleはユニコードに対応しないのか
出てないのは、このスレのサブタイ ActiveScript Rubyの事ね
gem+ActiveRecord+exerbってイケる? なんかうまくいかんのだが… mkexyで作ったファイルでexerbしてみるとなんか C:/Program Files/ruby-1.8/lib/ruby/site_ruby/1.8/exerb/recipe.rb:146:in `add_file_entry': control.exy: no such file -- C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/inflections.rb (RuntimeError) とか言われるし、exyファイルの中身みて手動で書き換えるとexeは作れるんだけど rubygems.rb:304:in `report_activate_error': Could not find RubyGem activesupport (>= 0.0.0) とか言われてしまうぜ どーしたらいいんだ…
>>429 C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/specifications
などもいるんじゃないかな、と適当なことを書いてみる。
>>430 メンゴ ベリわかんねぇ
もっと詳しく頼めるか…
よーするにgemspecさんたちの中に幸せになれる情報が詰まってるからそれも一緒にアーカイブしてくれるようにexyファイル記述すればいいのか?
だがしかしgemもexerbも原理理解してない俺は
activesupport-2.0.2.gemspec:←ここどう書けばいいかわかんねぇ… gems/activesupport-2.0.2.gemspec:?4種類くらいアテカンで試したけどわかんね
file: C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/specifications/activesupport-2.0.2.gemspec
たぶんgemとexerbはかなり相性悪い… というかどちらもrequireを上書きするから同時に使うのはほぼ無理じゃないかな 面倒だが一番すっきり解決する方法はgemを使わずにライブラリをインストールすること それが困るならmkexyの時にrubygemsをrequireせずに、 gemがインストールされているディレクトリを-Iで指定してrequireすること あとはmkexyを使わずに自分でレシピファイルを書く方法もあるな
>>432 ActiveRecordとActiveSupportをgemんとこから引っこ抜いてきて、
requireしてるとこやらなにやらぶっ殺して回ったらとりあえず動くexeが作れたよ!
さんきゅべりまっち!
なんかスマートに片付いた感じがしないけど!
再発した…
active_support/core_ext/class/attribute_accessors.rb:24:in `cattr_writer': unde
ined method `extract_options!' for [:silencer]:Array (NoMethodError)
from active_support/core_ext/class/attribute_accessors.rb:46:in `cattr_
ccessor'
from active_support/clean_logger.rb:18
('A`)モウダメポ わかるかこんなもん…!!
gem + Mechanize + exerb + activerecord(activesupport) + composite_primary_keys + wxRuby2
作成手順
・mkexyする
・gemがactivesupportみっかんねーよとか言い始めるのでrubygems系をexyからどかす
・activexxxさんがgemないよとかいうからrequire 'gems'してるとこをどかす
↑
>>433 ではこれで動いた ↑
で、上記エラーが出る
wxRubyでGUI追加しただけなんだけどなぁ…なんでだ…
環境はWinVista + ActiveScriptRuby 1.8.6(p114) + 必要なものはgemで入れ(gem update随時)
Ruby以外の言語でコンパイルできてMechanizeとかActiveRecordみたいな便利なモンある言語しらねぇよorz
関係ないかもしれんがwxRuby2はそのままではexerb化しても上手くいかない wx.rbにwx/classes/*.rbを実行時に列挙してrequireしてるところがあるから そこを書き換えるんだ
>>436 GUI部分だけだとExerbでExe化できてるのよ…
wx.rb見てみたけど、相対パス作ってrequireしてるだけっぽいから大丈夫っぽくない?ダメなの?
そして全部展開してみてやってみたけど結果変わらずだった…
とりあえず、rubyでGUIでコンパイルが条件ならruby2exeで代用してみれば? ただ、起動が激重になるけどね。
>>438 rubyscript2exeやってみたよ!
wxRubyでxrcファイルを上手く取り込めない
wxruby2.soがエラー吐いてるっぽかったからどうしようもない気がした
しょうがないからGUIを自力でソース上に書いてまとめたらとりあえず動くようになった!
でも起動してもコマンドプロンプトが出ちゃってダサい
http://www.erikveen.dds.nl/rubyscript2exe/index.html#3.1.0 みて --rubyscript2exe-rubyw 指定すると出なくなるけどActiveRecord使うらへんで落ちてるっぽいからもう気にしないことにした
そしてご指摘の通り起動が激重で泣ける orz
俺のマシンだと5秒くらいだけど古いノートパソコンでやると30秒以上余裕でかかるし…
wxRubyって既存のコントロールの描画をカスタマイズして使用したりする用途は不向き? ListCtrlのアイテムのフォーカス枠が見えにくいんで描画をカスタマイズしようとしたけど ListCtrlのSizeとかRectを得る系のメソッドがことごとく未実装だった・・・
不向きということもないとは思うが、 あまり使われないようなメソッドはまだまだ実装されていないのが多い 自分で実装してパッチ投げると皆幸せ
そこまでのハッキング力はないのでevt_paintを丸々処理して解決してたんだけど、 get_itemでカラムのテキストが取得できないっぽいのでもうコントロール自体を 自作したほうが早そうだ・・・ なんか本家のwxWidgetsでも既存コントロールのカスタム描画は 難がありそうな感じがする
既存コントロールは結局ベースの実装によって変わっちゃうからなぁ 拡張は難しいかもな
なんかFrameにSizerくっつけると普通にSizer使えるけど WindowにSizerくっつけるとまったく動かない。 なんかいろいろいじってもうまく行かないのでここで質問しようと思ったけど ちょっと本家で試してみる。
444ゲット!
446 :
デフォルトの名無しさん :2008/06/16(月) 00:34:15
るりまのchmがいけてないのが心配でならない
正直読みづらいよなアレ
そもそもバグトラッカー止まってるのにどこに言えば……
と思ってたら、いつの間にか復活していたのか
>>448 ・目次上で、あらゆる種類の標準クラスが「標準ライブラリ」の項へフラットに突っ込まれてるところ
・目次上で、あらゆる種類の添付ライブラリがフラットに突っ込まれてるところ
あとは多分慣れの問題
るりまは、いちいちメソッドのページにいかないと詳細を見られないのがめんどくさい
前のchmファイルみたいに、 ・標準クラスは継承の階層にしてほしい ・標準添付ライブラリはジャンル別にまとめてほしい ってことか? なら完全に同意。 Refe2のデータベースからまんま作るからだと思うけど、標準クラスライブラリが辞書順でソートされてても あんま嬉しくないんだよな。検索できるし。
452 :
デフォルトの名無しさん :2008/06/20(金) 18:25:55
WindowsでRuby/MySQL(MySQL/Rubyではない)使っている方いますか? MySQLが4.1なのでパッチをあてたのですが、 "引数の数が違う"というエラーが出て接続できません。(テストも同じエラーで通らない) パッチはちゃんと適用されてると思うんですが・・・ 当初Windowsでは動かないのかとも思ったんですが、レン鯖のUNIXでも同じ様子です。 アクセスのコードはマニュアルのとおりです。 my = Mysql::new("hostname", "user", "passwd") my = Mysql::new("hostname", "user", "passwd", "dbname") もし原因が思い当たる方いましたらお願いします。Win32のRuby1.8.7です。
454 :
デフォルトの名無しさん :2008/06/21(土) 02:11:09
453追記 Ruby/MySQLのバージョンは0.2.6です
455 :
453 :2008/06/22(日) 03:34:24
まだ完全ではないのですが、ほぼ解決できてきました。 ライブラリ中で関数の呼び出し方に誤りがあり、そのためでした。 公開当時と少し変わったのかもしれないですね。 とりあえず接続までうまく行きましたm(_ _)m
1.8.7(p22)
457 :
デフォルトの名無しさん :2008/06/27(金) 20:26:33
readlineってどうやってビルドすんの?
>>457 ヘッダとライブラリがあって、configureで指定してあれば、自動で作る。
在りかはぐぐれ。
それでもだめなら、やったこととext/readline/mkmf.logを添えてruby-listへ。
VisualuRubyのことで質問があります。 VRMessageHandlerモジュールに、WM_LBUTTONUPなどの生のメッセージとハンドラ (メソッド)を結びつけるためのaddHandlerというメソッドがありますが、これの4番目の 引数のargparsestrとはなんですか? リファレンスの英語の説明ではよくわかりません。 (検知したいメッセージはvrubyで対応しているものとは限らないが、vrubyは使いたい ので、msghandler上書きではなく上の方法でやりたい) あと上のやり方で登録したメソッド内でメッセージのパラメータ(lparamやwparam) にアクセスするにはどうすればいいのでしょうか?
vruby.rbのmsgarg2handlerargを見ればわかるはず
ありがとうございました。わかりました。 argparsestrはメッセージのパラメータに構造体のポインタが渡されてくる場合に String#unpackの引数と同じものを構造体の中身に合わせて指定、 パラメータはMSGTYPE::??に応じてmsgarg2handlerargに書かれた形式でハンドラ に渡してもらえる。 と理解しました。
463 :
デフォルトの名無しさん :2008/08/08(金) 23:00:54
WIN32OLEでエクセルいじるスクリプト組んで rubyscript2exeで実行形式作ってて、 exit使ってbatにエラー返そうとしたらEXCEL.exeが残り続けちゃうんだけど そういうやついる? これでおちるんだけど require 'win32ole' exp_xls = "Book1.xls" fso = WIN32OLE.new('Scripting.FileSystemObject') begin excel = WIN32OLE.new('Excel.Application') book = excel.workbooks.open({"filename"=>fso.GetAbsolutePathName(exp_xls),"readOnly"=>true}) ensure book.close excel.quit end exit(-1)
464 :
デフォルトの名無しさん :2008/08/09(土) 03:39:00
ensure block.close excel.quit fso = book = excel = nil GC.start end exit(-1) でどう?
465 :
デフォルトの名無しさん :2008/08/09(土) 22:03:31
>>464 ありがとう!
GCに回収させるのか。
ちょっと会社で試してみる
466 :
デフォルトの名無しさん :2008/08/09(土) 22:46:25
なぜWSHでやらないのか
rubyの添付ライブラリてフォルダ100ファイル1000くらいかな?もっとあるよね 標準添付ファイルだけでも1ファイルに収まるような仕組みのrubyてでないかな データベースみたいなので cygwinもそうなんだがwindowsのファイルシステムて小さなファイルが大量に発生するのって あんまり想定してないよね。ディレクトリからしてディスク移動が標準でできないせいでディスク分断がひどいんだよね
>>468 exerbとかで一つのバイナリファイルにまとめてしまえばいいんじゃね?
1.8.7(p72)
>>468 Pythonだとzipimportってのがあって、LIB_PATH相当にzipファイルを入れておくと、
そこからからライブラリを読むんだよな。
Rubyでも決してない需要ではないはず
zipにするとzlib必須になるからなぁ。 tar相当のほうがいいのかな。
久しぶりに秀丸使ってみたら単語補完とかあって便利だった
474 :
デフォルトの名無しさん :2008/09/04(木) 16:35:07
1.9からは WIN32OLE -> Win32OLE require 'Win32API' -> require 'win32api' にしてくれないかなあ 統一感がなくて気持ち悪いから
>>474 とりあえず、後者は、require 'dl/win32' だ。
476 :
デフォルトの名無しさん :2008/09/09(火) 12:14:09
Dokanあついよね。Windowsでまさか、Rubyでファイルシステム作られるとは思わんよ
なんでそういうの日本人が作るとネーミングセンスのかけらもないの?
そういうな。例えば linux だって結構イタい名前だ。 世の中そんなもんだ。
>1. WIN32OLE#[], WIN32OLE#[]= を使ったプロパティの設定、参照が1.9ではできない。 ああ、たまに使ってたのに
482 :
デフォルトの名無しさん :2008/09/26(金) 00:09:50
Exerb で rails 動かせた人いない? Exerb はrequireの挙動が違って、railsの中でFile.expand_path(__FILE__)とかやってる場所でこける。 逐一直せば動きそうだが、根本的な解決がしたい。
前にexerbか、rubyscript2exeかで固めたrailsアプリを配布している人がいて、 ちゃんと動いていた記憶がある。 どこのブログだったかな・・・ Railsでデスクトップアプリ、とか言っていた気がするが
485 :
482 :2008/09/26(金) 21:01:58
>>483-484 ありがとう
今Windowsマシンがなくて試せないけど、月曜になったらやってみます。
Macには rorgate とかいう rails でデスクトップアプリを
作るためのフレームワークがあるらしいけど、
Windowsではあまりそういう需要はないのかな。
DB処理に裏でActiveRecordが使えるし、
画面がHTMLとCSSで作れるので、
ページ遷移が多くてかつDBを使うときは結構嬉しいと思うんだけど。
Exerb4.8でrails2.0.2のパックはできたが、かなり面倒だった。
ほかの誰かが同じ目に遭わないように、覚え書き置いときます。
1.Kernel.loadをrequireまたはevalで置き換える。
requireの場合、mongrel_rails等は.rbをつけてレシピに書き
置き換えた後のload内でも適宜.rbを付加するようにする。
2.dirname用のファイル名→ディレクトリ名テーブルを作る。
レシピファイルからどうにか生成する。
File.dirnameはこのテーブル→実ファイルの順に検索するよう変更。
3.rubygems対策に $:.push RbConfig::CONFIG["sitelibdir"] する。
特別な理由がなければ
>>484 でいいわ。最初から見つけていれば。。。
exerbのloadと__FILE__はもうちょっと何とかならないのかな。
487 :
482 :2008/09/27(土) 11:27:35
486の補足で、その原因と思われるものを書いておくと、 Exerbの__FILE__にはフルパスが入っていないこと。(多分requireで呼び出したときの名前がそのまま入ってる) 本家rubyでは、例えばactive_support.rbにputs __FILE__を追加して、 require 'active_support'すると、ちゃんとフルパスが表示される。 Exerbでは active_support.rb と表示される。 # __FILE__が常にフルパスになるようにExerbのソースを書き換えようと思ったけど挫折しましたorz # そもそも、そのファイルがあるディレクトリを、File.expand_pathなんて方法で取ってるのが嫌 # Rubyらしく(?)__FILE__は文字列じゃなくてファイルオブジェクトを指してほしいなあ。 # あ、書き忘れてたけど、俺の環境はruby1.8.6とExerb4.4でした。
__FILE__がフルパスになるとしたらexeがある場所でいいのか? どっちにしろそこにrbを置いとかないとならんからちょっと面倒だな __FILE__より$0がフルパスになってくれると嬉しいんだけどなぁ
489 :
デフォルトの名無しさん :2008/09/27(土) 12:21:08
>__FILE__がフルパスになるとしたらexeがある場所でいいのか? exeがある場所じゃなくて、ライブラリのそのファイルがある場所。 active_supportなら、例えば c:/my_project/vendor/rails/activesupportx.x.x/lib/active_support.rb
一つ質問させてください。 Windows環境で、rubyスクリプトを実行するときに、Systemフォルダがある場所(%SYSTEM%のパス)を知りたいのですが 何か方法はないでしょうか? win32oleを使えば何とかなると思っていたのですが Wscript.Shellのメソッドには、見たところパスを取得する手段がないようです。
491 :
デフォルトの名無しさん :2008/09/27(土) 15:57:23
win32ole経由で環境変数の値が取れるので%SystemRoot%か%windir%は分かるでしょ
%SYSTEM%ならWin32 APIのGetSystemDirectory。 %SYSTEMROOT%ならそのものズバリの環境変数。 puts ENV['SYSTEMROOT']
require 'win32ole' fso = WIN32OLE.new('Scripting.FileSystemObject') puts fso.GetSpecialFolder(0).path # windows folder puts fso.GetSpecialFolder(1).path # system folder puts fso.GetSpecialFolder(2).path # temp forlder
494 :
490 :2008/09/27(土) 19:21:17
回答ありがとうございました! 今回は古い環境での動作を考え、Win32APIを使って解決させていただきました。
exerbで__FILE__の話なら「るびま」のwindows用の本にも載ってるし… ExerbRuntimeでググれよ
>>489 俺が意図を読み違えてるだけかもしれないが、
exeに固めた後はライブラリのそのファイルがある場所って所にそのファイルが無いかもしれないんだぞ
というかそのファイルから読み取らずにexeから直接読み取ってるのでパスは入れられないんじゃないか?
固める前のパスが欲しいってなら出来るかもしれないけど、何か意味あんのかそれ
Win32APIは、戻り値がBOOLなのが多いから、戻り値に'b'を指定したら、 0の時だけfalseにして値を返すとかにしたらいいのになあ
498 :
デフォルトの名無しさん :2008/10/26(日) 18:32:44
Vectorで拾ったバーコード生成DLLを利用して、ラベルに印刷したりしてるんだけど 逆にそれをスキャンして、JPG画像ファイルから認識させるツールをご存知のかたはいませんか? フリーなもので探してるのですが、商用ライブラリとかしかみあたらなくて... zxingとかjava系のものはいくつかあるようなのですが、Javaはさっぱりでわかりません。
何をしたいのか知らないけど安いバーコードリーダを買った方が早いと思う
500 :
デフォルトの名無しさん :2008/10/27(月) 06:38:33
バーコードリーダを現在つかってますが、それ以外の情報も画像中に 含まれているので一括してソフト的に捌きたいのです。
どこのスレが適切かはわからないけど 少なくともここよりもっといいスレがあるはず。 手に入れたDLLがRubyから呼べなくて困ってるって 段階になったらまたおいで。
pythonにはあったような
VC++で作った拡張ライブラリを他のPCで使おうとしたら、「このアプリケーションの構成が正しくないため、アプリケーションを開始できませんでした」 というエラーになるのですが。 多分、VC++のランタイムがないのが原因みたいなのですが、VC++のない環境でも利用できるようにするにはどうすればいいですかね?
>>503 VC++がないと動かない、というのはデバッグ版でビルドしているからだろう。
配布されているランタイムにはデバッグ版のDLLは付かないから
そうじゃなくて、ランタイムがいらないように作りたい、というのならば
最初からランタイムが入っているような古いVC++でコンパイルする、とか。
か、Delphiでも使えよw
まあ、普通はランタイム入れる
505 :
500 :2008/11/03(月) 07:35:31
>>502 thx!
Pythonがらみで検索してたら、SDLで処理するライブラリを発見できました
barcode.pyはもともとSDLcamのコードを実装したらしいです。
まずはSDLcamでどうなるかチャレンジしてみます(V4L使うのでWinじゃなくなっちゃうけど)
適当に言ったんだけどあるところにはあるもんですね
507 :
デフォルトの名無しさん :2008/11/05(水) 06:56:59
Windows上でTIFFやJPEGの画像ビューアを作ってみようと思ったのですが VisualuRubyではBitmapしか貼付けられないようなので、 どのフレームワークを使えばいいか迷っています。 gtkだと日本語表示もろもろ何かとハマりそうなので避けたいと思ってるのですが、 いまどきは支障ないものでしょうか? 最終的にはカーソル部分の拡大を実装してみたかったんですけど...
508 :
デフォルトの名無しさん :2008/11/05(水) 07:06:26
ちなみに迷ってるってのは Apollo ... もうメンテされてない? gemsと仲わるそう QT ... win版は商用? 日本語不安 tk ... いま一番話題かも(違) 地味だけど無難そう gtk ... ver毎にハマる事多いし日本語不安, でも今はgladeの読み込みできるんだっけ? vr ... JPEG張れる部品があればいい? WIDESTUDIO ... すごく、さけたい、です。 FXなんとかとか他にもGUIものあった気がするけど、メンテされてないっぽい?
一番おすすめなのは、Ruby以外です
>>508 > gtk ... ver毎にハマる事多いし日本語不安, でも今はgladeの読み込みできるんだっけ?
自分は最近使い始めたばかりだけど、今の(といってもけっこう古いけど)
Ruby-GNOME2のパッケージにはGlade入ってるし普通に連携できるよ。
One Click Ruby Installerとruby-gnome2-0.16.0-1-i386-mswin32使ってる。
>gtkだと日本語表示もろもろ何かとハマりそうなので避けたいと思ってるのですが、 >いまどきは支障ないものでしょうか? UTF-8でまとめれば大丈夫 って言い切れないのかRubyは
gui上の表示はutf-8で大丈夫だと思う。それ以外の部分でうまくいかないときは shift-jisと相互変換すればなんとかなるでしょw
Ruby/Qtって今どうなの?
>>508 個人的にwxRuby2をプッシュ
あとFxRubyはそこそこメンテされてた気がするがruby-fltkと間違ってない?
susieプラグインとか使えば何だっていけるじゃん
517 :
508 :2008/11/05(水) 19:20:30
てっとりばやくバイナリの準備されてたruby-gnome2入れてみました。 gtk1.xの頃に使って以来、冷めた目でみてましたが確かによくなってました。 日本語もまったく問題なかったです。ドキュメント以外w Uconv使って内部やファイルとのやりとりは問題ないことは確認できました。 あとはComboBoxEntryの使い方を調べようとしたら書いてないだとか Imageがスケーリング出来ないとか、ちょいちょいハマってはいますが gtk自体のマニュアルよんでけばなんとかなるかな?っと gladeの部品をどう読み込むのが筋なのかイマイチわかってないので テキトーにget_widget(だったか?)しちゃってます
518 :
デフォルトの名無しさん :2008/11/05(水) 21:25:34
520 :
デフォルトの名無しさん :2008/11/06(木) 06:35:40
むぅ。そんな罠が...
vrwinとかのCombobox的に使うのかとおもってたんですが
テキストの固まりみたいな扱いなんですね...
>>515 wxruby2とFXRubyもなかなかなGUIビルダがあるので、そちらも
試してみたいとおもいます。
wxの方が何かと楽だが
FXRubyは日本語入力に難有りじゃなかったっけ? この欠点がなければ日本でももっと使われただろうに
wxRuby/FXRuby/VisualRubyいろいろ触ったけど wxPythonが一番楽だった
>>523 >wxPythonが一番楽だった
wxRubyの間違い?
ワロシ
neta でしょw
527 :
デフォルトの名無しさん :2008/12/20(土) 22:01:53
tk/gtkは強力なのは解るけど、packの概念がめんどっちいな。 ちょっとしたスクリプトのフロントエンド作る程度ならvbicが比較的らくだった。 wxはrubyでのドキュメントとか実例がすくなさそう
ワンクリRubyとqtruby4(gem)をインストールして、ネットにあったHello,worldスクリプトを 実行してみたら、エラーで動かないので悩んでいたが、どうやらmingwm10.dllを手作業で 入れなければいけなかったらしい。アホか。
531 :
デフォルトの名無しさん :2008/12/23(火) 14:30:35
ほとんどのRuby関連の開発者のPCにはデフォで入ってて 配布する前にテストしても問題が顕在化しないんだろな もっと裾野の広い配布テストしないといけない
LL+GUIみたいな簡易GUIは、楽なはずなのにやる気でないよな TclTkなんかサンプル見ておなかいっぱいになってたし 自分のためのGUIなんてほとんど必要ないって事か
>>532 そりゃ自分で使うためのプログラムなら、9割の目的はCUIで達成できるし、その方が断然楽だ
他人に使わせるためにこそGUIが必要なわけで
>>533 CUIでも、他人に使わせるために、-hの表示を充実させれば良いだけのことだろ?
CUIでも、GUIでも、他人に使わせることに工夫しているソフトとそうでないソフトがあるだけ。
GUIにしているだけで、他人が使いやすいと思うな。
経験あるだろ? なんだこれ?っていうGUI付きのソフト。
ない? 幸せな奴だなw
CUIとGUIじゃ、ユーザー数が違いすぎるだろ… それに-hなんてお約束知ってるのは慣れてる人だけ。 つーかコマンドプロンプトの存在自体知らない人も多いってのに…
だからといってGUIだけどクソ、というものがあることに変わりはない。
勝手に論点ずらして何言ってんだ?
>>533 > 他人に使わせるためにこそGUIが必要なわけで
↑そもそもこれが論点ずれ過ぎなんだがw
へぇ?そうなの!?w って感じ
馬鹿丸出しじゃん
539 :
デフォルトの名無しさん :2008/12/30(火) 17:58:20
>>532 本当に「楽なはず」なのかなあ?
ツールキットとの狭間で無駄な苦労を背負い込むことのほうが多い希ガス。
Delphiと組み合わせたApolloは便利だったけど、過去形で語らなきゃだし
ただの外部ライブラリだったら使い回しもよかったんだろうけど...
Apolloは機会があれば復活させたいなあ。 なかなか余裕がなくてできないけど。 Delphi2009になればUNICODEも対応できるし・・・。
>>539 外部ライブラリにはできない要因とかあるのかな
542 :
デフォルトの名無しさん :2008/12/31(水) 07:18:12
>経験あるだろ? なんだこれ?っていうGUI付きのソフト。 あります
543 :
デフォルトの名無しさん :2008/12/31(水) 10:02:36
>>541 DelphiからRubyを呼び出す機構のため?
>>534 WindowsのGUI自体が糞だと思ってたけど
最近GNOMEのGUIも糞だと思えてきた
悪いところまで真似せんでええのにね
545 :
【大凶】 :2009/01/01(木) 00:17:48
あけおめ
あけおめー
547 :
【吉】 :2009/01/01(木) 00:54:34
akeome
結局、今から始めるなら何がいいの? 想定GUI使用者は、事務のお姉さんレベル。
wxRuby
Qtでいいじゃん。新しめの日本語の本もあるし。Ruby用じゃないけど。
551 :
デフォルトの名無しさん :2009/01/01(木) 22:52:17
>>548 使用する人は、安定して日本語がちゃんと表示されて
ちゃんとうごきゃなんでもいいんでないの?
それよりもメンテする人がハマらないほうがいいんじゃ…<今から始めるくらいなら
ApolloをVistaで使えてる人いる?zip版インストールだからいけないのかなあ。 form = Form.new(form1) とかやるとRubyインタプリタが強制終了する。
msi同梱のバージョンだったら落ちなかった。Rubyのバージョンが違ったのが原因らしい。 同梱:1.8.4 落ちる:1.8.7 すまん、投稿する前に確認するべきだった。
>>554 256倍本曰く、CではDLLエントリにグローバル変数を使えるが、Delphiではだめ。
なのでいちいち関数でラップしてやる必要がある(=Rubyインタプリタ本体に手を入れる必要がある)。
556 :
デフォルトの名無しさん :2009/01/12(月) 18:26:18
画像を表示して複数箇所、範囲選択するようなアプリを書きたいんだけど どのフレームワークを使うのがてっとりばやくて、確実かな? ちょっと見た感じvrはbmpしか表示できないみたいだし、Apolloは1.9では動かない?みたいだから 上でオヌヌメされてたwxを使ってみようかと思うんだけど、画像の上にワイヤーみたいな 部品を描画するのがそもそもわからないので、解る方おしえてください。 ドラッグ開始をイベントで感知してうんぬんすればいいのかな?
vrってvisualurubyのこと? Apolloやwxが出るって事はローカルで動くGUIツールだと仮定すると… マジレスするとFlashが一番早い。 別に内部でbmp使うなら別にRmagickでも使って変換すればいいわけだ からどーにでもなると思うがね。 元々txtイジりに特化してるRubyで画像をリアルタイムでGUI付き処理を しようとする理由が分からん。 (書き方からするとその辺の知識もないようなので余計にFlashがいいと思う)
558 :
556(宇宙探偵じゃないが) :2009/01/12(月) 21:59:07
Flash持ってないからw 買うほどの強い要求があるわけじゃないので、単なるチャレンジです。 rubyとGUIを組み合わせてやるのが過った方向性というのは認めます。 bmpに変換すればVisualuRubyでやれるのは解りますが、 たとえばjpegとかtiffを600x400の枠にfitしてスケーリング表示するところ くらいはフレームワークで処理してくれてもいいんじゃないかな、と。 スクリプト言語がtxtいぢりに特化してるといっても、結局はテキストなんて 可読しやすいバイト集合ですよね。 そういう意味ではAjaxで写真のトリミングツール作ってる方がいるらしいです。
>>556 ●GUI構築
・ウインドウ(A)生成
・Aに画像を表示できる部品(B)を載せる # ウインドウに直接描画出来る場合もある
・Bに画像を表示する
●イベントハンドラ登録
・マウスボタン押されたよイベントハンドラ→ボタンを押した位置(x1,y1)を取得して記憶
・マウスポタン離されたよイベントハンドラ→ボタンを離した位置(x2,y2)を取得して
x1,y1,x2,y2の矩形をほげほげ
処理メソッドは使用するライブラリに依存するからマニュアルで調べれ
>>558 のは例えば
require 'RMagick'
img = Magick::ImageList.new('test.jpg').resize(600,400)
で600x400の画像が出来るから、600x400の窓にこれを表示すればいい
そのぐらいなら純正のflashなくてもparaflaやsuzukaでできそうだけどもねぇ。 (jpegをswfと同じフォルダ内にいれる必要はあるけど) 他人に配るとか使わせるならwebアプリにしちゃってAjaxでもいいんじゃないかね。
なんでそんなにFlash使わせたいんだ
FlashじゃなくてActionScript(Flexでもいいけど)って言えばよかったのに。
563 :
デフォルトの名無しさん :2009/01/13(火) 00:38:01
もう5年以上も前に書いたHTAアプリがActiveScriptRubyの あるバージョンから動作しなくなってるのに今更ながら気づきました ActiveRuby.1.8.5.6以降から動作してないみたいなのですが この動作が仕様かどうか分かる方いますか また、回避手段があれば教えてください 以下切り出した最小の再現スクリプトです(実際のアプリにはrubyのコードもあります) error.hta (Stack overflowのエラーになる) ------------- <html><head><hta:application> <script language="RubyScript"></script> <script language="JavaScript"> window.close(); </script> </head><body></body></html> ------------- window オブジェクトが正常に参照できてないようです なお、RubyScriptとJavaScriptのタグの順番を入れ替えると 何故かエラーにはなりません 目的は昔のアプリを最小の手間で動作させたいところに あるので、全面作り変えは最後の手段として考えています
564 :
563 :2009/01/13(火) 00:49:09
念のため補足 要はRubyScript のタグがあるだけで JavaScript 側からの window オブジェクトの 参照に影響があるってはなしで JavaScript の window.close() についての 質問ではありません RubyScript がなければ問題なく動作するものです
まあ画像処理なら、FlashやFlexが早いわな 基本的なGUIアプリならRubyで十分出来るけど 画像関連で複雑なことをやろうとすると、途端に面倒になる
基本的にバイト列加工なんてスクリプト言語に向いてないからねえ。 誰も入ってない未踏の地に逝くなら、自分で切り開けるスキルが無いと難しい。 面倒なので、画像処理ライブラリ作ったという紙報告を期待したい。 rubyでgimp作る並に面倒そうだがwww
rmagick,gd,imlib,cairo,etc...画像処理ライブラリなんぞ既にいくらでもある まともな画像処理がしたいならflashよりもよっぽどrubyの方が向いてる つかなんでflashってあんなクソみたいに重いのよ あれならjavaappletの方がよっぽど軽いだろ
569 :
デフォルトの名無しさん :2009/01/13(火) 21:06:59
>>559 その流れはなんとなくレベルでわかるんですが、
問題は画像を表示した部品の上に、範囲選択の矩形を描画する方法なんです。
単に位置を取得するだけなら、その方法でいけそうなんですが
複数箇所をマークして、かつそれぞれの矩形を再移動・リサイズしたいかな、と。
なんか話が明後日の方向にいってますが、別に画像処理ライブラリを書く訳でなく
たんに画像の位置と情報を得るためのフロントエンドを書きたいだけ。
自分で、windowsの定数をまとめたライブラリと、構造体を簡単にいじれるライブラリを作ってからは、 普通のwindowsプログラミングができるvrubyが一番楽だ 山のようにあるwindowsプログラミングのサイトを参考に出来るし。 今年こそはライブラリを手直しして人様に公開できるようにしよう、と思って数年たちます
だからvrubyで、画像の位置と情報を得るための神フロントエンドを書けばいいじゃないの。 画像ライブラリは、rmagick,gd,imlib,cairoと既にいっぱいあるそうだから大丈夫だろ。 フラッシュよりはエイジャックスで書きたい気分。必要に迫られてないので書かないけどwww Picasaとか参考に成るんじゃね?
なぜそうvrubyに拘る
575 :
569 :2009/01/14(水) 21:45:45
>>573 目から売り子(♀)。そっか、FormDesignerはpure rubyだっけ。
調べてみます。dクス
>>570 vbicよりすごいのん?
なぜそうvrubyに拘る
577 :
575 :2009/01/15(木) 21:10:22
ちょろっと見たところ、FormDesigner自体はpure rubyなのですが
肝心な部分はWin32api経由でGDI呼んでるようでした。
やりたかったことは、ひょっとして結構めんどい処理なの?
矩形再編集は諦めて位置を得るだけにしとけってことかな...
>>578 ナーゼ・ソゥ・コダワール(1912-1974 仏) AA略
その辺の面倒くささは言語関係ないだろw とはいっても、 主にグラフィックの描画につまっているなら .NET(C#, VB.net) でも使ったほうがいい。 そじゃなくて、アルゴリズムにつまっているなら言語関係ないw
すいません。 行き詰ったことがあったので質問させて下さい。(改行が多い win32oleをつかってADO経由でsqlserverのテーブルに 対して読み書きを行おうと思っています。 connectionオブジェクトのゲットは出来ました。 recordsetオブジェクトのゲットも出来ました。 recordsetの各feilds("項目名").valueに値をセットして updateメソッドで反映出来るのも確認できました。 「よし、出来た」 そう思ったのもつかの間。 「テストテーブルだけど初期値(null)に戻しておくか」 そう思った時に壁につぶかりました。 rsTest.feilds("項目名").value = nil こうすると例外が出てしまいます。 当然値のセットも出来てません。 初期値(null)が入っている時は p rsTest.feilds("項目名").value 結果:nil になったのですが…。 DBのnull≠nilで初期値がp関数でnil表示されるのは 型が返還された結果だというのはおぼろげながら 想像はつくのですが、ではADOのFeildオブジェクトに nullをセットするにはどうしたらいいのでしょうか? レコードセットでの操作を諦めてSQL文で操作した 方がいいのでしょうか?
582 :
581 :2009/01/16(金) 20:32:34
初心者スレがあったのに、気付かなかったのでこちらに 書いてしまいましたが、あちらの方で改めてカキコ 致しました。 以降、あちらでご教授して頂く(方法があればですが) つもりです。 お目汚し申し訳ないです。
ほしゅ
なんなのrubyって。 ruby使うのにCコンパイラ入れなきゃいけないの?????????? rubyだけでプログラミングできないのかよ!!!!!!
ソースからインストールしようとしてるんなら
>>1 それともbinary gemでも?
おおかた sqlite3-ruby ver1.2.4 ではまってるとか、そんなんだろ。
みんなWindowsでもRuby-GNOME2って使ってる? Shoesはお遊びで使う分にはいいかもしれんが…
HotKeyを使ってコーディング中にブラウザを更新するものを作りたく調べたら vrubyにそれっぽいのあったんだけどwikiやググってみてもリファレンスがないorz どうやって使うのか分かる方いますか? 教えて君申し訳ないorz
>HotKeyを使ってコーディング中にブラウザを更新する 意味が分からない
意味わかるぜ
phpとかcssとかhtmlをエディタなんかで編集中に
フォーカス移動せずに横に立ち上げたブラウザを更新するんだろ。
動作確認が楽なんだよね。
俺は普段からやってるよ
xyzzyでも内臓ブラウザの更新と保存のショートカットの連動ができる
EclipseでもEclipse版greasemonkey+保存時にFirefoxを更新するスクリプトがある。
これがないとやっとれんよ正直。
>>588 のやりたいことは、多分AutoHotKeyなら楽にできると思うぞ
Windowsじゃなかったらスマソ
vrubyって言ってるんだからWindowsだろたぶん。
どっちにせよRubyでやって嬉しいことではないから
>>590 のアドバイスに
従ったほうがいいと思うぞ。
#Rubyで書けるAutoHotKeyとかないかな…
592 :
590 :2009/02/13(金) 17:00:07
AutoHotKeyで作ってみたら、思いのほかうまくいった。
Eclipse + Firefox 3で動作確認した。
Ctrl+Sで保存してFirefoxリロード。
IEとかでも応用できると思う。(うまくいかなかったので、Sleipnirでやるという話もあった)
; Eclipse IDE
#IfWinActive, Eclipse ahk_class SWT_Window0
; Ctrl+S to
^s::
Send, ^s
# originaled by mala
#
http://la.ma.la/blog/diary_200608281736.htm WinGet, FF,, Mozilla Firefox
ControlSend,, {F5}, ahk_id %FF%
return
#IfWinActive
参考:
最速インターフェース研究会 :: AutoHotkeyを使ってFirefoxをリロードするだけのexeファイルを作ってみた
http://la.ma.la/blog/diary_200608281736.htm Eclipse Monkey自動リロード + Firefox が遅すぎてイライラしていたのでちょうどよかったわ
593 :
590 :2009/02/13(金) 17:01:44
コピペミス訂正
; Eclipse IDE
#IfWinActive, Eclipse ahk_class SWT_Window0
; Ctrl+S to
^s::
Send, ^s
; originaled by mala
;
http://la.ma.la/blog/diary_200608281736.htm WinGet, FF,, Mozilla Firefox
ControlSend,, {F5}, ahk_id %FF%
return
#IfWinActive
595 :
563 :2009/02/15(日) 22:07:02
>>594 どうもありがとう
今見にいったら、blogの方にも書いてありましたね
一時期は毎日チェックしてたのですが
最近はたまにしか見てなかったので助かりました
これから動作確認してみます
596 :
563 :2009/02/16(月) 00:30:39
ううむ、一部の問題は解決されるけど、全般的にはまだ問題がありそう もしまだ見てたら、余裕のあるときでいいので調査お願いできないでしょうか>作者の方 以下のコードでActiveScriptRubyがない状態だと、JS/VBSの相互呼び出しが問題なくできます ActiveScriptRubyを入れたら、3者間で相互呼び出しして欲しいんだけど、逆にJS/VBSまで動作しなくなるようです <html><head><hta:application> <script language="RubyScript"> def alertRuby(text); alert(text); end def alertRuby2JS(text); alertJS(text); end def alertRuby2VBS(text); alertVBS(text); end </script><script language="JavaScript"> function alertJS(text) {alert(text)} function alertJS2VBS(text) {alertVBS(text)} function alertJS2Ruby(text){alertRuby(text)} </script><script language="VBScript"> Sub alertVBS(text): alert(text): End Sub Sub alertVBS2JS(text): alertJS(text): End Sub Sub alertVBS2Ruby(text): alertRuby(text): End Sub </script></head><body> <a onClick="alertJS('JS')">JS</a><br> <a onClick="alertVBS('VBS')">VBS</a><br> <a onClick="alertJS2VBS('JS2VBS')">JS2VBS</a><br> <a onClick="alertVBS2JS('VBS2JS')">VBS2JS</a><br><br> <a onClick="alertRuby('Ruby')">Ruby</a><br> <a onClick="alertJS2Ruby('JS2Ruby')">JS2Ruby</a><br> <a onClick="alertRuby2JS('Ruby2JS')">Ruby2JS</a><br> <a onClick="alertVBS2Ruby('VBS2Ruby')">VBS2Ruby</a><br> <a onClick="alertRuby2VBS('Ruby2VBS')">Ruby2VBS</a><br> </body></html>
>563 今度はどうかな
>>597 完璧です
テストプログラムも元々のアプリも問題なく動作することを確認しました
どうもありがとうございました
ちょっとエロイひと教えてください。 開発環境のIDEとしてRDE(1.1.1)のsetup.exeをダウンロードしたんですが、ウイルスバスター2009でウイルスとして隔離されるのですが、同じ現象の人いますか?
>>599 同じく。トレンドマイクロに連絡して対応してもらったほうがいいんじゃないかな。
別の話だけど、最近one click ruby installerでインストールされるスクリプトも
ウイルス扱いされるようになった(これ以外のパッケージでもインストールされる
ファイルだと思う)。これも連絡して対応をお願いしているが、まだ修正はできて
ない模様。
スクリプトを one click でインストール出来るような危険なソフトということで
以前、rubyscript2exeかexerbあたりで作られたRuby製のウィルスがあったらしい 多分その影響じゃないかな
603 :
599 :2009/02/24(火) 21:39:59
>>600-602 とりあえず、RDEとOne Click Installerの件は、トレンドマイクロに連絡してみた。
しばらく待つか・・・・
対応してくれるか分からんけど
Appcelerator Titanium? makes building desktop rich applications easy
http://titaniumapp.com/ Ruby版AIRみたいなの。
WindowsとMac対応。
でもまだ微妙。Windows版もmac版よか尾錠
ironRuby正式版まだー?
正式版じゃなくても今でも使えはするけど 何が足りない感じ?
607 :
600 :2009/02/28(土) 12:22:19
>>603 One Click Installerには反応しなくなったYO!
トレマイから報告がきたらお礼を返信するとするか。
それは乙だ
609 :
599 :2009/03/02(月) 12:56:18
>>607 トレンドマイクロから返信が来た。対応してくれた様だ。
>トレンドマイクロ・ウイルスバスタークラブセンターです。
>弊社製品をご愛用いただき、誠にありがとうございます。
>
>このたびの件ではご不便をおかけいたしまして、誠に申し訳ございません。
>
>お送りいただいたファイルを解析した結果は誤警告と確認いたしました。
>
>現在、ウイルスパターンファイル[5.867.50]にて修正が施されております。
>
>大変失礼いたしました。
>
>今後、お一人でも多くのお客さまが、快適にお使いいただけるよう
>品質向上を徹底し、ご満足いただけるような製品開発を目指していく
>所存でございます。
>
>なにとぞご容赦のほど、お願い申し上げます。
>
>お手数をかけいたしますが、ウイルスバスターをアップデートし、
>全ドライブ検索を実行いただき、ウイルス処理が発見されるかどうか
>お試しいただきますようお願いいたします。
612 :
デフォルトの名無しさん :2009/03/30(月) 23:12:00
123
こやつめw
ういやつよのうw
615 :
デフォルトの名無しさん :2009/06/08(月) 21:57:47
干す
>>616 これは良記事。
DXRubyのスターターキットとかいいですな
>>616 こういうソフトっていくつもあるけど何が違うの?
>>618 その記事そのものが比較記事になってると思うのだが。
見た?
Ironrubyマダァ?(・∀・ )っ/凵⌒☆チンチン
まだというかもうリリースはしてるけど何を待ってるの? ドキュメントがほぼ無いのは確かにつらいけど
1.8.7(p174)
Ruby/Gtkを自分でVCでビルドってできる? かなりイバラな道っぽいんだけど…
>>624 mingwでビルドした方が幸せになれると思います
そういやqtrubyの最新をmingwでビルドしようとしたけど挫折したな Windowsでのビルドガイドでもあると嬉しいんだけど
Ruby-GNOME2のWin用バイナリの新バージョン公開の動きは一応あるみたいだけどな。 どっかの英語のフォーラムでちょこっとだけ話が出てたキガス
IronRubyがまともに動けばGUI問題は解決しそうだがなあ…。 IronPythonほどではないみたいだし
629 :
デフォルトの名無しさん :2009/07/03(金) 18:26:45
>>628 ちなみに、Jrubyとかは×なのですか?
630 :
デフォルトの名無しさん :2009/07/10(金) 09:40:27
×
MinGWでのビルド、俺は上手くいかなかった… 仕方無いから、ruby-gnome2-0.16.0-1-i386-mswin32.exeでインストールしたのを使ってる… 0.16で、ドラッグアンドドロップされたファイルのパスを調べるにはどうしたら良いですか? 0.19だと、drag-data-receivedシグナルで獲得出来たのですが、 Windowsのruby/gnome2 0.16では獲得できないようなのですが…
632 :
デフォルトの名無しさん :2009/07/16(木) 00:36:37
Ruby1.9.1のWindows版って、IO周りの処理が遅いらしいのだが、 1.9.2では改善されないのかな?
RubyのWindows版でGUIアプリ用フレーム枠みなさん何使ってます
>>632 1.8.7もwindows版はどうもすごく遅い。なんとかならないかな。
(基本ファイルの)requireで読まれるときにバカみたいに負荷かかってるよね
ウィルススキャナが走ってるとか狂ったようにgemsがあるとか
Railsのrake -Tとか、script/soncoleの立ち上がりに、30秒くらいかかるぜ orz Linux(Ubuntu)だと1/10くらいもかからんのに…
639 :
638 :2009/07/19(日) 10:53:50
>>637 ああ、gems削除すればいいのか・・・試してみます。
あとアンチウィルスの対象外に指定すればいいのかね?
640 :
638 :2009/07/19(日) 11:00:58
うちの速めのマシンで時間はかってみたよ。 ■rake $ time rake -T : real 0m25.858s user 0m0.031s sys 0m0.015s (2回目) real 0m7.094s user 0m0.015s sys 0m0.061s ■script/runner (rakeやった後) $ time script/runner "puts 'hello'" hello real 0m15.673s user 0m0.030s sys 0m0.031s (2回目) $ time script/runner "puts 'hello'" hello real 0m12.170s user 0m0.000s sys 0m0.031s おせええええ CPU Quad Core Q6600, Memory 2GB, Ruby1.8.7, Rails 2.3.2.1, Windows Vista SP2(32bit)
641 :
638 :2009/07/26(日) 09:16:52
rake cleanup $ time rake -T real 0m13.801s user 0m0.015s sys 0m0.000s $ time rake -T real 0m5.850s user 0m0.000s sys 0m0.000s $ time script/run hello real 0m16.309s user 0m0.015s sys 0m0.015s $ time script/run hello real 0m12.124s user 0m0.000s sys 0m0.030s rake cleanupかけたら、rakeだけ少し早くなったわ
multi
requireするファイルをとにかく少なくするのが重要 可能ならでっかい1枚ファイルにすればきっと速い
gemはインストールしてあるだけで時間を食う
645 :
638 :2009/07/28(火) 10:34:40
646 :
デフォルトの名無しさん :2009/08/24(月) 06:27:28
jarp.does.notwork.orgの名前解決ができないんだけど
647 :
デフォルトの名無しさん :2009/08/25(火) 00:49:15
誰も反応してくれないのね
質問です。 8時間悩んだバグが単なる変数の再初期化のし忘れでした。 このやりきれない気持ちをどうすればよいですか。
過疎スレに突然ひとりごとじみたこと書かれても...
C&Pにレス書かれても...
651 :
デフォルトの名無しさん :2009/08/25(火) 11:45:27
よくあることだ
>sharedなsshセッションが残っているため日記は更新できるが、誰も見ることができないjarpなのであった
One Click Installerと迷ったが結局こっちにした 違いがよく分からんが
リファレンスが日本語ってのはいいな
One Click Installerってアップデートできんじゃんかw
そうなの?一旦アンインストールするしか
原因がさっぱり見えないしどこに投げるべきかも迷ったからここに書き散らかし
ASR1.8.7(p174)とOne Click Ruby Installer 186-26でvruby使いながら
URLを標準のブラウザ(Fx3.5.2)で開こうとすると1分ぐらい固まった
ruby -rvr/vruby -e'VRLocalScreen.newform.create; system "start
http://example.com "'
ruby -rvr/vruby -e'VRLocalScreen.newform.create; system "RunDLL32.EXE url.dll,FileProtocolHandler
http://example.com "'
標準のブラウザをChrome2.0.172.43にしたらURLはすぐ開くようになったものの
フォルダのオープンも(当然ブラウザと関係なく)同じように固まる
ruby -rvr/vruby -e'VRLocalScreen.newform.create; system "start c:\\"'
ruby -rvr/vruby -e'VRLocalScreen.newform.create; system "RunDLL32.EXE url.dll,FileProtocolHandler"'
XP環境二つで確認したから環境依存ではないはず
vrubyを使わなければ問題ないし、使っていてもsystem関数やstart, rundll32.exeの呼び出し自体は遅くない
Fxでもfirefox.exeを直接叩けば大丈夫だったから、とりあえずの回避方法
cmd = Win32::Registry::HKEY_CLASSES_ROOT.open('http\shell\open\command') {|reg| reg[nil] }
cmd.sub!('%1', url)
system cmd
なぜここに書いた
既視感がある。DDEのせいじゃないか? messageloop呼ばないとウインドウがハングしたも同然だから、 メッセージのブロードキャストを使うDDEが止まるぞ。 FirefoxがDDE使うかどうかは知らんけどな。
unicode化が楽しみだ
>>659 どこに投げればいいか迷ったから
お蔵入りさせるよりは誰かに見てもらった方がよいし、どこに投げればいいよって言ってもらえれば十分だった
パッチじゃないからライセンス云々の問題にはならないはず
心証的には・・・どうなんだろうね
>>660 ありがとう、やっぱ見てもらうもんだ
再現コードを作るときのミスで、
>>658 は指摘の通りこれで解決した
ruby -rvr/vruby -e'Thread.new{sleep 5; system "start c:\\"}; VRLocalScreen.start(VRForm)'
ruby -rvr/vruby -e'Thread.new{sleep 5; system "RunDLL32.EXE url.dll,FileProtocolHandler
http://example.com "}; VRLocalScreen.start(VRForm)'
ただきっかけはタスクトレイのメニューからsystemでrundll32.exeを呼んだときだから、messageloopもしてるんだ
とりあえず探った部分が外していたとわかったから一から探り直してみるよ
Rails遅いのかーバージョン下げるかなー
何年も前から言われてることに反応して欲しいのかな
何年も前じゃないだろ
ごめん。勘違いしてたわ
>>666-667 >>665 がその前もコピペしないからわからないが、どうやら、p160にうpだてすると、
Railsのviewの処理が100倍遅くなるらしい。今年に入ってからの話。
それってmingw32版でも同じ?
遅くなっている原因から考えると、当然同じだろう。
最新版で直ってないか? $ svn log -r{2009-09-18}:HEAD win32/win32.c ------------------------------------------------------------------------ r24994 | usa | 2009-09-18 14:32:13 +0900 (Fri, 18 Sep 2009) | 4 lines * win32/win32.c (rb_w32_select): on 1.8, we don't need to poll sockets, because our select is never called from multiple threads. ------------------------------------------------------------------------ r24996 | usa | 2009-09-18 14:44:49 +0900 (Fri, 18 Sep 2009) | 3 lines * win32/win32.c (rb_w32_select): wait specified time on select. ------------------------------------------------------------------------
ファイルを開いている状態なら、 WIN32OLE.connect('D:\Book1.xls') みたいに選択できるよ
678 :
675 :2009/10/15(木) 23:14:01
>>677 タスクなどで各Excelが開いてるファイルを調べてそれを足がかりに
各Excelにconnectするわけですか。
試してみます。
679 :
デフォルトの名無しさん :2009/11/17(火) 21:37:43
64bit版Windows7では、Windows-On-Windows 64(WOW64)という機能 で、64ビット版のWindows OS上で32ビット版向けのソフトウエアを動作 できるようにしているらしいんだけど、Rubyの32bit版や拡張ライブラリ も動作するんですかね?
>>679 普通に動く。
>>680 バイナリつーかDLLね。
EXEを普通にプロセス起動する分には問題ない。
682 :
679 :2009/11/18(水) 23:24:38
それはよかった。新しくPC買うときは64bitにしよう
Rubyと関係ないけど、x64版Windowsのまとめ。 * ドライバは32bit版は使えない。64bit版が必要。 さらに、Vista以降は64bit版に限って署名のないドライバは禁止 * 16bitアプリケーションは動作しない * 32bitアプリケーションからの64bitアプリケーションの起動、および、 64bitアプリケーションからの32bitアプリケーションの起動は可能 * 32bitアプリケーションからの64bit DLL呼び出し、および、64bit アプリケーションからの32bit DLL呼び出しはできない * 普通の32bitアプリケーションからは、システムフォルダの一部や レジストリの一部が見えなくなっている
WindowsでCairoライブラリ利用しようとしてるんですけど、 エラーが起きてしまって難儀してます。 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32] と 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] の両方で利用したいと思っています。 1.8.7だと オフィシャルからダウンロードしてきた cairo-1.8.1-x86-mswin32.gem をgem installしようとすると No definition for rb_cairo_satisfied_version と言われてしまい 1.9.1ではgemは成功するのですが、 実行すると [省略]/lib/ruby/gems/1.9.1/gems/cairo-1.8.1-x86-mswin32/src/c airo.so: [BUG] Segmentation fault ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] とスクリプト実行時に落ちてしまいます。
686 :
685 :2009/12/20(日) 16:13:19
>>685 No definitionなんちゃらはドキュメントがないよって言ってるだけだから問題ないよ
無視してhinomaru.rbが動かせるはず
ただし一般的に1.8でgemライブラリ使うにはRUBYOPTかrequireが必要なので、そこはぐぐってどうにかして
あとそのgemは多分1.8用のバイナリだから1.9では動かない
後々1.9が必要になったときは1.9バイナリの配布を待つか自分でコンパイルするかの二択
ってここまで書いて気づいたけど一ヶ月近くレスついてなかったのかよ、もう解決してるかな
1.8.7(p249)
rubyってruby.exeのパス求める方法ないのか? perlならperl -e "print $^X"だな まじ、which使えとか#!の行取り出せとかしかないわけ?
require 'rbconfig' File.join(RbConfig::CONFIG["bindir"], RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"]) うちでは "C:/Program Files/ruby-1.8/bin/ruby.exe" が返る
うちでは perl -e 'print $^X' で perl が返ってくるんだがそれでいいの? /usr/bin/perl とかが返ってきて欲しいんだよね?
$^X <snip> Depending on the host operating system, the value of $^X may be a relative or absolute pathname of the perl program file と書いてからスレがWindows用だったことに気付いた。ごめんなさい。
>>692 それでいいなら ENV["_"] でいい
$ ruby -e "p ENV['_']"
"/usr/local/bin/ruby"
シェル依存だからWindowsでは無論動作しない
dlかWin32APIでGetModuleFileNameでも呼び出せば
いやだからRbConfigに全部書いてあるって
ruby.exeを別のファイルにコピーしたらアウトじゃね?
そうだよ インストール時の情報を読んでるに過ぎない で、そこまで追随する必要はある? ありそうな気もするが、そもそもそういう環境ではRubyライブラリ動かないと思うぞ
699 :
689 :2010/02/20(土) 06:14:59
RbConfigってのは > perl -e "require Config; print $Config::Config{'perlpath'}" と一緒なわけだよな $^Xとかpythonのsys.executableみたいなのは ない、でいいわけね まあ他環境でも同じようにパス取れてると思ってると危険なんで 設定ファイル見た方がいいのかもな
>>697 Ruby入ってない環境に、ruby.exeとmsvcrt-rubyXX.dllだけコピーしたら一応Rubyとしては動くぞ
組み込みライブラリしか使えないけどな
exerb
…つか、よくよく考えたらインストーラー付きじゃないRubyもあるんだよな 単にzipにまとめただけのやつが移動して動かなかったらおかしいや
実行中なら自身のプロセス情報読み取ればパス取得できるんじゃなかろか
そうじゃない OS があるけど ここは Windows スレだから yes
今って、mingw32とVC6でビルドされたmswin32との差異って何になるんだろう? ・使用コンパイラがmingw32はgcc、mswin32はVC6 ・前項に関連してRubyソースにgcc特有の最適化が入っているため性能が違う(mingwの方が速い) ・RUBY_PLATFORMの値が違う ぐらい? 昔だと ・Ruby本体のDLL(今でいうmsvcrt-rubyXX.dll)が別名で拡張ライブラリのバイナリ共用不可(現在は可能) ・archdirが別 とかあったみたいだけど1.7の頃に統一されたみたいだし。 ruby-win32メーリングリストあたりに情報がありそうな気がするものの、 アーカイブが公開されてないみたいでどうしたもんかな。
>>705 ビルドされたrubyそのものの違いはあまり聞かないな
最大の違いは、開発環境を揃えるのが容易かどうか
というかVC6ってまだ手に入るの?
>>706 >というかVC6ってまだ手に入るの?
正式な形では無理と思われる。
msvcrt.dllへのリンクって観点だとWDKやDDKあたりからCRT.libを持ってくると
今時のVCでもmsvcrt.dll使わせることが可能ではあるみたい。
あと、Windows Server 2003 SP1 DDK は無料でダウンロードできて、
コンパイラもついてくる、と。
ttp://d.hatena.ne.jp/j_m/20080301/1204394341 性能と、拡張ライブラリ作るときの敷居の低さから
mswin32からmingw32への移行を考えてるんだけど、
特に差異もない感じなんだろうか。
Ruby自体のDLLやらシンボルやらも同じならASRとかも
インストールすれば動くんだろうしなあ。
IronRuby、結構イケルぞ!
IronRuby、MRI 1.8.7対応してほしいのう。
713 :
デフォルトの名無しさん :2010/04/27(火) 23:25:11
age
>>709 excpt.hが見つからなくてwindows.hをincludeできない。
なにか見落としてますか?
VC++が無い
>>714 DDKに入っている。
環境変数INCLUDEに(PSDK)\Includeと(DDK)\inc\crtが必要。
LIBには(PSDK)\Libと(DDK)\lib\crt\i386が必要。
>>716 なるほど!
DDKの代わりに eMbeded Visual C++ 4.0 SP4 を入れて、
そちらの方を全く見てませんでした。
早速入れてみます。
>>715 多分同じ指摘をしてくれてたんだろうけど、意図を汲み取れずにいたんだ。
すまない。
蓮舫「そのブレーキバーは走ってるときにも使いますか?」 運転士「いえ、止まるときにしか使いません」 蓮舫「運行全体におけるブレーキの使用時間は短いと思いますけどどうですか?」 運転士「時間的には短いですが、大変重要な役割が・・・」 蓮舫「長いか短いかだけおっしゃってください」 運転士「・・・短いです」 枝野「今回、ブレーキバーについては根本からの折損という結果にしたいと思います」
Windowsで実用的なRails環境作るの難しすぎ nmakeとかデフォルトで入ってないんだけど。 twitterのgemとかどうやって入れたらいいんだよ?
Windowsを使わない。
>>720 同感
>>719 UNIX(Linux, BSD, OSX,..etc)を使え。
開発が目的なら、仮想マシン(VirtualPCやVirtualBox)上にLinuxを入れるのが一番楽だ。
クライアントプラットフォームの大半がWindowsであるという現実があるから、
Windows上のRubyでGUIを使いたいという意図は分かる。
でもRailsみたいなWebサービス用途なら、迷わずUNIXを使え。
ちなみにそういう用途でのおすすめのディストリは?
どうせ/usr/localに入れるからRubyに関してはなんでもいい。
725 :
719 :2010/05/22(土) 17:26:02
ああ、レスくれた人すまん 俺はLinux(最近はMacに移行)で、それはそれはもう快適に開発してんだが、 職場のデザイナたちは、みんな素のHTML書いて渡してくるだけのWindows使いで、 Rails入れなきゃスムーズに共同作業できねーだろって 俺がRails環境をWindowsに入れてやろうとしたら思いの外大変だったという愚痴だ。>719は。
726 :
719 :2010/05/22(土) 17:36:28
で、仮想マシンとか、cygwinかmingw使ったらいいの? なんか…職場のデザイナのPCにRailsを入れようって話に 持っていくだけでも大変だったからもういいや。 twitterのgemとかなくても起動するようにアプリを変更したし。
動作確認用社内鯖(Linux)を用意。アプリはpassengerで動かす Winscpでビューテンプレートやスタイルシートを上書きしてもらい 一通り置いたらtmp/restart.txtも置いてもらうという感じでやってます。 (概略)
728 :
721 :2010/05/22(土) 23:37:07
>>726 相手がデザイナってことはPCに詳しくないだろうから、cygwinやmingwは無茶だと思われ。
無償で使えるVirtualBoxかVirtualPCがお勧め。(有償でもOKならVMWareがBest)
・VirtualBox -- オープンソースで開発されている比較的新しいソフト。Win/Mac/Linuxプラットフォームを選ばず。
・VirtualPC -- Microsoft提供で安定度は良いが、Windowsでしか使えない。(以前はMac版もあった)
で、
>>721 が自分のPCに上記のどちらかをインストールして(VirtualBoxならPCでなくてMacでもOK)、
仮想マシンを作る(数GBの空きディスクが必要)。その仮想マシン上でLinux、Rails、それにWebアプリを
インストールして動作を確認しておく。OKなら、その仮想マシンのイメージファイルをDVD-Rに焼いておく。
後は、相手のPCに同じ仮想マシンソフトをインストールし、DVD-Rに焼いたイメージファイルをPCにコピーして、
仮想マシンへ読み込ませる。これだけで、
>>721 が構築したLinux/Rails/Webアプリの環境が、
デザイナのPC上で完全に再現できる。デザイナが複数いても、PC台数分繰り返すだけで済む。
RubyをWindowsで使う香具師って馬鹿としか思えん (Matz伝)
rubyinstaller使えば簡単なパターンだな
731 :
719 :2010/05/23(日) 16:49:22
>>727 素のHTMLを渡されるよりはましかもしれんが、
ローカルですぐに確認できない、バージョン管理が難しい、
デザイナが複数いた場合、同じファイルを上書きする可能性等、問題は多そうだ
>>728 デザイナにはDreamWeaverなどの使いなれたWindows上のツールで編集してもらって
Putty + Pageant + TortoiseSVN でコミットしてもらうようにしたんだが、
バーチャルPCの環境だとそのあたりの作業がうまく行くのかがちょっと心配なんだわ。
完全再現できる反面、Windows環境から隔離されてしまってデザイナが戸惑うんじゃないかと。
でも裏でsambaとかが作動して意識せずにバーチャルPCと行き来できるのかな??
まあいろんな方法があるってことがわかっただけでもよかった。ありがとう。
完全再現する必要がでてきたり、もし人が増えて手に終えなくなったりしたらVirtualBoxでやってみるわ
デザイナのこと考えるとやっかいなだな。 個人的なRails環境はcoLinuxとUbuntuにRails環境作って作ってるが(Portable Ubuntuが楽)、 coLinuxのcofsでNTFSのドライブをUbuntu側からマウントしてWindowsのIDEでファイル編集してる Windows側からTortoiseSVNでコミットとかマージとかしてた。 ただし、coLinuxはUbuntuは9.04までの対応だったと思うので注意。9.10以降にアップグレードすると死ぬ VirtualBoxとかの仮想マシン環境でもホストマシンのWindowsとの ファイル共有的な仕組みでWindows側から使い慣れたエディタでシームレスに編集みたいなやり方はあると思うよ。 coLinuxもイメージコピーして動かすことができるし、 というかPortableUbuntuならディレクトリごと丸ごとコピペでうごくw coLinuxは初回インスコ時に、PortableUbuntuだと動作ごとに管理者権限は必要なのがちょっと癌かな まあ制限が許せば選択肢の一つとしてはありかと。
ついでにこんなのあったのでさらしておくわ
BitNami :: RubyStack
http://bitnami.org/stack/rubystack Ruby 1.8.7とRails 2.3.5の環境一式の各環境向け(Win,Linux,Mac)のインストーラーとか、
VMWareの仮想環境用イメージもあった(openSUSE 11.1, Ubuntu 10.04)
試してないので人柱キボンw
どんどん面倒な方向へ
735 :
721 :2010/05/24(月) 01:33:49
WinXP上のVirtualBoxでLinux(Ubuntu)を試しに触ってみた。
永くDebianを触っているが、Ubuntuは今回が初体験。参考にしたのは以下のサイト。
・VirtualBoxの使い方 - 仮想化ソフトVirtualBoxのインストール、使い方、設定方法
http://virtual-soft1.nnn2.com/ 上記サイトのとおりにVirtualBoxをインストールして、Linux(Ubuntu8.04)の仮想マシンを起動。
違いはVirtualBoxの最新バージョンが3.2.0に更新されていたのでそれを試した点くらい。
仮想マシンだけど、クライアントとしての環境はほぼ完璧にそろっている。
日本語環境、ブラウザ(Firefox)、ファイルマネージャ、ターミナルがあるし、OpenOfficeも入ってる。
ネットワークもファイルマネージャでURLを入力することで、MacOSX(10.5)のFTP/SMBサーバヘ接続できた。
おそらく少しだけ努力してもらえれば、普通のWindowsユーザにも使ってもらえるだけの環境は整っていると思われ。
開発環境としては、Perl/Pythonは入っているが、肝心のRubyが無いから、自分でRubyと関連する
パッケージ(Gem, Rake, Rails,...etc)をインストールする必要がある。また、SSH/Web/FTP/SMB/AFPといった
サーバ関連も一切入っていないみたいだから、それらも自分でインストールする必要がある。
ただし、言い換えると自分の好みのサービス構成を組める訳で、決して問題や欠点という訳ではないだろう。
他に気になったのは、仮想マシンのサイズがZIP圧縮で730MB、解凍すると2.51GBと巨大な事。
仮想サーバとしてはOpennOfficeはもちろんGNOMEデスクトップ環境すら不要だから、
Ubuntuのサーバ版(ubuntu-8.04.4-server-i386.iso)を試す予定。こちらなら最小構成でX11サーバすら
インストールせずにすむから(ディスクだけでなくメモリやCPUパワーも)軽くなるはず。
現在、Virtual DAEMON(仮想CDドライブ)からブートして、インストーラが起動できるところまで確認できた。
それならcoLinuxのがいいんじゃね?サクサクだよ
737 :
721 :2010/05/24(月) 23:14:08
(昨日の続き)
Ubuntuのサーバ版(ubuntu-8.04.4-server-i386.iso)を試した結果、必要なディスク容量はかなり減った。
公式配布のDesktop版が2.51GB(圧縮:730MB)だったのに対して、Server版だと919MB(圧縮:327MB)。
ベースシステム以外の追加パッケージはOpenSSHサーバのみ。RubyやらApacheなどは含んでいない。
遭遇したトラブルは、インストール終了後の再起動中に「未サポートCPU」みたいな意味のエラーでコケル事。
これは以下のサイトなどを参考にして、サーバ向けカーネル(server)を汎用カーネル(generic)に
入れ換えることで回避できた。
COMPNET - VirtualBox 1.6でubuntu 8.04 server
・
http://compnet.jp/archives/17 >>736 coLinuxとかcygwinみたいなのは、UNIXの知識がある人が本人のPCにインストールして使う環境。
(デザイナ屋さんのような)PCに不慣れな人でも手軽に試してもらうとしたら、仮想マシンのほうが適切だと考える。
うっかり環境を壊したとしても、マスターからコピーし直すだけですむのだから。(慣れればスナップショットも活用)
一昔前では考えられないが、PCパワーの進化とオプソの展開が仮想マシンという富豪的環境を身近な物にした。
>>737 あれ?ごめんサーバー版うんぬんってあったからどうせCUIにするなら、と思って言ったんよ
GUIで使うならその通りだね
ちなみにデザイナはプログラマに比べて全然富豪的だから、イラレ、フォトショ、DWなど立ち上げながら仮想マシン使うと今時のマシンでも結構きついお
仮想マシンでもRails動かすなら最低512MBはメモリ割り当ているからな…。 スワップも割り振っとかんと、RubyGemsこけるw 今ならメモリ潤沢だから64bit OSはいいが32bitの環境使い続けていると けっこうカツカツなんだよな
1.8.7(p299)
1.8.7(p302)
742 :
デフォルトの名無しさん :2010/10/09(土) 00:18:01
質問です。 win32ole経由でexcelを操作してます rubyから実行すると、Excelが最前面に立ち上がりますが、 これを背面での立ち上げに切り替える方法はないでしょうか? #新たなWindowsが最前面に表示されると、ほかの作業が邪魔されて鬱陶しいので。 obj.Visible = 0 とすると、画面表示なしでバックグラウンド実行できるのは知っていますが、 それだと進行状況が把握できないので背面に表示させたいです。
743 :
デフォルトの名無しさん :2010/10/09(土) 13:10:59
どうしても、netbeans のjrubyに warblerのgemをインストールできない。 jruby 1.53を単独でインストールしてwarblerもインストールできたけど netbeansではrakeが一切できない。。。 どうしようもない。
Rubyのwin32oleからExcelのAutoFilterコマンドの発行の仕方を教えていただけないでしょうか? 3つ以上の引数の書き方が分かりません。 2つ以上(0,1でフィルタリング)なら、Excelのマクロで記録してみた内容が以下のようになり、 ActiveSheet.Range(”$A$1:$E$100”).AutoFilter Field:=5, Criteria1:=”=0”, _ Operator:=xlOr, Criteria2:=”=1” 下のRubyスクリプトで実行できるのですが、 range = sheet.range(sheet.cell(1,1),sheet.cell(5,100)); range.AutoFilter(5, 0, 2, 1) #← Ruby OK 3つ以上の(3,4,5でフィルタリングする)場合、Excelのマクロが以下のようになります。 ActiveSheet.Range(”$A$1:$E$100”).AutoFilter Field:=5, Criteria1:=Array( _ ”3”, ”4”, ”5”), Operator:=xlFilterValues Array( _ ”3”, ”4”, ”5”)表記の仕方が分からず、下のようにしてもエラーとなります。 data_range.AutoFilter(5, 3,4,5, 7) #← Ruby NG ~~~~~ Win32OLEで実行する場合の、エクセルマクロ中の Array( _ ”3”, ”4”, ”5”) と同じことをさせるRubyの書き方を教えてください。 よろしくお願いします。
>>745 range.AutoFilter(5, ['3', '4', '5'], 7)
でいいんじゃないの?
最初の例も
sheet.range('A1:E100').AutoFilter(5, '=0', 2, '=1')
の方が素直な気がする
747 :
745 :2010/11/19(金) 23:52:39
>>746 それでうまく行きました。とても助かりました。ありがとうございます
質問よかとですか vruby + FormDesigner で、ウインドウ?フォーム?のサイズをマウスで変更すると 中のボタンその他もフォームのサイズに追従するようなスクリプトを作りたいのですが そういうレイアウトをするための、FormDesigner の操作方法が分からず困ってます FormDesigner は、20040323版と20060501版を試してみました 前者は、レイアウトマネージャの部品がツールバー上に無いですが 後者は、レイアウトマネージャの部品がツールバー上にあるので 後者を使えばそういうこともできるのかなと思ったんですが… 相変わらず位置やサイズを決め打ちした状態でしか部品の配置・レイアウトができません vrubyのサンプルを見ると、layouttest.rb や gridtest.rb など、 フォームのサイズを変更すると中の部品のサイズも追従するソレがあっさりできているようなのですが… もしかして、FormDesigner を使わずに、エディタでシコシコとレイアウトを書いていくしかないんでしょうか? 部品が結構たくさん並ぶUIになる予定なので、できれば FormDesigner でレイアウトしたいのですが…
1.8.7(p330)
質問です。 Windows7 64bitにActiveScriptRubyをインストールしました。 ruby-openglをfreeglutを用いて使用したいのですが freeglutをインストールしたのち gem install ruby-openglとすると C:/ruby-1.8/lib/ruby/gems/1.8/gems/ruby-opengl-0.60.1/ext/glut内でのコンパイルにおいて LINK : fatal error LNK1181: 入力ファイル 'glut32.lib' を開けません。 rake aborted! Command failed with status (157): [link -nologo -incremental:no -debug -opt:r...] と、glut32.libがないため失敗してしまいます。 freeglut.libを使用するように変更するにはどうしたらよいのでしょうか? よろしくお願いします。
751 :
750 :2011/01/13(木) 09:40:52
ruby-openglのOHPから ruby-opengl-0.60.1-x86-mswin32.gemをダウンロードしてきて インストールすることで、glut32.dllをパスの通った ruby-1.8/binなどに置いておけば動くことはわかりました。 引き続きWindows上でruby-openglをfreeglutを使ってビルドする方法を質問します。
freeglut.libをglut32.libにリネームする
753 :
750 :2011/01/15(土) 13:45:13
このスレ生きてたのか
755 :
デフォルトの名無しさん :2011/01/31(月) 16:34:46
win32oleでクリップボードにSetTextしたデータを ペーストアクション(C-V)させたいのですが、win32oleから呼び出せますか? 動作を実現する関数なりあれば、教えてください
sendkey
758 :
デフォルトの名無しさん :2011/03/02(水) 10:00:54.12
コマンドプロンプトを出さずに外部プログラムを実行する方法はないでしょうか? VBだとpsInfo.CreateNoWindow = trueとすれば、表示を抑制できるみたいなので、 Rubyで同じような方法はないかと。
>>758 全部にあるかは知らないけど、rubyw.exe ってない?
cygwin版だけだったかなぁ…
760 :
758 :2011/03/03(木) 06:21:41.99
>>759 ありがとうございます。rubyw.exeを知らなかったので試してみました。
たしかにrubyw.exeによって走らせるrubyスクリプト自体のコマンドプロンプトは出なくなりました。
ですが、相変わらずrubyw.exeから呼び出されている
`コマンド内容` や system("コマンド内容")
からはコマンドプロンプトが開いてしまいます。
なんとかこれを開かずに済む良い方法はないでしょうか。
761 :
デフォルトの名無しさん :2011/03/03(木) 15:02:43.14
ViualuRubyのVRListviewで フォーカスが外れた状態でも、選択している項目の色を反転させたままにしておく方法はないでしょうか? VRListviewで実行する項目を選択するようにしているのですが、 フォーカスをGUI内の別のアイテムに移すと、VRListviewでどの項目を選択したか分からなくなります。 C++のMFCでいうところのAlways Show Selectionをtrueにするのと同じ処理をさせたいのですが。
>>760 require 'win32ole'
shell = WIN32OLE.new('WScript.Shell')
shell.Run("cmd /c dir /b /s 2>&1 > dir.txt", 0, true)
これでウィンドウが開かなくなるとは思う
出力をファイルハンドルで受けられないのが不便だが
763 :
760 :2011/03/04(金) 06:15:50.66
764 :
761 :2011/03/07(月) 17:39:04.42
どなたか、よろしくお願いします。
>>761 VRListViewの一覧からファイル選択して、それからオプション項目を設定してもらいたいんですけど、
オプション項目を設定するときに、どのファイルが選択されているか分からなくなるので困ってます。
スタイルにLVS_SHOWSELALWAYSを加える
766 :
761 :2011/03/10(木) 19:32:21.32
767 :
デフォルトの名無しさん :2011/03/10(木) 19:44:00.60
VisualuRubyで、読み込んだ画像の上から(上位のレイヤーみたいな感じで) 線で加工する範囲を指定したいのですが、良いサンプルはないでしょうか? とりあえず、VRCanvasPanelで(VRBitmapPanelのように) 画像ファイルを読み込ませられないかなと調べているのですが、やりかたが分かりません。。
むり
IronRubyで何が不満なん?
770 :
767 :2011/03/12(土) 13:36:22.18
うーむ。そうですか。IronRubyを調べてみます。
何でそこまでRubyにこだわるかねー C#なら何でもできるのにw ライブラリの仕様が標準化されていない バグだらけの糞Rubyなんてやる気せんわw
>>771 環境の問題でしょ。
C#使ってるとバカになるよ。
お前みたいなバカだとな
もうmicrosoftには未来が無いし C#なんぞに手を出すならObjectiveCの方が良くね
シェア1%のRuby信者は言うことが違うなぁww
バカがそれ以上バカになるとはどういうことだろう
スレチ Rubyアンチスレでも逝け
778 :
デフォルトの名無しさん :2011/03/23(水) 14:27:27.24
VisualuRubyで、ウィンドウサイズを固定する方法を教えてください。 よろしくお願いします。
779 :
778 :2011/03/24(木) 14:13:01.97
self.w = 816; self.h = 628 として固定したまま変更を許可しないようにしたいのですが。。
暇だったんで調べてみた どうも、VisualuRubyを使いこなすにはWinAPIの作法を勉強しないとだめみたいですな WindowStyleってので「リサイズできる枠」とかのフラグがあるのでそれをオフにするといいようだ require 'vr/vruby' frm=VRLocalScreen.newform frm.move 100,100,300,300 frm.caption="サイズ固定Window" frm.style= frm.style ^ WStyle::WS_THICKFRAME ^ WStyle::WS_MAXIMIZEBOX ^ WStyle::WS_MINIMIZEBOX frm.create.show VRLocalScreen.messageloop
781 :
778 :2011/04/03(日) 21:19:01.21
>>780 できました。ありがとうございます!
お礼が遅くなって申し訳ないです。
>どうも、VisualuRubyを使いこなすにはWinAPIの作法を勉強しないとだめみたいですな
はい、精進します。
782 :
デフォルトの名無しさん :2011/04/03(日) 22:32:20.48
WinAPI絡みの質問なのですが、 vrubyによるダイアログによるファイル指定で、以下のように単一の拡張子PDFのファイルを表示するだけでなく、 file = openFilenameDialog [ ['pdf', '*.pdf'] ] 複数の拡張子による絞り込みはできるんでしょうか?たとえばPDFとZIPのみを表示したいのですが。 よろしくお願いします。
vrubyは知らんけど、WinAPI的には file = openFilenameDialog [ ['pdf', '*.pdf'], ['zip', '*.zip'] ] もしくは file = openFilenameDialog [ ['pdf/zip', '*.pdf;*.zip'] ] を試してみたら?
784 :
782 :2011/04/04(月) 00:57:24.56
>783 とても助かりました。ありがとうございます。
785 :
デフォルトの名無しさん :2011/04/07(木) 01:54:29.84
vrubyについて教えてください path = saveFilenameDialog([["*.pdf","*.pdf"]]) のように開くときに、 デフォルトで開かれるフォルダの初期位置を変えることはできるのでしょうか? ついでにファイル名も与えたいのですが。。よろしくお願いします。
786 :
デフォルトの名無しさん :2011/04/09(土) 02:59:56.94
Twitter、検索結果表示が“3倍速く”なったと発表――フロントエンドの切り替えで
Twitterは、フロントエンドをRuby on RailsからBlenderに切り替えた結果、検索結果の待ち時間が大幅に改善されたと発表した。
http://www.itmedia.co.jp/news/articles/1104/07/news043.html -----------------
急成長する検索ニーズに対処するために検索エンジンを書き換え、リアルタイム検索エンジンを立ち上げた。
その際にバックエンドをMySQLからJavaベースのテキスト全文検索エンジンLuceneに移行した。
また先週、フロントエンドをRuby on RailsからBlenderと呼ばれるJavaサーバに切り替えた。
待ち時間の短縮は、こうした取り組みの成果だという。
まるち
はわわ
Windows版Ruby1.9.0〜1.9.1のRuby/Tkは 起動したときに何も無いウィンドウが表示されてから ウィジットが配置されていくのが見えるという変な動作だったけど 1.9.2になってスパッとウィンドウが表示されるようになった Ruby1.9でネイティブスレッド化したのが原因だったのかな Windowsではファイルを読み込むときにテキストモードだと ユニバーサル改行変換のせいで遅かったのが 1.9.2でかなり速くなった それでも1.8よりは遅くなるけど ところでMacの世界では今でも改行がCRなんだろうか そうならばCRとLFの変換とかするのかな それともMac界も改行がLFになってるのかしら?
>>789 OSXになった時点でUNIXになったので基本的にLFよ。
791 :
デフォルトの名無しさん :2011/04/22(金) 16:38:11.26
gem install opencv -- --with-opencv-include=C:\OpenCV2.2\include;C:\Program Files\Microsoft SDKs\Windows\v7.1\Include と設定したいのですが mkmf.logでは、-IC:\apps\OpenCV2.2\include -IC:\Program となってしまっていて、パス設定が途中で欠けてしまいます。 間にスペースが入る場合のパスの書式を教えてください。 ダブルクオートで囲むなどいろいろ試行錯誤しているものの、うまく行かず困っています。
>>791 たしかmswinにはショートネームってのがあるんじゃなかったっけ
dirコマンドを実行してみたら良いんじゃない
>>789 標準のターミナルとシェルで cat > hoge.txt して開いたら UTF-8/LF だった
>>791 "\"C:\OpenCV〜\""みたいにエスケープしてダブルクォートを二重にするんじゃなかったかな
上手くいかなかったらエスケープを適当に増減してみてくれ
795 :
791 :2011/04/23(土) 21:31:07.56
>>791 アドバイスありがとうございます。
>>794 とりあえず二重に囲むやりかたでうまく行ったように思います。ありがとうございました。
796 :
791 :2011/04/23(土) 21:35:51.73
1.9.2はいろいろと1.9.1よりよくなっているんだが なぜだか Dir.globは遅くなっている 1.8や1.9.1より2倍遅い うーむ
798 :
デフォルトの名無しさん :2011/06/11(土) 02:03:50.24
VisualuRubyのVREditとフォーカスについて教えてください。 実現したいのはEditBoxにフォーカスした時にEditBox内を空にするということです。 VREditを継承したMyEditクラスで、 VRFocusSensitiveをincludeしました。 self_gotfocusメソッド内で text="" としたのですが、ダイアログ上の表示は変わりません。 メソッド内でputs text で出力させてみるとtextの内容は変わっているようです。 他に何か必要なのでしょうか。 あるいは、根本的に何かおかしいのでしょうか。 部分的ですが、コードは下のようになっています。 class MyEdit < VREdit include VRFocusSensitive def self_gotfocus text = "" puts text end end class MyDialog < VRModalDialog def construct addControl(MyEdit, "number", Kconv.tosjis("数字を入力"), 90, 120, 200, 25, WStyle::WS_TABSTOP) end end
知らないけど、self.text = "" じゃないの?
800 :
798 :2011/06/12(日) 21:01:57.31
>>799 ありがとうございます。
self.text=""
で意図したとおりに動きました。
それにしてもselfかぁ、なんて恥ずかしい見落としを。
VisualuRubyで、 $frm=VRLocalScreen.showForm VRMainForm $frmsub=VRLocalScreen.newform($frm,style,VRSubForm) とかで複数生成したとき、$frm終了させたら$frmsubも終了するのは作れたんですけど メッセージウィンドウを表示させた時の後ろのウインドウみたいに $frmsubが表示されてる時$frmをクリックしても忠告音?を出して$frmsubを閉じるまで 行けなくするやり方わかりますか?
自己解決しました $frm.enabled = false でいけるのか・・・・・・
1.8.7は、win32.cのwinnt_statを直してくれんのかね でかいファイルサイズ扱えないままなんだけど
rubyinstaller 1.9.3-p0 でrubyをインストールして、 File.chmod(0777, '日本語.txt') とすると、 in `chmod': No such file or directory - (文字化け)txt (Errno::ENOENT) となってしまいます(日本語.txtは実際には存在します)。 これ、1.9.2になってからずっとこのままなのですが、自分の環境だけでしょうか…? スクリプトファイル上でcoding指定もしているので、指定間違いではないと思うのですが…
>>805 そのcodingに指定した文字コード名と、実際のコードの文字コードは一致してる?
>>806 文字コードはShift_JISで、スクリプトには
# coding: Windows-31J
と書いてます。
メニューから「Start Command Prompt with Ruby」でRuby用のコマンドプロンプトを開いて、
ruby -e "File.chmod(0777, '日本語.txt')"
としても同じです。
OSはWindows7 Ultimate 64bitです。
自分の環境だけなんでしょうか…。
>>807 WindowsXPのMingw版Ruby 1.9.3でも日本語が通りませんね
プログラミングは不得手ですが
Rubyのソースを追ってみると
パスをUTF-8に変換しているのにもかかわらず
それをSJISとみなしてUTF-16に変換しているように見えます
で、その文字化けしたUTF-16のパスをWindowsAPIに渡しているので失敗していると思われます
ユニコード版WindowsAPIに切り替えた際の、対応漏れのような感じです
7bitASCIIの範囲では問題が起こらないので気づかれなかったのでしょうか
win32/win32.cの5704行目を修正してコンパイルしなおしたところ 正常にFile.chmodできるようになりました どなたかRuby開発者のRedmaineに報告してください 私はAnonymous Cowardなので無理です
810 :
デフォルトの名無しさん :2011/11/25(金) 22:03:10.98
フリーメールの捨てアドレスで報告すれば?
ありがとうございます。そんなに簡単に追えるものなんですね。うらやましすぎる…というかプログラマのくせに自分がしょぼすぎる(´Д`) 自分の環境の問題でないことがわかっただけでも助かりました。気が向いたらアカウント取って報告します (どなたかやってくださる奇特な方がいらっしゃいましたらやっていただいて構いません)
報告しなきゃ…と思ってアカウント取っていたらどなたかが報告してくださってた 感謝です!(゚∀゚)
プログラミングRubyのRubyベタボメっぷりにRubyを使い始めて早10数年、使えば使う程にRubyって駄目だなと痛感する Rubyを学習し始めた頃は誰でもRubyは素晴しいと思うのだが、数年も使えばそのどうしようもない互換性のなさにウンザリする しかも互換性が無くなることをマズいと思っていない集団がRubyを制作しているのでどうしようもない 1.4時代のコードが1.6になった途端に互換性がなくなり動かなくなることはあったが、1.6→1.8ではそれが顕著になり、1.9など何のエラーも出さずに前のコードが動く方が珍しいほど それどころか1.9に行かずREEが海外ではデファクトになりつつある現状、そして始まるPlain RubyとREEの方言問題 例えばPassengerもREEの方がうまく動いたり、かと思えば特定のバージョンだとPlainじゃないとまともに動かなかったりと、とても面倒臭い 美しいコードを求める為の副作用、という名の互換性のなさはRuby界全体に蔓延していて 例えばあれだけもてはやされたRailsも、Rails2とRails3の互換性のなさに誰しも苦労したのは記憶に新しいところ 誰もが互換性のなさに辟易し、俺ライブラリを量産するため、gemで探すと似たような事をする終わったプロジェクトがわんさか引っかかる 諸処の小さなプロジェクトだけがそんな現状ならば許せるが、dbiアダプタでさえそんな現状なので バージョンが変わるとデータベースにすら接続できなくなったとか、dbiのAPIバージョン変わったのにアダプタ側の更新ないな、 とか思ってるとアダプタ作者がRubyから足洗ってたとか余裕 身内同士でRubyはコードが美しいと四六時中自画自賛しているが、実はそれこそがRubyのガン その美しいコードという名のオナニーの為に一体どれだけの互換性と人的リソースが失われていったことか Rubyのコードは美しい、Railsスゲー、ベタボメする人は沢山いたがいつも一過性の人気しか得られないのはそこにあるし ベタボメしていた人達もしばらくするとウンザリしてRuby界から消えてしまうのも原因は実はそこにある 達人プログラマーはRubyをベタボメしなくなったし、Mongrel作者はRailsどころかRubyに見切りをつけちゃったしね ああいう熱狂的なRuby信者でもRubyから足を洗っているのを見ると、tDiaryがRubyに見切りつけてPythonで全部書き直したとか言われても驚かないだろう自分がいる
814 :
デフォルトの名無しさん :2012/01/29(日) 14:26:32.76
Win7(64bit)で ActiveScriptRuby 1.9.3-p0 をインストールしましたが、 ActiveScript として動作しません。 ruby hoge.rb で実行できているものが、cscript hoge.rb だと C:\>cscript hoge.rb Microsoft (R) Windows Script Host Version 5.8 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. CScript エラー: スクリプト "C:\hoge.rb" のスクリプト エンジン "GlobalRubyScript" が見つかりません。 となり、GlobalRubyScript の登録がうまくいっていないような気がしますが、 Ruby-1.9.3.msi のインストール以外に何か作業は必要でしょうか? XP(32bit)では同じことをやって正しく動いています。
>>814 同じ環境(win7 64bit)で、今1.9.2アンインストール=>19.3インストールしてみた
自分のとこだと、ActiveScript としては問題なく動作してるけど、
拡張子の関連付けだけができてないように見える
# cscript.exe, ruby.exe ともに .rb が関連付けされてない
作業が足りないというよりインストーラの問題に見えるけど、
>>814 と挙動が違うのが気になる
他の環境でも試してみるか
>>814 64ビット版cscript.exeが動いているんじゃね?
64ビット版からは32ビットActiveXコンポーネントは呼び出せないよ。
32ビット版(C:\Windows\syswow64\cscript.exe)で実行してみたら?
817 :
814 :2012/02/01(水) 23:45:40.64
>>816 あぁっ、そういうことでしたか。
32bit版cscriptで動作しました。どうもです。
やりたかったのは、Paper Plane xUI, 秀丸エディタから
rubyを使うことだったのですが、どちらも64bitアプリでした。
32bit版でrubyスクリプトが使えるようになりました。
Rubyの話と言うよりWin32OLE(COM)の話になるのですが Excelの名前付き範囲を取得する方法ってありますか? VBAだと Range('name') ってやるだけで取れるのですが、Win32OLEで取得する方法が分からない状態です。
>>818 同じように sheet.range("ほげ") とかで取得できるっぽいよ
名前が間違ってるとか文字コードがシフトJISじゃなかったとかいう落ちはないよね
それです
821 :
デフォルトの名無しさん :2012/05/23(水) 16:08:32.35
あげ
822 :
デフォルトの名無しさん :2012/08/10(金) 14:20:08.95
あ
823 :
uy :2012/08/15(水) 20:19:30.82
z
実行されているスクリプトファイルと同じディレクトリにあるスクリプトファイルを require したいとき $LOAD_PATH.unshift File.dirname(File.expand_path __FILE__) としますが、Cygwin 版 Ruby で ruby "D:/test/script.rb" として実行すると $LOAD_PATH に "D:/test" が追加され、このときコロンがパスの区切りとして解釈されて require に失敗していしまいます。 $LOAD_PATH.unshift File.dirname((/-cygwin\z/ =~ RUBY_PLATFORM) ? `/usr/bin/cygpath -au "#{__FILE__}"`.chomp : File.expand_path(__FILE__)) とすると POSIX 形式のパスになりコロンが含まれないので require は成功しますが、外部プロセスを 呼び出すので遅くなってしまいます。 Win32API を使用して cygwin_conv_to_full_posix_path を呼び出せば外部プロセスをを呼び出す必要 はありませんが、スクリプトの作成で毎回このようなコードを書くのは面倒です。 みなさんはどのようにしていますか?
825 :
デフォルトの名無しさん :2012/08/29(水) 20:48:59.18
1.9系: require_relative './hoge_lib.rb' 1.8系: require File.expand_path("hoge_lib.rb", File.dirname(__FILE__)) で良いのでなかろうか。
>>825 ありがとうございはした。確かにこれでできそうです。
require ではベース名しか指定できないものと勘違いしていました。
827 :
デフォルトの名無しさん :2012/09/02(日) 17:02:16.34
WinでRuby 1.9環境にスイッチしようと思ったけど kakasiがみつからない。 古いライブラリってメンテされなくなってるの結構みかけるね。 いまの代替品はなにかいいのある?
kokesi
1.9.3-p286
1.9.3-p327
おまえら最大化ボタンおしてる? 最大化ボタンって必要ないよな!
HTAアプリケーションから別のHTAアプリケーションにデータを送りたい時は どうやればいいでしょうか?
>>830 Windows 2000でうごかないのですか?
なぜサポートしてくれないの?
Linux板より。 @インストールしただけで選民思想 Aやっていることはwindowsと同じ。しかもめんどくさくなっただけ。 Bコマンド打ち込んでプロだと勘違い C新参に対して黙ってwindowsでも使ってろと間口を狭める Dカーネルいじればいいだろと無茶を要求 Elinux開発者とのずれを認識できていない Fwineを使うくせにlinuxを再現しようとする動きがあるとたたく Gプログラミングできないのにソース要求する H何でもオープンでないと、気に食わないエセ共産主義者 IWindowsユーザに馬鹿にされてることに気づいていない JAndroidの事例をを引っ張り出して、「linuxは普及している」と虚勢を張る KAndroidのセキュリティ問題を指摘されると、AndroidはLinuxではないと言い出す。 L結局普及してない点を指摘されると、「別に普及しなくていいよ」と思考停止 M三度の飯よりアップデートが大好き、コンパイルが大好き、カスタマイズ大好き NOSを弄ることがゲームと化しているので、ゲームソフトが必要ない
>>833 ruby 1.9.3p327および cygwinの例(Windows 2000)
Administrator@computer_name ~
$ which perl
/cygdrive/c/Perl/bin/perl
Administrator@computer_name ~
$ which ruby
/usr/bin/ruby
Administrator@computer_name ~
$ ruby --version
ruby 1.9.3p327 (2012-11-10 revision 37606) [i386-cygwin]
1.9.3-p374
2.0.0-rc1
838 :
デフォルトの名無しさん :2013/01/22(火) 00:25:24.59
dl2を使ったコールバックのWin向けのサンプルコードってどこかにありませんか? リファレンスマニュアルのサンプルコードはunix向けだし、肝心のbindが書いていないし・・・
こんな感じとか require 'dl/import' require 'dl/types' module CBTest extend DL::Importer dlload 'user32.dll' include DL::Win32Types typealias "LPARAM", "void*" extern "BOOL EnumWindows(void*, LPARAM)", :stdcall WNDENUMPROC = bind("BOOL EnumFunc(HWND, LPARAM)", :stdcall) do |hwnd, obj| DL.dlunwrap(obj).call(hwnd) end end CBTest::EnumWindows(CBTest::WNDENUMPROC, DL.dlwrap(proc {|hwnd| p hwnd; 1 }))
840 :
838 :2013/01/23(水) 07:52:41.60
ありがとう >DL.dlunwrap(obj).call(hwnd) のところで >`dlunwrap': can't convert DL::CPtr into Integer (TypeError) って出る・・・って調べていったら1.9だと通るけど1.8+dl2だとダメなのか なんじゃそりゃ・・・orz
841 :
839 :2013/01/23(水) 14:37:49.03
>>840 DL.dlunwrap(obj.to_i).call(hwnd)
ならどう?
842 :
838 :2013/01/25(金) 07:39:32.37
>>841 ありがとう。動いた
う〜ん・・・もうちょっと悩んでみます
843 :
838 :2013/02/04(月) 08:00:57.45
長文失礼します
どうにも行き詰まってしまったので質問させてください
環境はruby 1.8 or 1.9+dl2+wxruby2です
>>839 氏のサンプルを元に:stdcall、:temporal共に意図した動作をすることを確認しました
しかし、wxrubyと組み合わせて使おうとするとエラーが出てしまいます
やりたいことは
ttp://www.michaelnygard.com/blog/2009/01/ # Rubyの例
ttp://wiki.wxpython.org/HookingTheWndProc # Pythonの例
で、Windowsのメッセージをトリガーに処理をしたいです
コードは書き途中ですが
>type test.rbw
#!/usr/bin/env ruby
# encoding: utf-8
require 'dl/import'
require 'dl/types'
require 'wx'
module Win32
GWL_WNDPROC = -4
extend DL::Importer
dlload 'user32.dll'
include DL::Win32Types
typealias('LONG', 'long')
typealias('LRESULT', 'long')
typealias('WPARAM', 'void*')
typealias('LPARAM', 'void*')
typealias('WNDPROC', 'void*')
extern 'LONG SetWindowLong(HWND, int, LONG)', :stdcall
WND_PROC1 = bind("LRESULT WindowProc(HWND, UINT, WPARAM, LPARAM)", :temporal)
WND_PROC2 = bind("LRESULT WindowProc(HWND, UINT, WPARAM, LPARAM)", :stdcall){ p "call WND_PROC2" } # ここが呼ばれても嬉しくない
end
844 :
838 :2013/02/04(月) 08:01:50.28
class MyApp < Wx::App def on_init MyFrame.new.show end end class MyFrame < Wx::Frame def initialize super(nil, -1) @oldWndProc = Win32.SetWindowLong(get_handle(), Win32::GWL_WNDPROC, Win32::WND_PROC1){ callback_func } # こっちは例外発生 #@oldWndProc = Win32.SetWindowLong(get_handle(), Win32::GWL_WNDPROC, Win32::WND_PROC2) # こっちはWin32内の関数が呼ばれる end def callback_func(*args) p "call WND_PROC1" end end MyApp.new.main_loop >ruby test.rbw test.rbw:23:in `show': undefined method `call' for nil:NilClass (NoMethodError) from test.rbw:23:in `on_init' from test.rbw:36:in `main_loop' from test.rbw:36:in `<main>' そこはnilじゃないし、callメソッドが無いってお前は何を(ry 例外の内容が意味不明でお手上げ状態です。よろしくお願いします
MyFrame.new.show でエラーだろ MyFrame.new がマジでnil
typealias('LONG', 'long') typealias('LRESULT', 'long') typealias('WPARAM', 'long') typealias('LPARAM', 'long') typealias('WNDPROC', 'void*') typealias('HWND', 'long') extern 'LRESULT SetWindowLong(HWND, LONG, WNDPROC)', :stdcall
847 :
838 :2013/02/04(月) 22:39:43.13
レスありがとうございます
>>845 それが
- MyFrame.new.show
+ frame = MyFrame.new
+ p frame
+ frame.show
として実行すると
>ruby test.rbw
#<MyFrame:0xa92180>
test.rbw:26:in `show': undefined method `call' for nil:NilClass (NoMethodError) # 26はframe.showの行
from test.rbw:26:in `on_init'
from test.rbw:39:in `main_loop'
from test.rbw:39:in `<main>'
と
>>844 と同じ例外が出て???です。nilだったらnilって出力されますよね?
>>846 あ、SetWindowLongのexternが変でしたね。extern / typealiasの書き方がおかしいのかと思っていじって直していませんでした
お手数をおかけします。typealiasとexternを
>>846 の通りに直してみましたが同様の例外が発生します
現在のコード
-typealias('WPARAM', 'void*')
-typealias('LPARAM', 'void*')
+typealias('WPARAM', 'long')
+typealias('LPARAM', 'long')
-
+typealias('HWND', 'long')
-extern 'LONG SetWindowLong(HWND, int, LONG)', :stdcall
+extern 'LRESULT SetWindowLong(HWND, LONG, WNDPROC)', :stdcall
自分の知らない何かを根本的に勘違いしているのだろうか・・・
同じコードをコピペして試すと違う例外が出た c:/ruby/lib/ruby/1.9.1/dl/func.rb:92:in `call': can't convert DL::TempFunction into Integer (TypeError) from c:/ruby/lib/ruby/1.9.1/dl/func.rb:92:in `call' from wxprob.rb:18:in `SetWindowLong' from wxprob.rb:31:in `initialize' from wxprob.rb:25:in `new' from wxprob.rb:25:in `on_init' from wxprob.rb:38:in `main_loop' from wxprob.rb:38:in `<main>'
849 :
848 :2013/02/05(火) 07:35:33.98
ちなみにバージョン ruby 1.9.3p362 (2012-12-25) [i386-mingw32] (Windows 8 64bit)
850 :
839 :2013/02/05(火) 10:26:29.62
コールバックの呼ばれるタイミングがSetWindowLongの呼び出しタイミングとは違うので temporalだとうまくブロックを渡せないのかな? それならGWL_USERDATAにProcやMethodをdlwrapしてSetWindowLongで格納、 stdcallのbindのブロック内でGWL_USERDATAからGetWindowLongして dlunwrapしてcallするのがよいのでは? ... WND_PROC2 = bind("LRESULT WindowProc(HWND, UINT, WPARAM, LPARAM)", :stdcall){|hwnd, msg, wp, lp| DL.dlunwrap(GetWindowLong(hwnd, GWL_USERDATA)).call(hwnd, msg, wp, lp) } ... Win32.SetWindowLong(get_handle(), Win32::GWL_USERDATA, DL.dlwrap(method(:callback_func))) @oldWndProc = Win32.SetWindowLong(get_handle(), Win32::GWL_WNDPROC, Win32::WND_PROC2) ...
1.9.3-p385
852 :
838 :2013/02/11(月) 23:02:53.21
長文すみません。ソースを貼るので長くなります
>>850 レスありがとうございます
そのコードでコールバック関数が呼ばれるようになりました
が、"DL.dlunwrap(GetWindowLong(hwnd, GWL_USERDATA))"が
callback_func以外のオブジェクトを返す現象が発生します
Ruby本体の問題かと思って思い切ってmingw32の最新版にして
みたらまた走らなくなった・・・
OSはWinXP x86 SP3でwxruby 2.0.1。rubyは1.8.7と1.9.2
>type test.rbw
require 'dl/import'
require 'dl/types'
require 'wx'
module Win32
GWL_WNDPROC = -4
GWL_USERDATA = -21
extend DL::Importer
dlload 'user32.dll'
include DL::Win32Types
typealias('LONG', 'long')
typealias('LRESULT', 'long')
typealias('WPARAM', 'long')
typealias('LPARAM', 'long')
typealias('WNDPROC', 'void*')
typealias('HWND', 'long')
extern 'LRESULT SetWindowLong(HWND, LONG, WNDPROC)', :stdcall
extern 'LONG GetWindowLong(HWND, int)', :stdcall
WND_PROC1 = bind("LRESULT WindowProc(HWND, UINT, WPARAM, LPARAM)", :stdcall){|hwnd, msg, wp, lp|
DL.dlunwrap(Win32.GetWindowLong(hwnd, GWL_USERDATA)).call(hwnd, msg, wp, lp)
}
end
853 :
838 :2013/02/11(月) 23:03:27.17
class MyApp < Wx::App def on_init MyFrame.new.show end end class MyFrame < Wx::Frame def initialize super(nil, -1) Win32.SetWindowLong(get_handle(), Win32::GWL_USERDATA, DL.dlwrap(method(:callback_func))) @oldWndProc = Win32.SetWindowLong(get_handle(), Win32::GWL_WNDPROC, Win32::WND_PROC1) end def callback_func(*args) p "callback func" end end MyApp.new.main_loop
854 :
838 :2013/02/11(月) 23:04:35.21
>ruby -v ruby 1.9.2p136 (2010-12-25 revision 30365) [i386-mswin32] >ruby test.rbw "callback func" 〜 "callback func" test.rbw:21:in `block in <module:Win32>': undefined method `call' for "l!":String (NoMethodError) from c:/Dev/ruby19/lib/ruby/1.9.1/dl/func.rb:102:in `call' from c:/Dev/ruby19/lib/ruby/1.9.1/dl/func.rb:102:in `block in bind' from test.rbw:39:in `call' from test.rbw:39:in `on_run' from test.rbw:39:in `main_loop' from test.rbw:39:in `<main>' #「"l!":String」は実行するたびに変わります。Arrayになったり他のオブジェクトになったり・・・ >ruby -v ruby 1.9.3p385 (2013-02-06) [i386-mingw32] >ruby test.rbw test.rbw:26:in `show': can't convert String into Integer (TypeError) from test.rbw:26:in `on_init' from test.rbw:39:in `main_loop' from test.rbw:39:in `<main>' 振り出しに戻っている・・・
python使った方が楽よ
856 :
838 :2013/02/12(火) 07:38:35.03
>>855 それは自分も思い始めていたけど、Pythonはあの使えないドキュメントにストレスがたまる
Rubyみたいに一目で継承関係やメソッドがわかるリファレンスマニュアルがないんだよね
えっ
858 :
デフォルトの名無しさん :2013/02/12(火) 10:30:38.25
859 :
デフォルトの名無しさん :2013/02/12(火) 14:10:05.86
>>32 この娘10歳くらいでK-POP踊ってるんだけど、ものすごくかわいい。
www.nicovideo.jp/watch/sm20053263
860 :
839 :2013/02/12(火) 14:29:12.25
おそらくGCがらみなんで、dlwrapしたオブジェクトなんかをグローバル変数にすれば落ちにくくなるかも あとコールバックが呼び出されすぎるのが原因っぽいのでDefWindowsProcを呼び出したほうがいいはず ... WM_DESTROY = 0x0002 extern 'LRESULT DefWindowProc(HWND, UINT, WPARAM, LPARAM)', :stdcall extern 'void PostQuitMessage(int)', :stdcall ... def callback_func(hwnd, msg, wp, lp) p [hwnd, msg, wp, lp] case msg when Win32::WM_DESTROY Win32.PostQuitMessage(0) 0 else Win32.DefWindowProc(hwnd, msg, wp, lp) end end
irbでオートコンプリートできる?
1.9.3-p392
2.0.0-p0
2.0.0-p195 1.9.3-p429
1.8から抜け出せない
Ruby 1.8.7 は引退しました
868 :
デフォルトの名無しさん :2013/07/06(土) NY:AN:NY.AN
mrubyをVisualStudioでbuildしたいんだけど、やりかたはどこを見ればわかりますかね? CMakeを使う方法はヒットするけど、今のrakeでの方法がわからない。
869 :
839 :2013/07/06(土) NY:AN:NY.AN
>>868 1. build_config.rbのtoolchainを:vs2010に変更
2. VSでメイクファイルプロジェクト作成
3. ビルドコマンドライン「rake LDFLAGS=/DEBUG」、消去コマンド「rake clean」、出力「bin\mruby.exe」
ありがとうございました。やってみます。
2.0.0-p353
872 :
デフォルトの名無しさん :2014/01/05(日) 05:56:15.25
ActiveScriptRubyって見事にガラパゴスだよな ガラパゴスrubyバンザイ!
Windows使うならc#、JScriptで十分だろ わざわざ苦労してまでRubyやPythonを使いたいのか甚だ疑問
何の苦労もねーよアホ
Rubyは苦労するだろ
877 :
デフォルトの名無しさん :2014/01/08(水) 10:42:53.44
Windowsならpythonすごくいいわ
2.1.0-p0
879 :
デフォルトの名無しさん :2014/01/16(木) 13:43:38.34
ん後wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
880 :
デフォルトの名無しさん :2014/01/17(金) 02:27:34.94
ンッペコバーナーwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
2.1.1-p76
2.1.1-p76
883 :
デフォルトの名無しさん :2014/05/22(木) 10:16:40.13 ID:T7g9nJmM
日テレ低原価テレビ問題ニューヨーク塩素スープ ニュース沖縄牛ライス北京ダウ問題分 日テレ低原価テレビ問題ニューヨーク塩素スープ ニュース沖縄牛ライス北京ダウ問題分 日テレ低原価テレビ問題ニューヨーク塩素スープ ニュース沖縄牛パスタ北京ダウ問題
884 :
デフォルトの名無しさん :2014/05/24(土) 20:40:06.34 ID:MGyccAbV
windowsは開発者(自前ビルド)と末端(ASR)の差が激しいから RimixとかRuby installerとか全然話題にならないよな
remixはNYAOS + 端末ソフトウェア ckw-mod なんてトリッキーな組み合わせが標準だけどtcc/leとかも検討してほしい
Ruby Installerは2.0.0で止まっているが もうメンテしていないわけじゃなくて 本家がバグ直してくれへんのや・・・とかなんか愚痴っとる どんだけ無能やねん nobuさんも呆れてはるわ
もうこの業界クレクレ厨ばかりになってしまった
Ruby Tools for Visual Studioまだ? Ironうんたらは却下
ironとはなんだったのか
2.1.2-p95
>ActiveScriptRuby 安定版に幾つかの便利なライブラリを加え、 >さらにRubyをCOMサーバとしても利用可能にしたもの。ベースはmswin32版 VC版じゃね?
892 :
891 :2014/09/26(金) 01:40:49.25 ID:TbsD84QQ
勘違いw mswin32版=VC版だった
893 :
デフォルトの名無しさん :2014/09/26(金) 11:56:01.87 ID:TbsD84QQ
Ruby Installerは2.0.0で止まっているが
指摘すると
>>887 みたいに攻撃して正当化してくる
だめだこりゃ
実際ソフト公開したことある人なら知ってる クレクレ厨のいかにクレクレかということを
だよな。そして何かを提供すればするほど損をするネット共産主義のくだらなさを悟って 自分も乞食ユーザになる選択をする
テンプレRDE古いなーって思ったら2006年でバロス
897 :
デフォルトの名無しさん :2014/10/07(火) 00:18:48.73 ID:M2ehTgeA
estt
898 :
デフォルトの名無しさん :2014/10/23(木) 12:15:21.84 ID:ISc0F2Qf
899 :
デフォルトの名無しさん :2014/10/23(木) 14:53:39.11 ID:RjBQcz8M
2.2.0
901 :
デフォルトの名無しさん :2015/02/08(日) 13:40:14.51 ID:7p70QxfD
cygwin で ruby をインストールしたら実行しても何も表示されないんだけど, これってみんなそうなの? ちなみにバージョンは 2.0.0.p598-1
902 :
デフォルトの名無しさん :2015/02/08(日) 14:13:28.74 ID:tUjKNEQ0
なにも表示しないコードを実行したらそうなる
実行って何を実行したんだ?どうなる想定だったんだ?何のためにrubyをインストールしたんだ?そもそもrubyがなんだか知ってんの?
今はJRubyで、JavaFXを使って、 GUI表示している人が、多いのでは?
905 :
デフォルトの名無しさん :
2015/03/03(火) 10:59:36.98 ID:W2DJwOli RubyInstaller でWin版の2.1.5 を入れようとしたら、 最初の gem updateで、いきなり certificate verify failed certパスを調べたら、露骨にパッケージ製作者のローカルファイルになってる > p OpenSSL::X509::DEFAULT_CERT_FILE "C:/Users/Luis/Code/luislavena/knap-build/var/knapsack/software/x86-windows/openssl/1.0.0o/ssl/cert.pem" lib\ruby\2.1.0\openssl.rb を手で書き換えればいいけど、なんだかモヤモヤ