【ActiveScript】RubyをWindowsで使うスレ【GUI】at TECH
【ActiveScript】RubyをWindowsで使うスレ【GUI】 - 暇つぶし2ch100:デフォルトの名無しさん
06/08/23 07:32:46
最近Ruby使い始めたんだがすげーいいなこれ。
GUIが一瞬で出来し、適当に書いても動くしw

101:デフォルトの名無しさん
06/08/23 08:45:00
>>96
URLリンク(blade.nagaokaut.ac.jp)
↑みたいにして????_dblclickedで処理

vr/compat/vrcontrol.rbのVRListboxのところに
addCommandHandler(WMsg::LBN_DBLCLK, 'dblclicked',MSGTYPE::ARGNONE,nil)
を直接入れちゃってもいい


ってゆうか最初から入れとけよ作者

102:デフォルトの名無しさん
06/08/23 21:04:44
>>101

>>96ではないけど、

FormDesignerで画面を作ると、リストボックスは、別モジュールで
addControl(VRListbox,'listBox1',"listBox1",72,40,296,132,1350565889)
を使って定義され、別ファイルからこのモジュールをインクルードして
使うようになってるんだけど、

この状態で、
URLリンク(blade.nagaokaut.ac.jp)
と同等のサブクラス定義ってどうやればいいでしょうか?

(FormDegignerで生成したファイルには手をつけずに、自作のファイルの中だけで定義したい。)

103:デフォルトの名無しさん
06/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


104:デフォルトの名無しさん
06/08/24 01:52:06
しまった、sage損なった...

105:102
06/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とかぶるからかな?


106:デフォルトの名無しさん
06/08/24 02:34:29
すごいなvruby
おらワクワクしてきたぞ

107:デフォルトの名無しさん
06/08/24 02:35:32
BN_????はボタンのやつで、LBN_????がリストボックスのやつ

108:102
06/08/24 02:42:56
>>107
>BN_????はボタンのやつで、LBN_????がリストボックスのやつ

ほんとだ。また何か勘違いしているのか?<自分


109:102
06/08/24 02:52:24
>>105 ですが、やっぱり変でした。
>>105 でリストボックスをダブルクリックすると、
listBox1_dblclicked は通ることは通るんだけど、
ダブルクリックした直後には通らず、一回画面を別画面の裏側にするとか、
画面を終了させないとlistBox1_dblclickedが動作しないです。

変な物を貼ってお騒がせしてすみませんです。


110:デフォルトの名無しさん
06/08/24 03:04:19
ん?うまくいってるでしょ。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
06/08/24 04:29:48
>>110

やっと正常に動作しました。どうやらフォーカスは無関係みたいです。

・BN_DBLCLICKEDじゃなくて、ちゃんとLBN_DBLCLKを使う。
・listboxに中身を入れる
(つまり>>110のソースどおり。LBN_SETFOCUS関係の設定は不要)

で、理想的に動作しました。

実は私はlistboxの中身を空っぽの状態でテストしていました(謝)。

そして、listboxの中身が空っぽだと、>>110のソースでも>>109の状態になります。

何もないところをダブルクリックすると、その時点ではlistBox1_dblclickedを通らず、
窓を閉じたり、別の窓の後ろに動かしてからlistBox1_dblclicked を通ります。


112:90
06/08/25 00:02:19
>>103
>>90 はVRFormじゃなくてダイアログ使うと出来る。(Formの代わりならmodelessか)

ダイアログにすることで、Alt+キーでボタンが押せました。情報ありがとうございました。

113:デフォルトの名無しさん
06/08/26 02:21:41
ちょっと質問ですが、
C#で書かれた.NETのプログラムがあり、ソースが公開されているとします。
このソースに手を加え、Rubyと通信できるようにして、RubyからC#のプログラムを
コントロールしたり監視したりしたいとき、.NET→Ruby間の通信方法は、何が一番適切でしょうか。
条件は、
・C#プログラム側で発生した変化を、出来るだけリアルタイムにRuby側で感知したい。
・Ruby側から.NETにも情報を渡したい(双方向の通信)。
・現時点では1台のマシンの中だけで閉じた状態のみを想定。


114:デフォルトの名無しさん
06/08/26 02:27:41
何が一番適切か?というのは、

・.NET、Ruby側ともその通信手段のライブラリが用意されており実装は容易。
・通信の切断、再接続など、出来るだけライブラリ内で吸収していて、あまり記述しなくてもいいのが理想的。

つまり、作成も管理も一番簡単なのはどれでしょうという質問です。


115:デフォルトの名無しさん
06/08/26 02:31:32
socket

116:デフォルトの名無しさん
06/08/27 04:10:41
fxruby1.6.0がラッパしてるfox-toolkitの1.6.0でUnicodeをサポートする
ようになったらWindows9系ではfxrubyのプログラムが動作しなくなった

URLリンク(fox-toolkit.net)

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とか言うのをどうにかすればいいらしいけど
どうしたらいいの?

117:デフォルトの名無しさん
06/08/27 04:54:05
Microsoftがライブラリ配布してるからダウンロードしてインスコすれ

118:デフォルトの名無しさん
06/08/27 05:04:43
どっか説明してるサイトとかありますか?

119:デフォルトの名無しさん
06/08/27 06:22:39
ぐぐれ

120:デフォルトの名無しさん
06/08/27 06:55:54
ライブラリの名前だけでいいんだけど
unicows.dll ← これ?

121:デフォルトの名無しさん
06/08/27 22:31:03
vrubyの画面にwebbrowserを貼り付けるサンプルは、
URLリンク(vruby.sourceforge.net)にあるが、
vrubyの画面にexcelを貼り付けられないものだろうか?

と思って検索したら、
URLリンク(rd.search.goo.ne.jp)
に「VBとかだとExcelをフォームに貼り付けたりできたじゃん(おぼろげな記憶)。それはきっとOLEとか
ActiveXでできてるだろうからvrubyでも可能なはず。OLEブラウザで名前を調べてテストしたが、
うまくいかん。あれは本当にOLEだったのか?そのへん調べてみるとOLEコンテナというシロモノらしい。
だめぽい。」
とある。

vrubyの画面にexcelは貼り付けられないということでFA?

同じ発想でOOo.orgのcalcを貼り付けられないか調査中。OOo自体はActiveXとして使えるらしいが、
URLリンク(openoffice-docj.sourceforge.jp)
OLEブラウザをみても、それに当たる物が見つからない(OOoインストール時にActiveXは選択している。)
vruby以前の問題でうろうろしているが、成功例のサンプルとかどこかにある?



122:デフォルトの名無しさん
06/08/27 22:36:13
両方無理

123:デフォルトの名無しさん
06/08/27 22:52:38
>>121
リンク先は読んでないが、Excelは「OLEサーバ」。
OLEオートメーションを使うためには、入れ物が「OLEコンテナ」である必要がある。
vrubyの実装がどうなっているのか知らないけど、そうなってないなら出来ない。

COMやActiveXを使えるからといって、OLEオートメーションが出来るとは限らない。
C/C++だってそうでしょ?

124:デフォルトの名無しさん
06/08/28 00:18:32
>>122-123

無理っすかあ。残念。


125:113
06/08/28 03:13:02
>>115
socket が一番簡単ですか?同じマシンで閉じているので
ネットワーク通信ではなくプロセス間通信でもいいのですが。

>>121のActiveXの話をみて、113に書いた条件とは少し変わってしまいますが、
C#とrubyとの接続方法として、C#でActiveXコンポーネントを作成して
vrubyに貼り付けたりというのもあるのかもしれないと思いました。



126:デフォルトの名無しさん
06/08/29 09:45:56
VR(Vert|Horiz)TwoPaneでセパレータをドラッグしたときにゴミが残るのうちだけ?
@pane_2.moveしたときに再描画されなくてPatBltで描いた線が残ったままになってる。
もう一度PatBltして線を消すとか、@pane_2.refreshをするとかすればいいんだけど、
そうなってないってことは、うちの環境がおかしいの?

127:デフォルトの名無しさん
06/08/29 15:03:12
複数Excelファイルの集計とか、全部Rubyでやってるよ。
最初はVBAでやってたけど、Ruby使い出すともう戻れないねぇ・・・

でも、Visualプログラミングはまだやる気起きないなぁ。
Delphi6で不満な局面がないし

128:デフォルトの名無しさん
06/08/29 21:33:47
>>125
別にソケットはネットワーク通信専用じゃないけど
どうしてもいやならここらへんでも(つかったことないけど)
URLリンク(jp.rubyist.net)

>>126
これかね
URLリンク(vruby.sourceforge.net)

129:デフォルトの名無しさん
06/08/30 08:33:29
VRTwoPaneFrameは修正したけど、VRTwoPaneの方は修正してないみたいだね

130:デフォルトの名無しさん
06/08/30 08:44:06
>>127
王道はずしまくりですね

131:デフォルトの名無しさん
06/08/30 19:18:23
>>121
> vrubyの画面にwebbrowserを貼り付けるサンプルは、
> URLリンク(vruby.sourceforge.net)にあるが、
> vrubyの画面にexcelを貼り付けられないものだろうか?


とりあえず、vrubyの画面にexcelを貼り付ける方法を発見。

上記のURLリンク(vruby.sourceforge.net)にあるActiveXのサンプル画面で、
"URLリンク(www.yahoo.co.jp)
と書かれている部分を、
"file://c:\\test.xls"
のような、実在するexcelファイルを指定すれば出来る。
(そのパソコンのセキュリティの設定と関係してくるが。)

次に、ここで表示したexcelを、vruby側からコントロールしたいのだが、さてどうしたものか。


132:デフォルトの名無しさん
06/08/30 19:31:16
ActiveScriptRubyのActiveScript部分のみのインストール手順(必要なファイルとか登録するレジストリ情報とか)
とかってどこかにないですかね?
ActiveScriptRubyが入っていないPCでRubyで書いたHTAとかを動かしたいときに
関連物を全自動でさくっと登録したいです

133:デフォルトの名無しさん
06/08/30 22:07:00
>>132
artonさんのWikiに質問を書いてからblogのコメントに質問があるからWiki見ろゴルァとか書くと良いらしいと日記に書いてあったヨ。

>>131
documentを取得しようとするとExcelのインスタンスが取得できた稀ガス。

134:デフォルトの名無しさん
06/08/30 23:25:07
>>133

ちょっと試してみました。

@excel = @exp.ole_interface.Document             # でExplorerAxControlのインスタンスからexcelを取り出し、
@sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、
p @sheet.Cells.Item(3,2).Value                   # でC2のセルを表示

できました。



135:デフォルトの名無しさん
06/08/30 23:53:06
>>134

> @sheet = @exp_document.Worksheets.Item("Sheet1") # で、シートを取り出し、
は、
@sheet = @excel.Worksheets.Item("Sheet1")          # で、シートを取り出し、
の間違いでした。

これが出来ると、excelの機能をまるまるvrubyのアプリケーションに使えそうで良い感じです。



136:デフォルトの名無しさん
06/09/03 09:45:06
Excelへの印刷まではrubyから制御してるんだけどさ、
プリンタのジョブが完了したとかあと何件残ってるとか監視したいんだけど
それはWin32OLEやASRで出来るもの? 無理?
どこから監視すればいいのかわからんとです。

137:デフォルトの名無しさん
06/09/03 12:29:06
>>136
コントロールパネルからプリンタの画面を見る。
ということが、Rubyから出来れば可能。出来なければ不可能。

138:デフォルトの名無しさん
06/09/03 12:36:58
URLリンク(www.tohoku.ricoh.co.jp)

win32apiの叩き方が分からないけど、こういうのがあった。
ユーザからしてみれば、ちょっとしたことだと思うんだけど
いざやってみようとすると敷居たかいのね orz

敷居が高いというか低レベルなところでゴニョゴニョしないとダメというか
ハンドルっていわれてもいまいち理解できていない今日この頃。
グチですまん

139:デフォルトの名無しさん
06/09/03 12:48:27
ネットワーク越しの対戦型囲碁ソフトってこれで作れます?
作れるけど困難?

GUIアプリは作ったことありません。プログラミング経験は、Perl と Ruby のCGIだけです。
C#とかを勉強して、Visual Studio で作る方が近道でしょうか?

140:デフォルトの名無しさん
06/09/03 13:00:07
できると思うけど…
GTPのライブラリはあるみたい?

URLリンク(www.hiroshima-pu.ac.jp)

141:デフォルトの名無しさん
06/09/03 14:16:42
>>139
140でFA
自力でやるなら、やり方によるがネットワークプログラミングはどっちでも変わらんと思う。
地道にやると何にしろ面倒。
dRubyを使ってもいいのならRubyのほうが楽だと思う。

142:デフォルトの名無しさん
06/09/03 14:36:14
GUIだからってかまえなきゃいいんじゃない?
Labelで○●+表示して、クリックイベント拾うとかw

通信を自前のメッセージにするのかGTPにも対応するかで
困難さはだいぶかわってくると思われ。

>>141が書いてるdRuby使った案だとViewをWin32ネイティブにも
CGIでのフロントエンドにもできていいんじゃない?
(256本網道編っぽい)

143:デフォルトの名無しさん
06/09/03 15:17:11
>>140-142
サンクス。
Rubyでやってみます。


144:デフォルトの名無しさん
06/09/08 07:35:28
pstoreがmswin32でバグってるてのは多用している自分にとってびっくりだった。
次バージョンでのバグ修正を期待します。

145:デフォルトの名無しさん
06/09/08 17:08:05
winユーザーには冷たいですから

146:デフォルトの名無しさん
06/09/08 21:00:38
one-click Ruby をインストールしているマシンに
ActiveScriptRubyをインストールしたらまずいことになりますか?

やはりone-click Rubyをアンインストールしたほうがいいのでしょうか?

147:デフォルトの名無しさん
06/09/08 22:37:25
パスが違えば問題ないんじゃない?

148:デフォルトの名無しさん
06/09/09 00:50:01
One-click をインストールすると、環境変数
RUBYOPT=-rubygems
が設定されるから、場合によっては不都合あるかもな

149:デフォルトの名無しさん
06/09/09 02:41:58
コマンドプロンプト毎に環境変数設定するバッチファイル書けば?

150:デフォルトの名無しさん
06/09/09 17:37:43
IronPython正式版が出たけど、はやくRubyも.NETで動くようにならないかなと期待。
URLリンク(plas.fit.qut.edu.au)
が一番、プロジェクトとして近いのかな?



151:デフォルトの名無しさん
06/09/09 20:14:04
>>150
IronRubyてのを聞いた気が…。

152:デフォルトの名無しさん
06/09/10 01:56:51
>>147
>>148
>>149

環境変数を弄ればいけそうなのですね。
挑戦してみます。

ありがとうございました。


153:デフォルトの名無しさん
06/09/12 05:24:29
なぜWin32API.soは小文字にしない

154:デフォルトの名無しさん
06/09/12 08:26:53
固有名詞

155:デフォルトの名無しさん
06/09/25 11:55:05
WinとかWINで統一感ないね

156:デフォルトの名無しさん
06/09/26 21:36:23
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
みたいにして使いまわしたほうがいいんですかね。
オブジェクトの生成って重いんですか?

157:デフォルトの名無しさん
06/09/26 21:44:17
なぜ試さない/コードを見ないんだろう

158:デフォルトの名無しさん
06/09/26 22:15:06
定数でいいんでねか

159:デフォルトの名無しさん
06/10/02 16:26:16
USB Joypad を ruby上で利用する方法探してます。

ライブラリないしサンプルとなるコードってどっかにないですか?

160:デフォルトの名無しさん
06/10/02 21:24:23
SDLを使うとか?

161:デフォルトの名無しさん
06/10/02 21:26:31
URLリンク(www.kmc.gr.jp)

162:デフォルトの名無しさん
06/10/06 11:31:39
ruby -e "`cls`"
でcmd窓がクリアされないんですが他にいいやり方ないですか

163:デフォルトの名無しさん
06/10/06 11:55:04
ruby -e "system('cls')"

164:デフォルトの名無しさん
06/10/17 04:58:43
東京大学教養課程の第一プログラミング言語がRubyに
URLリンク(d.hatena.ne.jp)
URLリンク(b.hatena.ne.jp)

165:デフォルトの名無しさん
06/10/29 16:36:57
RubyでDDEを直接扱うライブラリありますか?

vrubyのGUI経由でのライブラリがあるのは知っているのですが、
データをrequestするメソッドと返り値をとるメソッドが分かれてしまっているのが
使いづらくて・・・。



166:デフォルトの名無しさん
06/11/06 21:16:53
Win32APIをDLで置き換えるってのはいつから?

167:デフォルトの名無しさん
06/11/07 02:17:53
もう置き換えてるはずなんだがな。


168:デフォルトの名無しさん
06/11/16 01:53:02
いまさらだけど
vruby061102リリース記念age

169:デフォルトの名無しさん
06/12/03 19:43:36
Bad file descriptor - connect(2) (Errno::EBADF)が出やすいのはwindowsだから?

170:デフォルトの名無しさん
06/12/04 02:12:53
なんかどっかで聞いたことあるな
Threadの中でやるとよくないんだっけ?

171:デフォルトの名無しさん
06/12/05 09:01:56
俺の中ではgemが出すエラーだな。
rubyforgeが落ちてる時の。

172:デフォルトの名無しさん
06/12/10 04:27:31
ネット系は至る所からTimout::Errorがやってくる恐怖のライブラリ

173:ビジネスニュース+
06/12/26 03:21:13

ビジネスニュース+ 板
URLリンク(news18.2ch.net)

【ネット】「Windows Vista」からネット経由でセブンイレブンのコピー機にプリントアウト![12/25]
スレリンク(bizplus板)

174:デフォルトの名無しさん
06/12/26 04:18:38
Apolo使ってる人いる?

175:デフォルトの名無しさん
06/12/26 08:25:58
>>174
visualuよりもお手軽だしDelphi部品使えるから、たまに使うけど、
Apollo側からgem使うのがメンドイので、ふつーのmingw版と
共存させてる(おかげでPATHの関係でたまにハマる)

176:デフォルトの名無しさん
07/01/04 10:34:07
Apoloに関しては、
別にDelphiだけでいいじゃんという究極の問題点があるからな

無論、正規表現とかを使いたいときはありだけどさ

177:デフォルトの名無しさん
07/01/04 10:55:57
つーかDelでも正規表現使えるように環境整備しとけって。

178:デフォルトの名無しさん
07/01/08 01:56:39
まあ、単発のユーティリティとか、プロトタイピングでしかRubyつかってないからなあ、俺は。
GUIは、Delphiでいいやという気もする

179:デフォルトの名無しさん
07/01/09 02:44:11
DelphiとPascalは死んだみたい
URLリンク(www.tiobe.com)


180:デフォルトの名無しさん
07/01/09 23:08:01
exerb 4.1.0 上げ

181:デフォルトの名無しさん
07/01/09 23:55:22
VisualuRubyのフォーム作りはFormDesignerが一番楽なのか?
更新止まってるが、代替アプリやスクリプトってないよね。

182:デフォルトの名無しさん
07/01/10 03:09:17
exerbキター

183:デフォルトの名無しさん
07/01/10 21:43:17
VisualuRubyのフォーム作りはFormDesignerが一番楽なのか?
更新止まってるが、代替アプリやスクリプトってないよね。

184:デフォルトの名無しさん
07/01/10 22:38:13
ラクっつか、それしかないんじゃ?
(VBだのDelphiだのみたいに)かゆいとこまでは手が届かないから
細かいとこは結局手でいぢってるけど、おおまかな部分をつくるものだと
おもって、あんまり気にしてないや

185:デフォルトの名無しさん
07/01/10 22:43:50
ごめん。1日遅れの二重投稿してたorz
今気づいて自分の目を疑った。

186:デフォルトの名無しさん
07/01/12 22:16:42
ActiveScriptRubyをアップデートするために1.8.4をアンインストールしたらMS系のアプリがやられた。
.NET FrameWork とかスクリプティングホストで使ってる共用ライブラリも巻き込んでないか?

187:デフォルトの名無しさん
07/01/18 22:59:34
FormDesignerがいよいよ更新再開?
URLリンク(yslab.atnifty.com)

188:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
07/01/19 01:59:27
そーいえば俺も困ったことになった
アップグレードしようとしたらインストーラがInternal Error吐くようになったり。


レジストリの手動削除を試してみるといい
HKEY_CURRENT_USER\Software\Microsoft\Installer\
配下にActiveRubyが作ったエントリがあるからそいつを手動削除

189:デフォルトの名無しさん
07/01/31 01:21:15
rubygemsはもっと高速化できぬものか

190:デフォルトの名無しさん
07/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
07/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


192:デフォルトの名無しさん
07/02/02 02:33:21
早速のお返事ありがとうございます。
しかし、それだとキャプションしか拾えないようですorz

193:・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
07/02/02 02:55:26
ん?

エディットコントロールのハンドルに対してGetWindowTextもしくはWM_GETTEXTやると
テキストを取得する動作になる



194:デフォルトの名無しさん
07/02/02 03:16:22
プロセスが違う場合、共有メモリとかほげほげ

195:デフォルトの名無しさん
07/02/10 11:21:11
win32oleを使ってExcelファイルを読み込むプログラムを高速化したいのですが
どうすれば速くなりますか?
読んだ後は、テキストファイルに書くだけです。

同じような構造のシートを10シート以上読み込むことがあります。
一つのシートは大体、100columns*100rowsより大きなサイズです。
全てのシートを読んだ後、データを整理して望むフォーマットで出力します。

プロファイルを取った結果、読み込んでいる部分が遅いという判断に至りました。
Rubyのバージョンは1.8.5です。

質問なのでageさせていただきます。

196:デフォルトの名無しさん
07/02/10 12:43:16
まずは読み込んで書き出す部分のソースを見ないことには何とも言えない。
コーディングが悪いのか、RubyとCOMの組み合わせの限界なのか。

197:デフォルトの名無しさん
07/02/10 12:44:58
OLEだと遅いよねー。
ODBCに登録してからの呼び出しだとアンマリ変わんないかな。

ヘタレなので元のExcel側でCSV書き出ししてから
rubyで処理するとかしか思いつきません。

198:デフォルトの名無しさん
07/02/10 15:05:49
で、あと何年待ったらパス区切り文字のデフォルトが\にならないバグが改善されるの?

199:デフォルトの名無しさん
07/02/10 22:59:42
バグじゃないから仕様変更の理由を添えて開発陣を説き伏せない限り一生変わりませんが

200:デフォルトの名無しさん
07/02/10 23:16:12
Matzにっきを読むとわかるが、反論の仕方が「~~で十分」なので、言うだけ虚しい。

201:デフォルトの名無しさん
07/02/11 18:28:35
現在、vrubyでランチャーのような物を作っています。

値を入力してボタンをクリックすると
コマンドラインからソフトを立ち上げ、入力フォームを非表示、又は消去したいんです。
何かに対して、Visible = false をするのかなと思うのですがうまくいきません。

MyForm < VRForm という形で宣言しています。

どうぞよろしくお願いします。

202:デフォルトの名無しさん
07/02/11 19:25:56
非表示は、form.visible = false みたいな感じだと思う
vrubyだったらhideとか定義されてたはず

203:201
07/02/11 21:26:08
>>202 ありがとうございます!
さっそくhide = true なぞを試してみます!

204:デフォルトの名無しさん
07/02/11 21:37:42
hide() だよ

205:デフォルトの名無しさん
07/02/12 13:04:12
>>193
>>194
遅くなりましたがありがとうございます。
確かに外部ソフトのeditコントロール内のテキストを拾おうとしています。
ruby+apiだけでは無理でしょうか。
ProgIDも見つからず、どうやらCOMサーバとして使用することは不可能なようです。

やりたいこと
VB(ver.5)で作られた外部ソフトのeditコントロールに入力された文字列を拾いたい。
WinSpectorで調べたクラス名:ThunderRT5TextBox


206:デフォルトの名無しさん
07/02/20 23:29:27
WinXPSP2で
Dir.glob('C:/本/*')だと何も引っかからないが、
Dir.chdir('C:/本');Dir.glob('*')だと正常に読める。
なんで?


207:デフォルトの名無しさん
07/02/21 01:05:31
$KCODEは?


208:デフォルトの名無しさん
07/02/21 02:13:30
>>206,207
SJISIでそ。
「本」の2バイト目が'{'と同じなので、誤判定していると思われ。


209:デフォルトの名無しさん
07/02/21 02:27:00
1.8.6で解決しそうなふいんき(←なぜか変換できない)

210:デフォルトの名無しさん
07/02/21 07:54:30
>>209
> ふいんき(←なぜか変換できない)

このネタいいかげんウザイw

211:デフォルトの名無しさん
07/02/21 17:18:25
206みたいな前世紀的ネタで七転八倒する言語のスレだからな

212:デフォルトの名無しさん
07/02/21 18:18:59
Rubyに限らず文字コードまわりはまだしばらく課題となるだろうが、
今ソース見てるんだけどglobにはダメ文字の対処がないな。

213:デフォルトの名無しさん
07/02/22 01:31:33
>>212
どのソース?

>>209のいうとおり1.8.6で対応したものが入るものだと思うんだけど。


214:デフォルトの名無しさん
07/02/22 01:41:01
>>213
あー、CVS見てた。
もうsvnだもんな。
忘れてた。

215:デフォルトの名無しさん
07/03/05 13:48:16
age

216:デフォルトの名無しさん
07/03/31 01:30:13
>gem install rails

ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
Bad file descriptor - connect(2)(Errno::EBADF)

インストールできないです。
FW全てカット セキュリティ関連ソフトも起動せずにやっても変わりません。
ちなみにプロキシは無い環境です。


217:デフォルトの名無しさん
07/03/31 05:54:09
>>216
何故、誰も見てないここで聞く?

gemの他のコマンドは利く?

 gem search rails --remote

とか

218:デフォルトの名無しさん
07/04/01 21:39:14
>>217
サンクス
他で聞きます。

219:デフォルトの名無しさん
07/05/06 11:40:49
>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


220:デフォルトの名無しさん
07/05/09 13:40:08
>>219
> 私が覚えているrubyに関する変わった作業は、以下の二つです。
> 1)環境変数をさわりpathを通した。
「変わった作業」なのかー。


221:デフォルトの名無しさん
07/05/09 21:58:50
2) は変わってると思った

222:デフォルトの名無しさん
07/06/11 12:15:05
わざわざ、環境変数なんて設定させるなよ、とは思うね

223:デフォルトの名無しさん
07/06/11 16:08:46
デフォルトで/usr/local/binにインストールしろよ、と?

224:デフォルトの名無しさん
07/06/11 16:17:15
Windowsで /usr/local/bin もなにもないだろ

225:デフォルトの名無しさん
07/06/11 22:30:30
オレのマシンにはありますがなにか。

226:デフォルトの名無しさん
07/06/11 23:56:07
>>225
Windowsなのに/なのか。珍しいな。
そういえばRubyの内部でファイルのディレクトリ区切りが"/"なのは気持ち悪い。


227:デフォルトの名無しさん
07/06/12 01:13:37
WindowsでもAPIレベルでは/も使えるからな。
でもそんなお前に Wuby。

228:・∀・)っ-○◎●
07/06/14 00:44:20
AN HTTPDで仮想パス使えるな

229:デフォルトの名無しさん
07/06/28 16:37:49
ruby/GSL 1.9.0をwindowsマシンにいれて、ブイブイ言わしている人いますか?
pathでこけ、makeでこけ、あきらめ気味です...

230:デフォルトの名無しさん
07/06/28 21:22:32
Vista x64 にしたのですが、
x64 用のバイナリってどこかで配布してないですか?

231:デフォルトの名無しさん
07/06/28 21:39:17
>>230
ないと思う。
いまusaさんがtrunk向けに作業中。
URLリンク(blade.nagaokaut.ac.jp)

232:・∀・)っ-○◎●
07/06/29 03:05:34
お荷車がLLP64にまともに対応してないし。

233:デフォルトの名無しさん
07/06/29 14:11:40
>>232
そうなの? 具体的にどの辺が?

234:デフォルトの名無しさん
07/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
07/07/01 00:14:09
すみません。自己解決しました。
libmySQL.dll が x64 バージョンだったので動かなかったっぽいです。


236:・∀・)っ-○◎●
07/07/01 17:49:21
鬼車はね、sizeof (long) == sizeof (void*) きめうちなんだよな。
longが32ビットでポインタが64ビットのWin64(x64)のプログラミングモデルをまともに想定してない。

237:デフォルトの名無しさん
07/07/03 11:14:21
>>236
具体的にはどの辺が?

238:デフォルトの名無しさん
07/07/03 13:21:47
LLP64では、ポインタだけが64ビットになります。int型とlong型は32ビットのままです。

239:デフォルトの名無しさん
07/07/03 13:56:16
>>238
そんなことはこの話についてこれるやつは全員承知してると思う。
鬼車のコード中の sizeof (long) == sizeof (void*) を決め打ちしてるところの例を教えて欲しい。

240:デフォルトの名無しさん
07/07/03 14:21:09
通りがかりですが、話を見て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

241:デフォルトの名無しさん
07/07/03 14:24:22
原因はこれですね
#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)

242:デフォルトの名無しさん
07/07/03 14:28:20
これだけなら影響はなさそうですけどね。
まあサラっと見ただけですが

243:デフォルトの名無しさん
07/07/03 14:59:48
あ、すみません。
私の環境では long が64ビットなので、int の部分しかあぶりだせませんでした。

244:デフォルトの名無しさん
07/07/03 15:05:18
>>241
x64だとPLATFORM_UNALIGNED_WORD_ACCESSがdefineされるから該当コードは存在しない。

245:・∀・)っ-○◎●
07/07/04 22:35:04
怖ぇだろ常識的に考えて

246:デフォルトの名無しさん
07/07/05 00:12:16
ようするに根拠はない、と。

247:デフォルトの名無しさん
07/07/05 00:22:50
ダンゴ使えねぇ~

248:デフォルトの名無しさん
07/07/05 02:37:21
使えないどころか、害悪だな。糞以下。

249:デフォルトの名無しさん
07/07/09 22:35:10
ここ↓から、HTML help for VisualuRuby (JA)というのをダウンロードしたのですが、
何も表示されません。自分の環境が悪い?

Ruby
URLリンク(homepage3.nifty.com)

250:デフォルトの名無しさん
07/07/09 23:41:17
うちも何も表示されません。
HTML Helpの作成ミスでは?


251:デフォルトの名無しさん
07/07/10 10:38:31
うちは出るなあ。

HTML Help Control Version 4.74.9273

252:・∀・)っ-○◎●
07/07/10 21:46:04
>>246
64bitアドレス型から32bit整数へのキャストがある時点で怖い怖い。

253:デフォルトの名無しさん
07/07/11 09:35:08
>>250
やっぱ見れないですか。

>>251
見れる人もいるんだ。

超初心者だからヘルプがないとよく分からない。。。orz

254:デフォルトの名無しさん
07/07/11 14:58:05
>>252
だからどこにあるんだよ

255:デフォルトの名無しさん
07/07/11 17:58:05
Visualu RubyのFormdesignerのヘルプってないですかね?
質問があります。

FormdesignerのEditというコントローラ?、フォームの上に置くテキスト入力
できるやつです。

数字(ポート番号とIPアドレス)を入れるようにしているんですけど、入力制限
したいんですよね。

例えば、ポート番号なら1~65535、IPアドレスなら1~255、という感じに。
どのようにすればいいのでしょうか?

256:デフォルトの名無しさん
07/07/11 21:13:13
win32/config.hをテキトーにx64用に書きなおしてビルドしてみ?
小さい型へのキャストの警告でまくるから。

257:デフォルトの名無しさん
07/07/11 21:33:02
テキトーに書き換えないで真面目にx64版をビルドすりゃいいと思うんだが。

258:デフォルトの名無しさん
07/07/11 21:48:02
試行錯誤しながら何とかできました。
勉強用で、ルータのUPnPを利用してポートを開放するスクリプトを作りました。

自分のバッファローのWHR-G54Sではうまく動作しました。
他のルータでもうまく動作するかの確認をお願いします。

VisualuRubyが動く環境で実行できます。
ファイルは↓です。

URLリンク(www.uploda.org)

”OpenPort.rb”を実行してもらえれば、GUI画面が立ち上がります。

259:デフォルトの名無しさん
07/07/11 21:58:53
config.hの書き換えだけで対応できないからこそ型サイズ決めうちなんだろ。

260:デフォルトの名無しさん
07/07/11 22:24:33
>>252
怖いのはお前の顔面だろカス

261:デフォルトの名無しさん
07/07/11 23:36:01
x64 windows版が既にマージされてるという事実を見るだけで、
明確な根拠を示せない批判が全て無意味になるんだが。
config.hがどうこうとか言ってる奴は書き換え方が悪いんだろ。

262:デフォルトの名無しさん
07/07/12 00:56:11
>>249 ファイルのプロパティに「ブロックの解除」ってボタン無いですか?
解除しないとhtmlhelpがちゃんと開けないようです。

263:デフォルトの名無しさん
07/07/12 08:42:15
>>262
ありがとう。
その通りでした。

264:デフォルトの名無しさん
07/07/14 17:34:15
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


265:デフォルトの名無しさん
07/07/14 17:35:27
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 に処理がこないのです。

266:デフォルトの名無しさん
07/07/14 18:37:47
vrubyはしらんけどdelphiのlistviewにはonmousedownというイベントがあって通常それで拾う。

267:デフォルトの名無しさん
07/07/14 18:39:08
右クリックでlbuttonupが来ると?

268:264-265
07/07/14 18:48:10
レスありがとうございます。

>266
そうですよね。
普通イベントハンドラがデフォルトで定義されているのですが
vruby の VRListview では定義されてないようです。

Spy++でみると、WM_RBUTTONDOWN, WM_RBUTTONUP
などのメッセージは ListView に来てます。

>267
失礼・・。まずは lbuttonup で試してました。
rbuttonup と読み替えてください。
最終的にやりたいことは右クリックを拾う、です。


lv1_dblclicked が呼ばれると、なぜか
lv1_lbuttonup が同時に後から呼ばれていることを発見。

ウィンドウメッセージは ListView に飛んできてるので
おそらくは vruby 側で何か処理を足してやれば
めでたくマウスの右クリックがとれるはずなので
もうちょいがんばってみます。

269:264-265
07/07/14 20:55:07
う~む…;

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 時間かかった~…。

270:デフォルトの名無しさん
07/07/14 20:57:05
なにをごちゃごちゃやってるのか知らんけど
VRubyのリファレンスちゃんと嫁

271:264-265
07/07/14 21:09:06
正しい。
でもリファレンス嫁はちょっと漠然としてて範囲が広くてきっついよ。
ここ見れ、とか、メソッドやクラス名のヒントを
つ[メソッド名]
とかやってくれた方が助かるわー迷ってるんだから;

272:デフォルトの名無しさん
07/07/14 21:43:42
self_rbuttondown

273:264-265
07/07/14 22:59:03
>272
うぉぉ! できた!
rbuttondown(shift, x, y) と lbuttondown(shift, x, y) は、
include VRMouseFeasible でとれた。
(buttonup 系はなぜかとれない)
どうもありがとう!非常に助かりました m(_ _)m

URLリンク(www.osk.3web.ne.jp)
ここにあるのはなんだ~

274:デフォルトの名無しさん
07/07/14 23:24:17
おめでとう

漏れも
>>264-268
見てたときは思い出さなかったんだけど
>>269
の5時間かかった~っていうのを見て
3年ほど前に同じ問題で半日ほどはまったことがあるのを思い出した



275:デフォルトの名無しさん
07/07/16 13:50:21
vruby でウィンドウが閉じるときに呼ばれるような
onClose とか onDestroy ってどこかにありますか?
X ボタンで閉じたときに終了処理をするイベントが拾えなくて
困ってるんですけど、msghandler をいじるしかないのかな?

と思って grep したら
include VRClosingSensitive
して self_close で拾えばいいのか。OK。自己解決。

276:デフォルトの名無しさん
07/08/05 11:49:21
.

277:デフォルトの名無しさん
07/08/19 18:07:24
メモ
font = @screen.factory.newfont("MS Gothic", -13)
self.class::const_set("DEFAULT_FONT", font)
で、デフォルトフォント全変更

278:デフォルトの名無しさん
07/08/25 09:33:44
>>258
試してみたいのですが、すでにうpろだから消えているような。。。

279:デフォルトの名無しさん
07/08/25 09:34:41
>>66
vrubyで画面に出てくるところを動かすときは、GC.disableを一時的にするといいって聞いたことがある。

280:デフォルトの名無しさん
07/08/25 09:58:26
rbnamazuってどこからDLできますか?
本家のダウンロード、リンク切れになってる。
URLリンク(www.namazu.org)
昨夜から探して別のところで0.1を拾えただけ(最新0.4)
ヘルプ!

281:デフォルトの名無しさん
07/08/25 10:25:25
>>278
どもです。
でも、趣味なのでもうプログラミング熱は冷めてしまいましたw

URLリンク(gzm.s201.xrea.com)

282:デフォルトの名無しさん
07/08/25 17:50:24
>>281
ありがとうございます。いただいていきます。
まぁ、自分の勉強のために見たいという気持ちもあるのでっ。

使ってみてですが、「ポート解放失敗」(泣)
プログラミング熱は冷めたとのことですが、Aterm WD701CVでの失敗を報告しておきます。

283:デフォルトの名無しさん
07/08/25 19:12:39
>>282
あらら、失敗しましたかw
いやいや、私もRubyでソフトを作るのはこれが2作目です。
今度はC#をやろうと思い、挫折して、プログラミング熱が冷めましたw

284:デフォルトの名無しさん
07/08/29 04:43:00
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的なやり方って存在しないのですかね?

285:デフォルトの名無しさん
07/08/31 02:21:17
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


かな。

286:デフォルトの名無しさん
07/09/05 16:39:41
FormDesignerだけど、例えばEditコントロールを貼っつけて、
マウスで適当にクリックしたりしてると、
勝手にコントロールの位置がずれたり、
サイズが小さくなったりするんだけど俺だけ?
イライラするのですが回避方法ないでしょうか。

287:デフォルトの名無しさん
07/09/06 07:26:00
俺もそれよくなる。
結局height値を直接打って元に戻すしか方法ないのかね。

VRTabbedPanelで各タブパネルの上でカラー選択ダイアログを直接呼び出そうとするとエラーがでるので

@tab.send_parent2 1,"hoge","clicked"

で親に渡してダイアログを呼び出してるんだけど、取得した色番号を元のパネルのEditに戻したいんだけど
def tab_panel1_hoge_clicked
@tab.panels[1].foo.text = chooseColorDialog.to_s
end
でできなくorz
親から孫を直接指定ってどうやるんですか?



288:デフォルトの名無しさん
07/09/17 21:06:44
それにしても、みんなよくVisualuRuby使う気になれるな
俺はApolloを先に使い始めたから、どうしてもVisualuRubyのAPIに慣れない

機能面の差はそんなにないと思うんだけど
クラスやメソッドの構成に癖があって、非常に扱いづらい……
慣れれば何とかなるのかな

289:デフォルトの名無しさん
07/09/19 03:47:04
>>287
親に渡さなくても直接タブパネルにコモンダイアログを呼び出せばOK
公式マニュアルにはないけど、カラー選択なら
SWin::CommonDialog::chooseColor(nil, 0)
で、出るはず。

>>288
VisualuRubyはexerbで固めるとdllなしのスタンドアロンツールが作れるからなぁ。
(gemとか使うとdllが必要だが)
Apolloは別途Delphiの知識が必要な感じもするし、純粋なGUIプログラムなら大方はDelphiでできるし。
Delphi+Rubyの利点って正規表現をカバーぐらいしか思い浮かばない(無知でごめんよ)

ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。


290:デフォルトの名無しさん
07/09/19 03:59:38
GtkにしたらVisualuRuby使う気なくなった
ごめんよ

291:デフォルトの名無しさん
07/09/19 08:26:46
> ただ、マニュアル面での充実や、Vistaを含めマルチプラットフォームの可能性は断然Apolloだろうね。

Apolloは、Windowsでしか動かないよ
それと、更新されていないApolloは、Vista非対応のはず。(動くことは動くか)
Delphi2007でコンパイルしなおさないといけないと思う

292:デフォルトの名無しさん
07/09/19 09:04:51
コード手書きでGUIとかありえない。
20年前じゃないだからさ。

293:デフォルトの名無しさん
07/09/19 23:43:03
HTMLやTcl/tk(Ruby/tkにあらず)なら手書きでも良いような気がする
要は現状でGUIを書きやすくて充実してるライブラリが無いって話じゃね?

294:289
07/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つだと思うよ。

295:デフォルトの名無しさん
07/09/20 03:52:12
>>294
「断然って言い方」だけじゃなくて、通常そういうのはマルチプラットフォー
ムとはいわんから、用語や日本語の使いかたがマズかったのでは。


296:デフォルトの名無しさん
07/09/21 12:26:42
vrubyとMozilla ActiveX Controlを使ってgeckoエンジンのwebブラウザを作成したいのですが
ACTIVEXCINFOでできますか?

smpleだとIEの例はあるのですが、ACTIVEXCINFOが分からず四苦八苦しているので、どのよ
うに調べれはよいのですか?

297:デフォルトの名無しさん
07/09/23 07:12:54
vrubyってクラシックな視覚スタイルしか作れないのですか?
無いとしたら、今後XP(Luna)やVista(Aero)の対応予定とかありませんか?

# Ruby/TkだとTileを使えばXP風味になりました
# Ruby初心者スレから誘導されてきました

298:デフォルトの名無しさん
07/09/23 09:30:28
>>297
XP風にするだけならvrubyに限らずこの方法でいける
URLリンク(www.lhut32.com)

299:デフォルトの名無しさん
07/09/23 14:04:23
>>296
ACTIVEXCINFO =["Mozilla.Browser","DWebBrowserEvents"]


300:デフォルトの名無しさん
07/09/23 14:10:26
ACTIVEXCINFOは、ものすごく効率が悪いけど soleb
URLリンク(homepage1.nifty.com)
で、それっぽいの(これが難しい)を探せばなんとかなります。



301:デフォルトの名無しさん
07/09/25 03:30:08
>>299
おお、これでサンプルを変更したら動きました。
ありがとうございます。

>>300
効率が悪いとは具体的にどうしてでしょうか?

solebでCOMから扱うとなると、実際にはdllだけではなくMozillaそのものをDLして
埋め込むという感じになると思うのですが、やりたいことはWEBrickでプロキシ通
信したものをgeckoエンジン表示させたいのですが…


302:デフォルトの名無しさん
07/09/26 12:47:16
solebはActiveXコントロールの情報も出ますよ。
ただ、むちゃくちゃイッパイ情報が出るので、
探すのが効率悪い。

303:デフォルトの名無しさん
07/09/26 14:18:57
Windowsで現在実行中のプロセスを列挙したいのですがどうすればいい?

Win32APIのEnumProcessesとかを使うと出るらしいが
使い方がわからん。

使い方をおせーて

304:デフォルトの名無しさん
07/09/26 16:28:48
Windows NT系上での実行を想定してるんですが、
キャラクタセットについて下記の2案だとどっちが良いと思いますか?

案1
・ソースプログラムをUTF8で書く
・Ruby/TkへStringを投げるときはそのまま
・コマンドプロンプトへStringを出力するときはSJISへ変換してやる

案2
・ソースプログラムをSJISで書く
・Ruby/TkへStringを投げるときはUTF8へ変換してやる
・コマンドプロンプトへStringを出力するときはそのまま

305:デフォルトの名無しさん
07/09/26 16:45:47
と思ったけどプログラムコードの先頭で
#! ruby -Ks
って指定してやれば勝手にやってくれるのね・・・

306:デフォルトの名無しさん
07/09/27 06:42:19
>>303
スレリンク(tech板)

307:デフォルトの名無しさん
07/09/30 01:06:07
たぶんActiveScriptRuby1.8.637に更新してからだと思うけど
VisualuRuby使ったプログラムで
定数の再定義警告が出るようになりました。

ただ、Rubyインタプリタで実行したときは
警告されません。
Exerbで作った実行ファイルを実行したときに
警告が出ます。

俺だけなのかなぁ?

308:デフォルトの名無しさん
07/09/30 06:38:02
Ruby/Tkとvrubyを混在させるにはどうしたらいいの?

Tk.mainloop と VRLocalScreen.messageloop を一緒に走らせないとならないっぽいんだけど無理かな?

309:デフォルトの名無しさん
07/09/30 10:32:16
>>307
> VisualuRuby使ったプログラムで
> 定数の再定義警告が出るようになりました。
再現できるソースはない?


310:デフォルトの名無しさん
07/09/30 14:16:05
>>309

test.rb
---
require 'swin'
require 'vr/vrcontrol'
require 'vr/vrdialog'
---
これをrubyインタプリタで実行しても警告は出ない
(-W2オプション付きでも)

(続く)

311:デフォルトの名無しさん
07/09/30 14:23:15
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
---

312:デフォルトの名無しさん
07/09/30 14:26:15
>>311 のレシピファイルを使ってexerbで実行ファイルを作って
それを実行すると
vr/vrcontrol:1217: warning; already initialized constant WM_VSCROLL
などが出る。
(全角スペースでインデントしています。半角に変換して使ってください。)

まあ、エラーじゃないので、特に問題は無いんですけど、
なんか心臓に悪い。

313:デフォルトの名無しさん
07/10/22 17:44:18
URLリンク(www.itmedia.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
URLリンク(itpro.nikkeibp.co.jp)


314:デフォルトの名無しさん
07/10/25 16:07:27
RubyをMac OS Xで使うスレが無いのが寂しい
Ruby/Cocoa使いとか居ない?

315:デフォルトの名無しさん
07/10/25 19:03:14
>>314
"ruby cocoa" site:2ch.net でググると
いくつかのスレで話題になっているようですね。
必要であればスレ立てしてみてはいかがでしょう。

316:デフォルトの名無しさん
07/10/25 19:16:56
RubyCocoaは明日から本番だしな。ちょうどいいんじゃね?

317:デフォルトの名無しさん
07/11/06 01:53:10
URLリンク(img.baguwen.org)

318:デフォルトの名無しさん
07/11/06 06:29:51
これ中国の修行僧が作った道だっけ?

319:デフォルトの名無しさん
07/11/14 01:55:36
ActiveSupportのようにライブラリを動的に読み込むスクリプトを、
exerbで実行ファイル形式にする方法ない?

320:デフォルトの名無しさん
07/11/14 13:17:53
必要なやつを全部レシピに追加しとけば?


321:デフォルトの名無しさん
07/11/15 01:31:37
便乗質問なのですが、hpricotっていうライブラリはc言語をコンパイルしたものが
含まれているって聞いたのですがそういうのもexerbに取り込むことが出来るのでしょうか。



322:デフォルトの名無しさん
07/11/16 00:52:44
>321
全然オッケー

323:デフォルトの名無しさん
07/11/29 11:10:51
"Adding Ruby to the .NET stable of languages and unlocking .NET to Ruby programmers."
URLリンク(rubydotnet.googlegroups.com)

Breaking News! (20th November 2007)
Ruby.NET version 0.9 has just been released

324:デフォルトの名無しさん
07/11/30 13:33:37
Windows における Ruby 開発環境の構築
URLリンク(taylor.gotdns.org)

325:デフォルトの名無しさん
07/11/30 13:50:52
>>323
とりあえず、VS2005ProにVS2005SDKとRuby.NET、VSRuby.NETをインストールしても、
VSに統合されなかったということだけは報告しておこう。


326:デフォルトの名無しさん
07/11/30 14:38:55
>>325
スタート > すべてのプログラム > Ruby.NET > Visual Studio (for Ruby)

327:デフォルトの名無しさん
07/11/30 16:27:44
>>326
おお、動いた。ありがとう。
とりあえず、Windowsアプリケーションで、ButtonとListboxをFormに貼り付けて
Clickイベントを書いたら動いた!
(大文字小文字をちゃんとしないといけないんだね・・・)

def button1_Click(sender,e)
  listBox1.Items.Add(Time.now.to_s)
end

だが、ビルドもプロジェクトの保存もできない・・・。
休みの間にドキュメント読もう。

328:デフォルトの名無しさん
07/11/30 20:37:39
俺も使えた。
でも、インテリセンスが効かないのが最悪。しかも大文字小文字を区別するし。

329:デフォルトの名無しさん
07/12/04 12:16:28
>>328
> しかも大文字小文字を区別するし。
Ruby用のIDEで区別しなかったら使いものにならんだろ。


330:デフォルトの名無しさん
07/12/04 12:48:32
>>329
.NETのメソッドヤプロパティが全てcase sensitiveなのは使いづらい。

331:デフォルトの名無しさん
07/12/04 14:59:27
>>330
Ruby.NET的にはそういうのはどうなんの?
大文字のと小文字のメソッドが全部定義されてる?


332:デフォルトの名無しさん
07/12/04 15:01:16
>>331
定義されていない。
いちいちAdditemなのかAddItemなのかを調べる必要がある。

333:デフォルトの名無しさん
07/12/04 16:45:30
え、インテリセンス使いまくりな俺には厳しい仕様だなー

334:デフォルトの名無しさん
07/12/04 22:55:31
>>332
> 定義されていない。
てことはmethod_missing使って呼び出す?

335:デフォルトの名無しさん
07/12/07 01:21:38
>>310 を書いた者ですが、
vr/vruby: などと書いているところを
vr/vruby.rb: というように拡張子まで含めて書くと
警告が出なくなりました。

というか、何で含めて書かなかったのだろう。
んー。

336:デフォルトの名無しさん
07/12/07 12:34:35
Rubyist Magazine出張版 Ruby on Windows
URLリンク(www.amazon.co.jp)

337:デフォルトの名無しさん
07/12/07 20:52:08
(追記) 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 で
ビルドされているため、人に配布するためのバイナリを作るのであれば
このどちらかを使うべき、ということになります。

URLリンク(www.kmc.gr.jp)

338:デフォルトの名無しさん
07/12/07 21:11:39
>>337
それがどうかしたか?

339:デフォルトの名無しさん
07/12/09 23:33:10
>>337
VC7とVC8間も互換性ないからな。
VC9も同様。


340:デフォルトの名無しさん
07/12/10 03:26:16
>>339
VC8 なんてSPのあるなしでも互換性がないんじゃなかったっけ?


341:デフォルトの名無しさん
07/12/10 10:55:26
>>340
ない。

342:デフォルトの名無しさん
07/12/10 16:10:11
Ruby+vruby+exerbで最適な画像処理用ライブラリって何でしょうか。
jpgを読みこんで、パレットをいじったりして、bmpで出力したいのですが。。。

343:デフォルトの名無しさん
07/12/11 19:33:35
>>342
rcairoかrmagick

344:デフォルトの名無しさん
07/12/11 21:52:43
>>337-339
知らんかった
DLL化された拡張ライブラリの話しだよね?

困るかも

345:デフォルトの名無しさん
07/12/12 13:21:49
>>344
文句があるならMicrosoftへ。

346:デフォルトの名無しさん
07/12/13 22:30:40
URLリンク(www.garbagecollect.jp)

>_ なんかいろいろ言ってる間に[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に行ってみる?

347:デフォルトの名無しさん
07/12/18 20:15:52
Cで拡張ライブラリを書いたときに、拡張ライブラリから関数ポインタを返してRuby側でその関数を実行するにはどうしたらいいですか。


348:デフォルトの名無しさん
07/12/18 20:59:03
そんなことよりモジュール関数にするとか

349:デフォルトの名無しさん
07/12/19 01:37:03
関数ポインタをRuby上で表現できるようなクラスを書くしかないと思うけど。
でも結局DLの車輪の再発明のような気がする。

350:デフォルトの名無しさん
07/12/19 07:50:10
>>348>>349
つまり直関数ポインタそのものを渡してもRuby側で実行できなくて、
たとえば拡張ライブラリを以下のようにするしかないってことですか。

//これをRuby側で実行したい。
hoge (*pf)(hage x);

//これをエクスポートしてRuby側で使う。
hoge f(hage x)
{
 if(pf)return pf(x);
else return moge;
}

351:デフォルトの名無しさん
07/12/19 08:08:29
拡張ライブラリの作り方くらい読めよ

352:デフォルトの名無しさん
07/12/19 13:37:13
>>350
そもそも、どうして関数ポインタをRuby上で扱いたいの?

353:デフォルトの名無しさん
07/12/19 13:40:16
関数ポインタをシェルスクリプトに返しても呼べないが如し

354:350
07/12/19 18:16:05
レスありがとうございます。

>>351
>>350のソースはSWIGにかけてからdllを生成するつもりだったんですが、その点を書くのを忘れました。ごめんなさい。

>>352
どうして関数ポインタをRuby上で扱いたいかというと、既存のC++のクラスに関数ポインタのメンバがあって、
それをRubyでも使いたかったんです。

>>353
関数ポインタは使えないのですね。
とりあえずC++のソースの追加は必要ですが、>>350のようにやればRubyでも使えるようになると思っているので
それでやって見ます。もっと楽な方法があったら教えてください。



355:デフォルトの名無しさん
07/12/19 20:31:50
Windowsだったらsuikyoってゆーローマ字変換ライブラリは使えませんか??

356:350
07/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:デフォルトの名無しさん
07/12/26 04:18:49
$LIB_PATH には、./は入るんじゃなかったけ?
$SAFEが1以上なら、入らんみたいだが・・・

358:デフォルトの名無しさん
07/12/26 04:19:21
とりあえず、プロンプトで、これどうなります?
$ ruby -e 'puts $:'

359:350
07/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
.

360:デフォルトの名無しさん
07/12/27 01:06:46
ちゃんと、最後に、 ". "が入っているから、
上手くいくはずなんだがな・・・

361:デフォルトの名無しさん
07/12/27 05:29:34
ファイルが見つからないんじゃなくて、mytest.soをDLLとしてロードできない何らかの理由があるんじゃないかな。
Init_mytestという関数がないとか、mytest.soが依存している他のDLLが動的リンクできないとか。

362:デフォルトの名無しさん
07/12/27 09:08:01
>>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です。

363:350=362
07/12/27 10:19:06
とりあえず
%module MyTest
のところを
%module mytest
にすると上手くいくようです。
モジュール名は大文字で始めなければいけないという先入観がありました。


364:デフォルトの名無しさん
07/12/27 22:15:16
URLリンク(arton.no-ip.info)

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
再配布もご自由にどうぞ。
なお、アンインストールには信じられないくらいの時間がかかります。

365:デフォルトの名無しさん
07/12/27 22:23:10
ゴルビーってなんやねん

366:デフォルトの名無しさん
07/12/28 04:49:31
俺は全然まとはずれな、答えしてたのね orz

DLLの中美香

367:デフォルトの名無しさん
07/12/30 01:40:29
artonさんとこのインスコして
うきうきわくわく

ruby -e "t=Time.now; 100000.times{}; puts Time.now - t"

ってやったら
1.8の方が速かった

しょぼーん(´・ω・`)

368:デフォルトの名無しさん
07/12/30 03:51:52
どういうベンチなんだそれは・・・

369:デフォルトの名無しさん
07/12/30 14:07:39
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)

370:デフォルトの名無しさん
07/12/30 14:10:17
まちごうた
require 'benchmark'
puts `ruby -v`
puts Benchmark::CAPTION
puts Benchmark.measure { "a"*100_000_000 }

371:デフォルトの名無しさん
07/12/31 07:38:09
>>368は、詳細をだせ、と言っているのではなく、
たぶん、それはベンチになっていないといいたいのでは?

372:デフォルトの名無しさん
07/12/31 12:21:56
1.9のほうが遅い=ベンチになってない(Ruby脳)

373:デフォルトの名無しさん
07/12/31 18:05:45
ActiveTcl8.5も出てたのか

374:デフォルトの名無しさん
08/01/02 20:16:04
何十個かの言語のベンチを比較するページがどっかにあったけど、
あれ試せばいいんじゃね?

375:デフォルトの名無しさん
08/01/03 09:38:43
RubyオセロをCOM同士で戦わせるベンチみたいなのはねーの?

376:デフォルトの名無しさん
08/01/09 19:38:07
Rubyスクリプトから、ファイルを関連付けられてるアプリで開くにはどうすりゃよいですか?

377:デフォルトの名無しさん
08/01/09 19:56:08
変数fileにファイル名が入ってるとして、

system("start #{file}")

378:デフォルトの名無しさん
08/01/09 19:57:45
Win32APIのShellExecuteを呼ぶ

379:デフォルトの名無しさん
08/01/09 20:24:41
>>377-378 thx
ShellExecuteで解決しました
ただ、反応しないファイル(assoc .extで関連付けが確認できないもの?)があるのですが
それらの対策ってできます?

380:デフォルトの名無しさん
08/01/09 20:32:13
戻り値が32未満ならエラーだからさらにその意味を調べて分岐すればいい。
たぶんこれ
SE_ERR_ASSOCINCOMPLETE = 27;
詳細はググレカス

381:デフォルトの名無しさん
08/01/09 21:16:19
zipを渡して戻り値SE_ERR_NOASSOC
関連付け設定しなおして再起動してもうまくいかず
試しに
system("cmd /c \"#{zipfile}\"")
だったらうまくいったり
他のPCだったら無問題だったので、自分の環境がおかしいということで
めんどくさいので解決ということにしました
指南どうもありがとう

382:デフォルトの名無しさん
08/01/11 15:55:04
/\s/ =~ zipfile

383:デフォルトの名無しさん
08/01/13 15:37:53
RubyでUSBカメラ2台以上のリアルタイム映像を取り込みたいのですが、
ふさわしいライブラリは何ですか?
用途はwindowsでの3次元画像処理です。

ここからは有ればいいなという程度の希望です。
今のところ、機能性と安定性の両方を考えると、Pure Rubyよりもラッパー系が良いかと考えています。
ラップされた方のライブラリがカメラに対応していて、なおかつラッパーが完成しているようなものが一番いいです。


384:デフォルトの名無しさん
08/01/14 17:40:17
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

385:デフォルトの名無しさん
08/01/14 18:10:03
include VRTimerFeasible をclass定義内に

386:デフォルトの名無しさん
08/01/14 19:55:36
> 用途はwindowsでの3次元画像処理です。

あきらかに、Rubyの用途じゃない

387:デフォルトの名無しさん
08/01/14 21:51:55
>>385
できました。どうもありがとう!

388:384
08/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

389:デフォルトの名無しさん
08/01/15 01:37:39
sleepんとこの処理をスレッドにするとかそういう話?

390:デフォルトの名無しさん
08/01/15 10:46:47
WinグラマならPowerShell使おうぜ

6ヶ月以内にアクセスされなかったファイルを削除するサンプル
Get-ChildItem | Where-Object {$_.LastWriteTime -lt (Get-Date).AddMonths(-6)} | ForEach-Object {$_.Delete()}

もうRubyいらないね\(^o^)/

391:デフォルトの名無しさん
08/01/15 11:55:49
LastWriteTimeが最終アクセス時間なのか?


392:デフォルトの名無しさん
08/01/15 21:18:26
>>390
PowerShellのリファレンスマニュアルどこよ?
文法とか仕様とか標準ライブラリとか。
Rubyのリファレンスマニュアルレベルの物で良いからどこにあるのか教えてくれ。
俺はそれが見付からなくてやめた。

393:デフォルトの名無しさん
08/01/16 10:24:08
URLリンク(www.atmarkit.co.jp)

スレリンク(win板)


394:350
08/01/16 19:56:40
たびたびすいません。350です。
また教えてください。

SWIGでRuby拡張ライブラリを作っています。
関数の引数にポインタを渡してそれ、を介して値を返す場合typemaps.iに定義されているOUTPUTが使えるそうなのですが、
クラスのメンバ関数だと上手くいきません。
クラスのメンバ関数をtypemapにマッチさせるにはどうしたらいいでしょうか。


395:350
08/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
08/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
08/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

398:デフォルトの名無しさん
08/01/19 21:52:13
ActiveScriptRubyの1.9.0はでないのかな
それとも1.9.1待ち?


399:デフォルトの名無しさん
08/01/21 02:00:32
ActiveScriptRubyはヤル気あるのか?
1年以上放置してんじゃねーよ。

400:デフォルトの名無しさん
08/01/21 02:03:58
枯れてるんなら余計なことはしなくていいよ

401:デフォルトの名無しさん
08/01/21 22:16:55
どうして欲しいのか言わないと
伝わらないよ。

402:デフォルトの名無しさん
08/01/21 22:17:42
1.9.0に対応してほしい。

403:デフォルトの名無しさん
08/01/21 22:18:59
迷走してるから無理

404:デフォルトの名無しさん
08/01/21 22:49:34
vcで作った拡張ライブラリのバイナリ配布って無理?mscr80になっちゃうでしょ
配布されてるやつはmscrt版だし
ここら辺はわかってる人同士の話しかないのでエンドユーザーには大変だな

405:デフォルトの名無しさん
08/01/21 23:44:45
>>404
そういや、この辺まとめてあるページってないのかな?

gemとかで配布する、Win32用の拡張ライブラリ(DLL)のランタイム回りどうすればいいのという

406:デフォルトの名無しさん
08/01/22 09:47:31
>>404
vが抜けてるあたりで君がわかってなさそうだということは伝わった。

>>405
gemで配布するのはどうすればいいんだろうね。
MinGW版向けということでmsvcrtが無難という気はするが。

407:デフォルトの名無しさん
08/01/22 19:56:48
Ruby初心者です。環境はWindowsXP2とActiveScriptRubyで、
EmEditorから .rbを呼び出して使いたいのです。
開いているテキトスファイルに、.rbでの内容(主に文字列の置換)を適用するのが
主な目的です。Emのヘルプにはサンプルとして、

 #language = "RubyScript"
 Window.document.write( "Hello!" );

と書かれており、これはちゃんと Hello! と書き込まれるのですが、

 #language = "RubyScript"
 puts へのへのもへじ

と書くと「Bad file descriptor 」と出てきます。
ActiveScriptRubyを入れれば、
そのまま .rbファイルが読み込めるというわけではないのでしょうか?
さっぱりわかりません。

初心者過ぎてどこでおかしくなっているのかすら判らず立ち往生しています。
どうか問題点と解決策を御教示ください。お願いします。

408:デフォルトの名無しさん
08/01/22 20:20:36
上の

puts へのへのもへじ

は、

puts 'へのへのもへじ'

の間違いでした。すみません。


409:デフォルトの名無しさん
08/01/22 21:02:30
ActiveScriptRuby も EmEditor も使ってないけど
puts の出力先は Window.document ではないって事だろ
エディタのテキスト編集したいなら Window.document いじれ

410:デフォルトの名無しさん
08/01/25 22:22:35
ActiveTcl8.5に対応したtcltklib.soはないんかい

411:デフォルトの名無しさん
08/01/27 10:19:59
vrubyについて聞きたいのですが、
VRForm上に配置した特定のVRButtonのクリックをReturnキーで
行うにはどうすればいいのでしょうか?

412:デフォルトの名無しさん
08/01/27 12:39:34
VBDefaultButton


413:411
08/01/27 22:09:22
>>412
すみません、VisualRubyリファレンスで探しても、
vrubyのソース内をgrepしても、
vrubyとの組み合わせでググっても、
VBDefaultButtonは出てきませんでした。

VBicと関係あるのでしょうか?
お手数ですが、具体的な使い方を教えていただけないでしょうか?

414:デフォルトの名無しさん
08/01/28 02:15:13
class VRDefaultButton < VRButton
def construct
super
self.stype |= BS_DEFAULTPUSHBUTTON
end


415:デフォルトの名無しさん
08/01/28 21:49:17
>>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


416:デフォルトの名無しさん
08/02/01 07:24:38
include VRKeyFeasible

ちなみに色んな意味でVirualRubyは腐ってるから
本気でGUI検討してるならwxRubyの方がお勧め


417:デフォルトの名無しさん
08/02/02 07:20:53
指定したファイルが
隠しファイル属性を持ってるか
調べるにはどうすれば良いですか?

ASR使えば出来るのかな…?
Ruby標準の機能で出来るならソレが一番良いのですけど

418:デフォルトの名無しさん
08/02/02 07:39:06
Win32Utils の win32/file

419:デフォルトの名無しさん
08/02/03 22:30:29
>418
ああ、組み込み機能では出来なくとも、それでいけるのか。さんくす。

420:デフォルトの名無しさん
08/02/06 23:10:08
是非ともWin32::APIを標準ライブラリに!

421:デフォルトの名無しさん
08/02/07 12:13:03

激しくスレ違いかもしれませんが、質問です。

PCゲームを多重起動しようと試みたのですがダメでした。
大抵のゲームはWindowsのアカウントを2つ作成し、別々のアカウントで起動すれば問題ありません。

現在、Vistaを使っているのでXPではどうなるかはわかりませんが(XPは右クリックから別ユーザーで起動が可能)、
Vistaでその手法をとる場合、runasコマンドを使用することになります。
しかしこのコマンドで別々に起動しても、後から起動したほうが無効になってしまいました。

で、ここからがわけわかめなのですが、同一のデスクトップからの起動はダメでも、
Windowメニュー→ユーザー切り替えをし、別々に起動すればうまくいきました。

この違いはいったいなんなのでしょうか?
 

422:デフォルトの名無しさん
08/02/07 12:56:48
なんの誤爆だよ

423:デフォルトの名無しさん
08/02/07 22:18:45
>>421
はい誘導~
スレリンク(tech板)

424:デフォルトの名無しさん
08/02/28 20:18:35
なんか書け

425:デフォルトの名無しさん
08/02/28 21:09:57
なんかっつっても1.9.0でないしな


426:デフォルトの名無しさん
08/03/01 17:58:28
いや、1.9.0-0は出てたろ。
1.9.0-1も出たし。

427:デフォルトの名無しさん
08/03/01 20:24:17
win32oleはユニコードに対応しないのか

428:デフォルトの名無しさん
08/03/02 06:24:41
出てないのは、このスレのサブタイ ActiveScript Rubyの事ね


429:デフォルトの名無しさん
08/03/10 23:27:52
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)
とか言われてしまうぜ どーしたらいいんだ…

430:デフォルトの名無しさん
08/03/11 12:01:16
>>429
C:/Program Files/ruby-1.8/lib/ruby/gems/1.8/specifications
などもいるんじゃないかな、と適当なことを書いてみる。

431:デフォルトの名無しさん
08/03/11 23:46:05
>>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


432:デフォルトの名無しさん
08/03/13 07:29:37
たぶんgemとexerbはかなり相性悪い…
というかどちらもrequireを上書きするから同時に使うのはほぼ無理じゃないかな

面倒だが一番すっきり解決する方法はgemを使わずにライブラリをインストールすること
それが困るならmkexyの時にrubygemsをrequireせずに、
gemがインストールされているディレクトリを-Iで指定してrequireすること
あとはmkexyを使わずに自分でレシピファイルを書く方法もあるな

433:デフォルトの名無しさん
08/03/13 22:10:56
>>432
ActiveRecordとActiveSupportをgemんとこから引っこ抜いてきて、
requireしてるとこやらなにやらぶっ殺して回ったらとりあえず動くexeが作れたよ!
さんきゅべりまっち!
なんかスマートに片付いた感じがしないけど!

434:デフォルトの名無しさん
08/03/15 12:14:00
Windows特化fork URLリンク(www.sapphire-lang.org)
"Better overall management"ってのが笑えるけどな。

435:デフォルトの名無しさん
08/03/15 23:34:57
再発した…

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

436:デフォルトの名無しさん
08/03/16 00:25:44
関係ないかもしれんがwxRuby2はそのままではexerb化しても上手くいかない
wx.rbにwx/classes/*.rbを実行時に列挙してrequireしてるところがあるから
そこを書き換えるんだ

437:デフォルトの名無しさん
08/03/16 00:52:33
>>436
GUI部分だけだとExerbでExe化できてるのよ…
wx.rb見てみたけど、相対パス作ってrequireしてるだけっぽいから大丈夫っぽくない?ダメなの?

そして全部展開してみてやってみたけど結果変わらずだった…

438:デフォルトの名無しさん
08/03/16 17:46:18
とりあえず、rubyでGUIでコンパイルが条件ならruby2exeで代用してみれば?
ただ、起動が激重になるけどね。

439:デフォルトの名無しさん
08/03/16 20:55:50
>>438
rubyscript2exeやってみたよ!
wxRubyでxrcファイルを上手く取り込めない
wxruby2.soがエラー吐いてるっぽかったからどうしようもない気がした

しょうがないからGUIを自力でソース上に書いてまとめたらとりあえず動くようになった!

でも起動してもコマンドプロンプトが出ちゃってダサい
URLリンク(www.erikveen.dds.nl)
みて --rubyscript2exe-rubyw 指定すると出なくなるけどActiveRecord使うらへんで落ちてるっぽいからもう気にしないことにした

そしてご指摘の通り起動が激重で泣ける orz
俺のマシンだと5秒くらいだけど古いノートパソコンでやると30秒以上余裕でかかるし…

440:デフォルトの名無しさん
08/04/01 09:47:19
wxRubyって既存のコントロールの描画をカスタマイズして使用したりする用途は不向き?
ListCtrlのアイテムのフォーカス枠が見えにくいんで描画をカスタマイズしようとしたけど
ListCtrlのSizeとかRectを得る系のメソッドがことごとく未実装だった・・・


441:デフォルトの名無しさん
08/04/01 22:28:40
不向きということもないとは思うが、
あまり使われないようなメソッドはまだまだ実装されていないのが多い
自分で実装してパッチ投げると皆幸せ

442:デフォルトの名無しさん
08/04/03 10:13:37
そこまでのハッキング力はないのでevt_paintを丸々処理して解決してたんだけど、
get_itemでカラムのテキストが取得できないっぽいのでもうコントロール自体を
自作したほうが早そうだ・・・

なんか本家のwxWidgetsでも既存コントロールのカスタム描画は
難がありそうな感じがする

443:デフォルトの名無しさん
08/04/03 21:38:06
既存コントロールは結局ベースの実装によって変わっちゃうからなぁ
拡張は難しいかもな

444:デフォルトの名無しさん
08/04/22 00:53:04
なんかFrameにSizerくっつけると普通にSizer使えるけど
WindowにSizerくっつけるとまったく動かない。
なんかいろいろいじってもうまく行かないのでここで質問しようと思ったけど
ちょっと本家で試してみる。

445:デフォルトの名無しさん
08/04/22 00:53:27
444ゲット!

446:デフォルトの名無しさん
08/06/16 00:34:15
るりまのchmがいけてないのが心配でならない

447:デフォルトの名無しさん
08/06/16 09:47:47
正直読みづらいよなアレ

448:デフォルトの名無しさん
08/06/16 11:51:27
>>446-447
もう少し具体的に教えてほしいな。
もっと使いやすくなるかもよ?


449:デフォルトの名無しさん
08/06/16 19:21:10
そもそもバグトラッカー止まってるのにどこに言えば……
と思ってたら、いつの間にか復活していたのか

>>448
・目次上で、あらゆる種類の標準クラスが「標準ライブラリ」の項へフラットに突っ込まれてるところ
・目次上で、あらゆる種類の添付ライブラリがフラットに突っ込まれてるところ

あとは多分慣れの問題

450:デフォルトの名無しさん
08/06/16 19:53:09
るりまは、いちいちメソッドのページにいかないと詳細を見られないのがめんどくさい

451:デフォルトの名無しさん
08/06/16 19:54:54
前のchmファイルみたいに、
・標準クラスは継承の階層にしてほしい
・標準添付ライブラリはジャンル別にまとめてほしい
ってことか? なら完全に同意。

Refe2のデータベースからまんま作るからだと思うけど、標準クラスライブラリが辞書順でソートされてても
あんま嬉しくないんだよな。検索できるし。

452:デフォルトの名無しさん
08/06/20 18:25:55
URLリンク(jp.rubyist.net)

453:デフォルトの名無しさん
08/06/21 02:02:38
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:デフォルトの名無しさん
08/06/21 02:11:09
453追記
Ruby/MySQLのバージョンは0.2.6です

455:453
08/06/22 03:34:24
まだ完全ではないのですが、ほぼ解決できてきました。
ライブラリ中で関数の呼び出し方に誤りがあり、そのためでした。
公開当時と少し変わったのかもしれないですね。
とりあえず接続までうまく行きましたm(_ _)m

456:デフォルトの名無しさん
08/06/25 15:29:39
1.8.7(p22)

457:デフォルトの名無しさん
08/06/27 20:26:33
readlineってどうやってビルドすんの?


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch