自動化ツールuwsc使い ..
[2ch|▼Menu]
596:名無しさん@お腹いっぱい。
08/12/24 13:05:48 88yr3KPZ0
>>587
それはDOMのリファレンス

InternetExplorer Object
URLリンク(msdn.microsoft.com)(VS.85).aspx

Navigate Method (InternetExplorer, WebBrowser)
URLリンク(msdn.microsoft.com)(VS.85).aspx

597:581
08/12/24 14:34:18 WYMCwj1+0
催促してすみませんがどなたか>>581の検討をお願いします・・・

598:名無しさん@お腹いっぱい。
08/12/24 14:36:29 oeZ+m6aE0
>>581
判定して何がしたいのかを書いた方がいいんじゃないか?
もっと手っ取り早い方法があるかもしれないし

599:名無しさん@お腹いっぱい。
08/12/24 15:50:58 hM8Rz4el0
>>肝心の判定部分で画像が一致してないと出てしまいます。
大半の原因は本当に『違う画像だから』だと思うよ。
1ピクセルでも似たような色でも駄目だからな。

この画像とこの画像は完全に一致しているはず、っていうbmpをみせてみな
処理のテストにはダミーデータが必要で効率的だ。

600:名無しさん@お腹いっぱい。
08/12/24 16:33:21 fqreGDGn0
>>581
何度かサンプルをとってみる。
んで、ペイントに2回重ねてイメージを貼り付けてみる。
ファイルからのドラッグじゃなく、ペイントの別窓で全体を選択してイメージをクリップボードでね。
そうするとCtrl+Zで前のイメージに戻るけど、繰り返してみれば違うところが見える。
目で見て分かるほどの違いならそれでチェックできる。


601:581
08/12/24 22:46:46 WYMCwj1+0
皆さんレスありがとうございます。
催促してしまって申し訳ありません・・・

>>598
すみません。確かにそうですね。
えーと・・・とあるサイトで、ページを更新すると、極稀に画像が挿入されるというページがあって
その画像が挿入された時に、自動的に画像をクリックするというようなことがしたいのです。
なので一致してるかどうか判断するというより、一致しないかどうかが大事なんですけど
一致してる時まで一致してないと出ると意味がないので、先にそちらのテストからやってるという状態です

>>599
>1ピクセルでも似たような色でも駄目だからな。
そうだったんですか〜・・・
でも比較する画像と言うのは
更新もしていない全く同じ画面でキャプチャした2つの画像なのですけど
それで画像データの内容が変わるようなことはありえるのでしょうか??

>この画像とこの画像は完全に一致しているはず、っていうbmpをみせてみな
例えば今現在書き込んでいるこのページで連続でSSを2枚撮ったとして
その2枚は確実に一致してるはずですよね?

>>600
上記の通り同じ画面でキャプチャした画像同士なので
いわばコピー同士のはずなのですが
その方法で一度試してみます!ありがとうございます^^

602:名無しさん@お腹いっぱい。
08/12/24 23:04:36 wRGSCYG80
ページが同一かどうかじゃなくてたった画像一つの話なんじゃん。大違いだろ…
どうしてそう見当違いの話にすり替えられるのか


603:名無しさん@お腹いっぱい。
08/12/24 23:05:14 jq0ous7H0
やましい事があるからだろ

604:名無しさん@お腹いっぱい。
08/12/24 23:29:44 PQKwVK+U0
範囲指定のミスや狭すぎたり広すぎたりすると拾えないこともある。
全体を見ないと何とも言えない。

605:名無しさん@お腹いっぱい。
08/12/24 23:30:39 1MnOXdsv0
UWSCでMixmaster(オンラインゲーム)で自動狩りしたいのですが
設定方法など教えてください・・。

606:名無しさん@お腹いっぱい。
08/12/24 23:34:03 MPq7rWr60
設定はUWSC起動させて5つあるボタンのうち一番右のボタンクリックしたらメニューが出るから
その中にある設定ってのクリックすれば出来るよ

607:名無しさん@お腹いっぱい。
08/12/25 00:15:01 0laQMG7O0
>>601
それだったら単にソース見て画像あるかないか確認するだけでいいんじゃ・・・


608:名無しさん@お腹いっぱい。
08/12/25 12:33:48 PaM73P2v0
606 :Mixmasterのファイルを選択すればいいのでしょうか?
ゲーム内でキャラクターが移動しないしモンスターにも攻撃できません・・・。
矢印だけ動くだけでキャラクター自体が動きません。

609:名無しさん@お腹いっぱい。
08/12/25 16:38:47 4fEIBmh1O
ゲームの自動化はチート扱いの場合が多い。
そのため、ゲーム側で防止プログラムを組んでいる事がほとんどだ。
諦めるのが良いよ。

それでも諦めないなら、職業プログラマに勝てる知識が必要だな。
それを教えるのはこのスレでは荷が重い。
何万回やり取りするのか…


610:名無しさん@お腹いっぱい。
08/12/25 17:07:51 FFzSYmfk0
クリックだけ自分ですれば半自動じゃん!!
おれすげぇ。

611:名無しさん@お腹いっぱい。
08/12/26 06:47:51 blavN2Ku0
マウスホイール回転を検知する関数とか無いですか?
GETKEYSTATEでやろうとしたらダメですた

612:名無しさん@お腹いっぱい。
08/12/26 07:03:06 407rk+Q/0
無い

613:名無しさん@お腹いっぱい。
08/12/26 10:04:35 dhcbSjOT0
>>611
フックしないとミリ

614:611
08/12/27 13:50:53 a1ud09nq0
やっぱ無いのか・・・
ありがとうです

615:名無しさん@お腹いっぱい。
08/12/29 11:52:44 oDF873NO0
「WOLF RPGエディター」とは? 
・高度なRPG開発が可能な、完全無料のゲーム作成ツールです。
・製作者はなんと「モノリスフィア」やツクール2000で「シルフェイド幻想譚」などを製作した
 SmokingWOLF氏だよ。
・雰囲気はRPGツクール2000に近い。RPGツクール2000で自作システムを作りこむ際に
 不満だったところがいろいろ解消されていて、かなり自由度が高いです。ただし
 その分初心者には難しいかも。すでにツクール2000で自作システムを組むのに
 慣れた人やRPGツクールでは物足りないけどプログラミングはちょっとという方にお勧め。
・作成したゲームは自由に配布したり、コンテストに投稿することも可能。
 また本ソフトを持たない人でもプレイ可能!ファイル暗号化も完備してるよ!
・要望、不満点、バグ報告などなど書き込みお願いします。今もどんどん進化中です。
・それとマップやキャラなどのドット素材もじゃんじゃん募集中ですので
 一度サイトにお越しくださいませ。
・このツールで作ったゲームをサイトで紹介してるから、ダウンロードしてどういう
 ゲームが作れるのか見てみてね。

2ちゃん本スレ
スレリンク(gamedev板)l100


616:名無しさん@お腹いっぱい。
09/01/01 19:29:41 I3qjVRit0
自動化関連で AutoIt もこのスレでよいのでしょうか?

617:名無しさん@お腹いっぱい。
09/01/01 19:34:15 Fg81q2l00
>>616
スレタイを100回読み直せ
それでも分からなかったらもう100回読み直せ

618:名無しさん@お腹いっぱい。
09/01/01 21:08:56 I3qjVRit0
>>2 にあったのか。ここで扱ってもいいのね。サンクス

619:名無しさん@お腹いっぱい。
09/01/01 21:53:59 I1XCmHmc0
Whileで繰り返しの作業を行っています
何回繰り返したのか最後にprintしてるんですけど
なぜだかわかりませんが
いつも200回でカウンターが0に戻ります
formatというのでなんとかなるような気がするんですけど
ヘルプの例ではわかりません><
どなたかカウンターが0に戻らない方法教えてください

x = 1
While x < 20000000
〜作業〜
print x + "回終了しました<#CR>"
x = x + 1
Wend


620:名無しさん@お腹いっぱい。
09/01/01 22:32:08 I1XCmHmc0
>>619です
私の勘違いでしたすいません
プリント窓のバッファの関係なのかもしれないですが
200回過ぎたところでガクンッって感じで1回目と表示されたんです
作業を止めてプリント窓を確認したところ
下のほうにはちゃんと201回目、202回目とカウントされていました
作業させながらプリント窓を確認していたので勘違いしていました
>>619の質問は取り消します
すいません

621:名無しさん@お腹いっぱい。
09/01/02 02:15:23 ZsBa6Dj30
ID:I3qjVRit0
ここにも冬休みの影響が..

622:名無しさん@お腹いっぱい。
09/01/02 16:36:20 rpkNn+AP0
おなじXPなのに、違うパソコンで自動で馬券を買おうとしたら
「指数計算ができません」というコメントが出ます。
どこが原因なのでしょうか?
よろしくお願いします。

623:名無しさん@お腹いっぱい。
09/01/02 16:37:21 14Asm42R0
>>622
君の頭

624:名無しさん@お腹いっぱい。
09/01/02 16:47:10 rpkNn+AP0
まじめな回答をお願いします。
ちなみに画面は32bit→16bitに変更済みで
KB927489という2004対応フォントは見当たりませんでした。
困っていますのでよろしくお願いします。

625:名無しさん@お腹いっぱい。
09/01/02 17:01:26 S7pHZQT10
煽られるのが嫌なんだったらまともな文章書いたらどうなんだ・・・(;´Д`)

626:名無しさん@お腹いっぱい。
09/01/02 17:09:16 xEYn5SCM0
>>622
コメントがどこに出るのか
フォントがどう関係あると思ったのか
どこが原因なのか
ちょっと整理して書いてみ

627:名無しさん@お腹いっぱい。
09/01/02 17:23:39 azAV/0n90
>>622
マジレスすると、違うパソコンだからです。

628:名無しさん@お腹いっぱい。
09/01/02 17:24:37 14Asm42R0
>>624
それだけの情報で解決できるエスパーはここにはいません
他あたってください

629:名無しさん@お腹いっぱい。
09/01/02 17:39:16 ZsBa6Dj30
これかw
スレリンク(software板:48番)

630:624
09/01/02 17:49:27 rpkNn+AP0
>>622
フォントのアップデートに関係あるのではとのコメントが過去レス
にあったもので・・・
フォントがどう関係しているのかわかりません。
正直言って関係ないのではと思っています。
コメントはエラーコメントで小さな窓で出ます。
つまり起動はされているのですが、馬券を買う直前で止まるのです。
このエラーが出る前はレースが馬券を買わずに流れていきましたが、
それは16bitにすることで止まりました。が、馬券は買えません。
なお、私は上の48の人とは別人です。
検索で48を見つけましたが、そこにも回答がなかったので再度きいた
わけです。
以上、よろしくお願いします。

631:名無しさん@お腹いっぱい。
09/01/02 18:06:21 ZsBa6Dj30
>>630
該当のページ教えてよ
@ページのSSとかも晒してくれると回答しやすい

632:名無しさん@お腹いっぱい。
09/01/02 18:17:27 Rm/xG68v0
スクリプトの内容も教えてくれないと回答は大変すぎるだろ。

633:名無しさん@お腹いっぱい。
09/01/02 19:22:59 rpkNn+AP0
専門用語はわかりません。
同じXPで一方はできて他方ができないのは??
ソフトもコピーして使っているのに・・・
ソフトはUWSCで東京の1Rの画面、⇒は馬単のところで止まります。

634:名無しさん@お腹いっぱい。
09/01/02 19:29:48 14Asm42R0
>>633
お前はもう「教えて!goo」とかで聞いとけよ
言われたことも出来ない奴に理解できるかよ

635:名無しさん@お腹いっぱい。
09/01/02 22:43:34 Rm/xG68v0
こんな返答だと
『じゃぁこうすると解決方法だ』と教えてあげても
『専門用語は分かりません』と返答されてしまう。教える労力がかかりすぎるね。

勉強してからきてください。

636:名無しさん@お腹いっぱい。
09/01/02 22:48:25 KRz29/qG0
言葉は敬語でも横柄な質問者の典型ですね。
PC関係のスレに常住する教え好きの住人もこういう人には答える気をなくすね。


637:名無しさん@お腹いっぱい。
09/01/02 23:41:24 qQI3Q45q0
ここは質問スレじゃねえんだボケ共

638:名無しさん@お腹いっぱい。
09/01/03 00:25:35 wNvjgSLb0
専門用語はわからないってことはどこからか拾ってきたソースなんだろうから
ソース見られるの恥ずかしいです><ってこともないだろうし
どこかのあぷろだにうpすれば即解決しそうなもんだけどな

639:名無しさん@お腹いっぱい。
09/01/03 00:27:43 KC1P03p30
>>633
スレリンク(pc板)
ほら、ここでやれ

640:名無しさん@お腹いっぱい。
09/01/03 00:48:41 q+ebtwFv0
そうだなあ。自分でソース書く奴が専門用語わかんねーわけねーもんな


641:名無しさん@お腹いっぱい。
09/01/03 04:43:07 /iPm/dkm0
そもそも uwscの話題なのか?ww

642:名無しさん@お腹いっぱい。
09/01/03 04:48:06 8PVexPPM0
>>636
>>633どこが敬語だよ
俺は語尾を揃えてくれればタメ語でも問題ないんだけど

ネットバンクっぽいからSSでも上げてくれればいいのに

>>641
>>633
UWSCっぽいけど?w

643:名無しさん@お腹いっぱい。
09/01/03 09:41:27 WuPgWUsB0
自演乙

644:名無しさん@お腹いっぱい。
09/01/03 13:51:01 tGHU8yNl0
グラフィック関連描画関連のハードが違うと全く同じスクリプトでも動かないよね。画像判定は。
色無視ならまだ行けそうだけど。

645:名無しさん@お腹いっぱい。
09/01/03 14:50:08 Htt4DvzM0
シェアウェア版はほとんど話題になっていないし
他でもあまり情報が無いみたいだけど
Web自動巡回する場合はUWSCが一番良いのでしょうか
それとも他に良いのがあるのかな

646:名無しさん@お腹いっぱい。
09/01/03 16:05:34 89fA0Ah10
漠然としすぎてるだろ。
なにを対象として巡回したいのか…極論RSSだけだったらGoogleReaderとか使え。
UWSCとかのスクリプトを触ったことが無いなら、とりあえずほかのソフトに不満を持ってからだな。
何を対象としてどんなやり方でどういう使い方を想定してこんな結果が便利そう・・・とか具体例を持てないと『作る』のは難しい。

使い込み始めると分かるが、シェアの利点はEXE化とデバッガぐらいしかない。
フリーで試してみるならそれはいい事だ。必要なのは探究心です。


647:名無しさん@お腹いっぱい。
09/01/04 00:16:56 QbcstKJg0
>>645
Web自動巡回は昔から色んなソフトがある。

648:名無しさん@お腹いっぱい。
09/01/04 01:26:47 PWm0tapx0
株式、先物、FXのシステム売買で
APIを公開していないブローカーを使って取引する時は
シェア版UWSC等で書かれたスクリプトが役に立ちそう
つーか、この分野で一番需要がありそうw

649:名無しさん@お腹いっぱい。
09/01/04 01:58:34 uSQIty0X0
流石に自動取引は危なっかしくて俺には出来ねぇ…。

650:名無しさん@お腹いっぱい。
09/01/04 03:28:43 ugW3lSoF0
>>648
なんでシェア?
Web記録があるから?フォーム作れるから?

どうみてもC#で十分です。

651:名無しさん@お腹いっぱい。
09/01/04 03:43:43 7ITfu5Zd0
C#とかいい始めたらキリが無いだろ。

652:名無しさん@お腹いっぱい。
09/01/04 04:05:12 ugW3lSoF0
冗談で書いた

653:名無しさん@お腹いっぱい。
09/01/04 09:35:21 CqAA14y10
  ∧l二|ヘ
  (・ω・ )  ←に土産を持たせてどこかのスレに送ってください
 ./ ̄ ̄ ̄ハ
 |  福  | |
 |  袋  | |,,,....
   ̄ ̄ ̄ ̄

現在の所持品: 帽子 老眼鏡 爪楊枝 ステテコ コタツ 仲村みうのDVD「卒業」 東名
オプーナ オプーナ オプーナ 株券 オプーナ 信長の野望online争覇の章 いづおロール 犬上小太郎
神藤美香のDVD(赤) ( ´;゚;ё;゚;) FF11アルタナの神兵追加ディスク 、FF11ジラートの幻影追加ディスク、xbox360エリート
もんもん ネコ ミカン DDR2 32G分 E8500 トイレ 精力剤 GV-MVP/HS2 ヘンシェル λ ID:x9wfJxWn 
敵の潜水艦 AIR Cl_ sabo10

654:名無しさん@お腹いっぱい。
09/01/04 17:06:35 Sh/j4CRt0
>>650-651
C#で簡単に作れるのかまじで?
ちょっとやってみたけど
WebBrowserコントロールっての使って単純なブラウザーは簡単に出来るけど
自動でパスワード入力とかラジオボタン操作とかフォーム送信とかの機能を実装出来るの?

655:名無しさん@お腹いっぱい。
09/01/04 17:15:35 ugW3lSoF0
>>654
できるよん
SetAttribute,GetAttribute,InvokeMember

656:名無しさん@お腹いっぱい。
09/01/04 18:29:45 ika+BqcM0
ブローカーにこだわらなければMT4使うのがベストだろ

657:名無しさん@お腹いっぱい。
09/01/04 20:19:05 1GxGvmcA0
昔、株板に自動売買スレあったけど、C#やExcelとかで作っている人はけっこういたな

俺もExcelで作ったのみたことある。
VBAでIEのコンポーネントを非表示でやってたな。

今なら、Rubyのwww::Mechanizeあたりでやるだろうけど

>>656
そうですな。俺はNinjtaTraderもオススメ

658:名無しさん@お腹いっぱい。
09/01/05 20:36:45 Agh4FC2Z0
確認させてもらいたいのですが、1024×768の画面サイズで使用する場合、
CHKIMGで使う座標は、左上が(0,0)で右下が(1023,767)で合ってますでしょうか?

659:名無しさん@お腹いっぱい。
09/01/06 00:47:24 IQ+0SvAq0
つ 座標君

660:名無しさん@お腹いっぱい。
09/01/06 02:41:16 HzO9vyYE0
普通にそれで良いと思う。
俺は欲しい画面をキャプチャしてレタッチソフトなんかでその場所確認してるけど…新規でそのためだけのツール入れるのが面倒なだけだったり。

661:658
09/01/06 20:17:34 dXsYDRZb0
>>659-660
座標君ですか。使ってみます。

ところで、「探したい画像が画面にいくつあるのか、またその位置をチェックする」というスクリプトを書いてみたのですが、
暇な方がいらっしゃいましたら校正お願いできませんでしょうか。
とくに配列の宣言はこれでいいのか・・・。
関数の戻り値は1つだけだと思うので位置はグローバル変数で指定しないとダメですよね?
今は数が99個までとしているのですが、99個超えたらどうしようみたいなのもあります。

////////////

PUBLIC X_Zahyo[99]
PUBLIC Y_Zahyo[99]

Num = CountImage( 0, 0, 1023, 767, "乳首.bmp", 11)
FOR i = 1 TO Num
    PRINT X_Zahyo[i] + "," + Y_Zahyo[i]
NEXT

// 続く

662:名無しさん@お腹いっぱい。
09/01/06 20:18:05 dXsYDRZb0
// 続き

FUNCTION CountImage( X_Start, Y_Start, X_End, Y_End, FileName, Y_Size)

    // X_Start サーチ範囲(X座標開始位置)
    // Y_Start サーチ範囲(Y座標開始位置)
    // X_End サーチ範囲(X座標終了位置)
    // Y_End サーチ範囲(Y座標終了位置)
    // FileName 画像名
    // Y_Size 画像の高さ(ドット数)

    Y = Y_Start // サーチ位置(初回はY_Start)
    i = 0 // 発見した個数

    WHILE CHKIMG( FileName, 0, X_Start, Y, X_End, Y_End) = TRUE
        i = i + 1 // 発見した個数をカウント
        X_Zahyo[i] = G_IMG_X // X座標を格納
        Y_Zahyo[i] = G_IMG_Y // Y座標を格納
        Y = G_IMG_Y + 1 // 次は発見した場所の1ドット下からサーチする

        // 以下、発見した画像の真横をサーチ
        WHILE CHKIMG( FileName, 0, G_IMG_X + 1, G_IMG_Y, X_End, G_IMG_Y + Y_Size - 1) = TRUE
            i = i + 1 // 発見した個数をカウント
            X_Zahyo[i] = G_IMG_X // X座標を格納
            Y_Zahyo[i] = G_IMG_Y // Y座標を格納
            WEND
        WEND

    // 戻り値
    RESULT = i
FEND

663:名無しさん@お腹いっぱい。
09/01/06 21:04:53 yXB+Es0j0
なんかいろいろめんどくさいことやってるね…
関数にするのはともかく、わざわざ個数と座標を返して
関数の外でPrintする必要はないんじゃない?
わざわざ配列を作る必要もないし、配列サイズを気にする必要もなくなる

二重ループも意味不明
総当たりだと時間かかるから、画像サイズとか入れて少しでも時間短縮できれば便利じゃない?
あ、でも真横にある場合もあるから一応チェックするか

みたいな思考かもしれないけど、結局ただの二度手間
単純に総当たりのループ一つだけでいいじゃん。
最初に書いたとおりループ内でPrintした方がスマート

664:名無しさん@お腹いっぱい。
09/01/06 21:27:37 0pokcDL30
>>661
どうかな

wkx = 0
wky = 0

while CHKIMG( "乳首.bmp", 0, wkx, wky, 1024, 768 )
PRINT G_IMG_X + "," + G_IMG_Y
wkx = G_IMG_X + 1
wky = G_IMG_Y
wend

printすると.\UWSC.LOGに残るよ

665:名無しさん@お腹いっぱい。
09/01/06 21:56:54 1giQJn+o0
>>664
この書き方で同一X軸上にある2つ目の画像って取得できる?

666:名無しさん@お腹いっぱい。
09/01/06 22:10:22 1giQJn+o0
自分は質問者じゃないんだが

>>663
まぁ、関数の外にデータを持っていきたい場合もあるだろう。
ってんでprintは便宜上の表現として良いかなと思う。

>単純に総当たりのループ一つだけでいいじゃん。
これはどういう書き方になるんだ? >664だと >665 に書いたとおりに同一X軸の画像は取得できない。
増減対象をXとYで2回繰り返しても、XとY軸に同一の座標(格子状の配置)のものがあれば取りこぼすし。

667:名無しさん@お腹いっぱい。
09/01/06 22:20:35 53iAnw2k0
なんで出来ない?

668:名無しさん@お腹いっぱい。
09/01/06 22:24:53 0pokcDL30
>>665
CHKIMGってtrue返したあとどういう挙動してるの?
x,yってもちろんxから走査するよね?

669:名無しさん@お腹いっぱい。
09/01/06 22:51:48 1giQJn+o0
自分の知る限り

chkimgは
x=0,y=0〜画面解像度
x=1,y=0〜画面解像度
x=2,y=0〜画面解像度
と走査していって
最初に見つけた座標ひとつだけをG_IMG_X,G_IMG_Yへ返して終わりだ。
戻り値が配列になってるとかそういうのは聞いたことがないなぁ。

…なんか質問者の意図とは違うところに話が行ってる気がするよw
配列の受け渡しは関数宣言のvarで出来るからグローバルじゃなくても良いよ。
後、あんまり綺麗じゃないけど、対象数が不明すぎるなら連想配列でも良いんじゃないかな?

670:名無しさん@お腹いっぱい。
09/01/06 23:22:48 1giQJn+o0
xyが違ってた

y=0,x=0〜画面解像度
y=1,x=0〜画面解像度
y=2,x=0〜画面解像度
と走査していって

だな
…しかし、>663はどうやってループひとつで解決できるんだろう。

671:名無しさん@お腹いっぱい。
09/01/06 23:24:29 0pokcDL30
>>669
今テストしたんだけど一発で>>664俺書けてるじゃんw
君のPCがおかしいよ

.\UWSC.LOGはどこにあるかしってる?

処理したいならprintのところに関数でもなんでも置換すればおk

672:名無しさん@お腹いっぱい。
09/01/06 23:30:04 0pokcDL30
>>670
ごめん間違ってたOrz
再考するわ

673:名無しさん@お腹いっぱい。
09/01/06 23:54:50 0pokcDL30
これでどうよ

wkx = 0
wky = 0

while CHKIMG( "乳首.bmp", 0, wkx, wky, 1023, 767 )
PRINT G_IMG_X + "," + G_IMG_Y
wkx = G_IMG_X + 1
wky = G_IMG_Y
ifb CHKIMG( "乳首.bmp", 0, G_IMG_X , G_IMG_Y + 1, G_IMG_X, 767 ) then
PRINT G_IMG_X + "," + G_IMG_Y
endif
wend

674:名無しさん@お腹いっぱい。
09/01/06 23:58:58 1giQJn+o0
アルゴリズムの初歩っぽいけど、こういうのは考えると楽しいよね。

>673
惜しいけど、それは考え方が変わってないよね?
二つ目以降が取得できない。
■ ■ ■
■ ■ ■
■ ■ ■

658の二重ループはスマートな結論だと思うんだけどなぁ。

675:673
09/01/07 00:04:09 yeJt08sV0
>>674
君スマートやね

初歩とかそういうレベルじゃなくて
CHKIMGの仕様,振る舞いがおかしくない?

676:名無しさん@お腹いっぱい。
09/01/07 00:04:29 7ES8amql0
しかし、シレっと「乳首.bmp」なんて書くんだもんなぁ。
ネタ過ぎるwwwwww

677:名無しさん@お腹いっぱい。
09/01/07 00:06:33 68bDEsj20
>>674
単ループで2個目が取れないと思ってるのなら
二重ループじゃ3個目が取れないんじゃないのか?

678:名無しさん@お腹いっぱい。
09/01/07 00:11:23 yeJt08sV0
>>676
どうなんだろうw本人消えたし

>>677
単ループがどのことを指しているのかわからないけど
>>673じゃ実際にできなかった

679:名無しさん@お腹いっぱい。
09/01/07 00:11:34 7ES8amql0
>>675
まぁ、おかしいというか物足りないというか。
『最初に見つけたものだけを返す』仕様だから仕方が無い。
その上で自前で関数書くのもライブラリ探すのも結果は一緒だよ。

>677
2重目のwhileのchkimgで
見つけたx座標に+1して再探査してるから、3個目も探し続けるでしょうね。

680:名無しさん@お腹いっぱい。
09/01/07 00:14:13 tfkVUyW50
この中に本人がまぎれてます

681:名無しさん@お腹いっぱい。
09/01/07 00:19:23 7ES8amql0
ああ、小学生的に日本語を間違えてた

>>674
× 二つ目以降が取得できない
○ 三つ目以降が取得できない
もしくは
○ 二つ目までしか取得できない

ですね

682:名無しさん@お腹いっぱい。
09/01/07 00:42:30 68bDEsj20
ああ、誰も突っ込まないからそこが間違ってるだなんて思わなくて
そこを疑わずに話をしてたけど
Whileの条件だけでループさせたところで
一重だろうが二重だろうが…何重にしたところで駄目だろ

FOR i = 0 TO 767 - 画像縦サイズ
 X_Start = 0
 WHILE CHKIMG( FileName, 0, X_Start, i, 1023 - 画像横サイズ, i) = TRUE
  X_Start = X_Start + G_IMG_X
  PRINT 個数 + ":" + G_IMG_X + "," + G_IMG_Y
 WEND
NEXT

683:名無しさん@お腹いっぱい。
09/01/07 00:45:17 68bDEsj20
>   X_Start = X_Start + G_IMG_X
  X_Start = G_IMG_X + 画像横サイズ
こうか…間違ってたわ

684:名無しさん@お腹いっぱい。
09/01/07 01:09:03 yeJt08sV0
>>682
>>661これでできたよ

Y = 0
Y_Size = 1
FileName = "乳首.bmp"

WHILE CHKIMG( FileName, 0, 0, Y, 1023, 767)
print G_IMG_X + "," + G_IMG_Y
Y = G_IMG_Y + 1
WHILE CHKIMG( FileName, 0, G_IMG_X + 1, G_IMG_Y, 1023, G_IMG_Y + Y_Size - 1)
print G_IMG_X + "," + G_IMG_Y
WEND
WEND

>>661
なんでわざわざ配列使うの?
printを他の処理に変えばいいんじゃない?

685:名無しさん@お腹いっぱい。
09/01/07 09:05:43 KoQ4Gi/C0
結論
乳首の数は2個、位置は乳輪の真ん中

686:名無しさん@お腹いっぱい。
09/01/07 10:05:27 KoQ4Gi/C0
という冗談はおいて置いて、

>>666の言う通り、PRIINTは便宜上だろう。
最終的に配列で欲しいんじゃないか?
散布図画像のプロットデータを読み込んで何やら高度な計算、とかだったら99個じゃ足りないだろうな。

1. 数と位置を調べ、ファイルに書き出す。
2. ファイルを一旦閉じる。
3. ファイルを開く。
4. 配列宣言
  DIM X_Zahyo[FGET(ID,-1)]
  DIM Y_Zahyo[FGET(ID,-1)]
5. 配列に値をほうり込む。

これで大丈夫かな?
試してないけど。

687:名無しさん@お腹いっぱい。
09/01/07 11:37:52 NIEdi7RU0
おまいらがあんまり楽しそうに語ってるから久々に触ってみようと思ってヘルプ読んでみたけど
ChkImgの挙動ちゃんと書いてないんだなw

二箇所引っかかるような画像用意して
MsgBox(ChkImg(fname) + "<#CR>" + "x: " + G_IMG_X + "<#CR>" + "y: " + G_IMG_Y)
MsgBox(ChkImg(fname) + "<#CR>" + "x: " + G_IMG_X + "<#CR>" + "y: " + G_IMG_Y)
ってやったらこの二行目ので二箇所目の座標もちゃんと検出したんだけど
While ChkImg(fname)


688:名無しさん@お腹いっぱい。
09/01/07 11:40:31 NIEdi7RU0
途中で送信しちゃった

座標指定も使わず
While ChkImg(fname)
//G_IMG_XとG_IMG_Yの出力
Wend
だけでいいんじゃないのか?
って思ったけどどうなんだろ

689:名無しさん@お腹いっぱい。
09/01/07 11:50:19 KoQ4Gi/C0
一番左上の画像が延々と検出されるだけ。

690:名無しさん@お腹いっぱい。
09/01/07 11:57:26 NIEdi7RU0
え…俺二箇所ともWhileの方で引っかかるんだけど…
俺も無限ループになるのかなと思って>>687で試した結果
引数省略した時のデフォの値に前回取得したG_IMG_X,G_IMG_Yの結果を勝手にずらした座標が使われるって解釈して
ほんでもって>>688でちゃんと2箇所無限ループもせずに取得できたんだけど…

691:名無しさん@お腹いっぱい。
09/01/07 12:05:53 KoQ4Gi/C0
試したけどやはり一つだけを延々と検出するだけなんだが?

692:名無しさん@お腹いっぱい。
09/01/07 12:06:49 NIEdi7RU0
あ、ごめんごめん
この手の用途はPC放置してずっと監視させるのが目的だから
前回の値を起点にしたら長時間の画面監視なんてできないよね
忘れてちょうだい

693:名無しさん@お腹いっぱい。
09/01/07 12:08:35 KoQ4Gi/C0
>>692
試したらなったってのはどういうミスだったの?

694:名無しさん@お腹いっぱい。
09/01/07 12:08:46 NIEdi7RU0
リロードしてなかった…

>>691
なんでなのかな
uwscのバージョンとかで挙動が違うんかな

695:名無しさん@お腹いっぱい。
09/01/07 12:11:33 KoQ4Gi/C0
>>694
>>692を読むと結局無理だったというふうに読めたんだが、あくまで>>688はOKなの?

696:名無しさん@お腹いっぱい。
09/01/07 12:15:24 NIEdi7RU0
すまん久々に触ってるもんだから自分でも把握できないわ
混乱させるだけだからひっこむよ
ごめんよ(´・ω・`)

697:名無しさん@お腹いっぱい。
09/01/07 12:38:00 NH/SArFRO
走査しても人間が数値を読み違える事が在るからな。
MMVとSLEEP入れて、どこを検知したか分かり易くすると良いよ。

698:658
09/01/07 20:28:09 SaObSndz0
みなさんどうもありがとうございます。
連想配列という言葉は初めて聞いたので調べてみたいと思います。

699:名無しさん@お腹いっぱい。
09/01/07 20:43:38 UInQEAud0
ReSize使えよ

700:名無しさん@お腹いっぱい。
09/01/09 11:31:39 Ou47XQg10
UWSCを再生させるとPCで他の作業ができなくなり困ってます。
又、窓別に違うUWSCを再生することはできますか?

この腐れに教えて下さい・・・



701:名無しさん@お腹いっぱい。
09/01/09 11:38:17 9uVCk7/U0
>>700
よく意味が分かりません
スクリプトを窓別に書けばいいだけじゃないんですか?

702:名無しさん@お腹いっぱい。
09/01/09 17:07:03 Ou47XQg10
ALT+F2キー(再生)押した後PCの操作がすべて取られるので他の作業が
できないのです・・・

703:名無しさん@お腹いっぱい。
09/01/09 17:12:14 p1dhSGKj0
色々言いたいことはあるがやっかいなことになりそうなので、一言だけ。

諦めてください

704:名無しさん@お腹いっぱい。
09/01/09 17:14:03 oR+RJomT0
操作を取られないように書けばいいだけ

705:名無しさん@お腹いっぱい。
09/01/09 17:16:21 kg5KLxKp0
>>702
IEを操作するのならCOM使うとフォーカス奪われないよ
Windowsフォームを操作するのなら諦めて

706:名無しさん@お腹いっぱい。
09/01/09 17:31:46 gYr5hc3Z0
やったことはないのが
仮想PC(VMWare等)上でuwscを動かせば
自分は普通に作業できるのでは?

707:名無しさん@お腹いっぱい。
09/01/09 18:37:21 U0BD8E1t0
>>700
仮想マシンを使うのが簡単。

または、一つ一つの操作を、マウス・キーボードからWindowsAPIだとかを使うように全部変更すれば可能。
だだし、それ調べるのにソートー時間かかる。
WindowsAPIの知識が無いならやめとくべき。


708:名無しさん@お腹いっぱい。
09/01/09 18:51:10 oR+RJomT0
MOUSEORGすりゃいいだけだろw
何で仮想マシンになるんだwww

709:名無しさん@お腹いっぱい。
09/01/09 19:00:58 gYr5hc3Z0
>>708
それってさー
例えば、マウスポインタの位置を操作するスクリプトを動かしている最中で
自分はエクセルとかで同じくマウス使っている時に
マウスカーソルの位置がスクリプトによりどこかに飛ばされて作業の邪魔にならないの?

710:名無しさん@お腹いっぱい。
09/01/09 19:33:46 kmMJQUqm0
そうならないように指定すればいい。ってのに
そうならないの?って逆質問するのは馬鹿に見えるからやめたほうがいい

711:名無しさん@お腹いっぱい。
09/01/09 19:39:43 gYr5hc3Z0
>>710
馬鹿か お前はw

「そうならないように」するための 具体的な >>706>>707の意見が出たんだろ?

そもそも >>700の質問自体が「そうならないように」する方法を問う質問だろうがw
お前、頭が不自由な子か?w

712:名無しさん@お腹いっぱい。
09/01/09 19:44:24 gYr5hc3Z0
>>710

>>700の用件を満たしていない様に思える >>708に対して
本当に用件を満たしているか問うことが何故馬鹿なんだ?w
お前は頭大丈夫か?w

713:名無しさん@お腹いっぱい。
09/01/09 19:48:21 LxZPgn7U0
必死だなww

714:名無しさん@お腹いっぱい。
09/01/09 19:48:51 oR+RJomT0
>>709
ならないよ

715:名無しさん@お腹いっぱい。
09/01/09 21:11:26 /4uiTXok0
以下頭の悪さをひけらかすID:gYr5hc3Z0はスルーでどうぞ

716:名無しさん@お腹いっぱい。
09/01/10 21:25:56 5RFVaUTS0
>>714
アプリに直接では送る相手が変わってしまって期待通りの動作しなかったりする。
それだったら直接API使った方がマシという。


717:名無しさん@お腹いっぱい。
09/01/10 23:38:46 0l2ZHHwf0
送る相手が変わる???
送り先指定してんのにどうやったら変わるんだ?

718:名無しさん@お腹いっぱい。
09/01/10 23:56:02 wtsRJKdD0
716は昨日のID:gYr5hc3Z0だろw
こいつは妄想で適当なことしか書き込まないからスルーしとけ

719:名無しさん@お腹いっぱい。
09/01/12 03:23:39 A1VFSCeY0
>>717
相手が変わるって言うか
アプリケーションに送るのとクライアントに送るのとで変わってくるだろ?
ちがうのかな。

アプリケーションに直接送るっていうのは、受け側がWM_CHARを処理しないといけないんだろ?
ゲームのようなやつはそんなの見てないし。

720:名無しさん@お腹いっぱい。
09/01/12 08:10:08 fTsgyzyK0
>>719
そんな妄想はいいから具体的にスクリプトあげてみてくれよ

721:名無しさん@お腹いっぱい。
09/01/13 01:43:09 kqB6nrSU0
// 投稿関数はtest15.uwsのもの。スレ覧取得ループはv1をさらに改造。
// キーワードに合致するものを優先的に検索・投稿し、そのほかは余裕があれば2ゲットする。
// 2008/7/4
// スレ覧はSubject.txtをGetして使うように変更。
// それに伴い304エラーのために間隔を開ける必要がなくなり、鯖への負荷も減らせる。
// 2008/07/14 OpenJaneでnewsplusを開いていてsageチェックがはずされていれば投稿し、待ち状態に入る。
// 2008/11/02 FOXの板を回避
// 2008/11/25 3回目の規制で、「二日までなら見逃し」という依頼者からの発言を受けて、
//    日付変更をチェックして自動終了するように変更。
def_dll GetWindow(hWnd,long):long:user32.dll
Public GW_ENABLEDPOPUP = 6 // ポップアップウィンドウ

board = "ニュース速報+"
//Jane本体のID取得
JBID = GetID("", "TMainWnd")

Public ProblemName = "FOX★", "番犬★"
/////////
// 定義
STOPFORM(true)
メモ帳 = Exec("notepad.exe")

板アドレス="URLリンク(mamono.2ch.net)"

TEXTBLOCK text24
正論が通らない狂った日本
URLリンク(ryotaroneko.ti-da.net) // 2ch規制
ENDTEXTBLOCK

Dim TitleWord = "更迭" // text1の投稿対象とするスレッドタイトル
text0 = text2 // そのほかのスレッドへの投稿内容
text = text0 // 投稿テキストにセット

722:名無しさん@お腹いっぱい。
09/01/13 01:44:13 kqB6nrSU0
Dim oHttp // 通信オブジェクト
conturl = "URLリンク(mamono.2ch.net)" // スレッド保存場所
url=板アドレス + "subject.txt" // 新着監視ページ

PUBLIC errortitles[]="サーバーが見つかりません", _
"ERROR", _
"ERROR", _
"error", _
""
DIM LastThreadNo=0 // スレ番を保存し、2重の書き込み、過去スレへの書き込みを回避する。
/////////
// 処理
// 通信オブジェクト接続
oHttp = CreateOLEObj("MSXML2.XMLHTTP")
// 投稿用ブラウザを起動
IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
ID = HNDToID(IE.HWND)
SendSTR( メモ帳, TitleWord + "を処理します。<#CR>", 1, false, false )
LastModified = "Thu, 01 Jun 1970 00:00:00 GMT"
LastThreadNo = 0
sleeptime = 9
Gettime()
StartDay = G_TIME_DD
while 1
sleep(sleeptime)
Gettime()
SendSTR( メモ帳, G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2 + "." + G_TIME_ZZ2 , 1, false, false )
ifb StartDay <> G_TIME_DD then
SendSTR( メモ帳, "<#BR>日付変更により終了", 1, false, false )
exit
endif

723:名無しさん@お腹いっぱい。
09/01/13 01:45:08 kqB6nrSU0
// Webページ読み込み
COM_ERR_IGN  //COMエラー無視
SendSTR( メモ帳, " ", 1, false, false )
oHttp.Open("GET", url, True )
SendSTR( メモ帳, ".", 1, false, false )
oHttp.setRequestHeader("If-Modified-Since", LastModified);
SendSTR( メモ帳, ".", 1, false, false )
oHttp.Send("")
SendSTR( メモ帳, ".", 1, false, false )
ifb 200 = oHttp.status Then
SendSTR( メモ帳, ";", 1, false, false )
sleeptime = 3
else
SendSTR( メモ帳, ":", 1, false, false )
sleeptime = sleeptime + 10
SendSTR( メモ帳, " " + oHttp.status + "<#CR>", 1, false, false )
continue
endif
SendSTR( メモ帳, ".", 1, false, false )
LastModified = oHttp.getResponseHeader("Last-Modified")
SendSTR( メモ帳, ".", 1, false, false )
ifb COM_ERR_FLG
SendSTR( メモ帳, ".", 1, false, false )
SendSTR( メモ帳, "COM ERROR<#CR>", 1, false, false )
continue
endif
SendSTR( メモ帳, ".", 1, false, false )
COM_ERR_RET  //エラー処理復帰
SendSTR( メモ帳, " stat:" + oHttp.status + "<#CR>" , 1, false, false )
str = DECODE(oHttp.responseBody, CODE_BYTEARRAY)

724:名無しさん@お腹いっぱい。
09/01/13 01:48:23 kqB6nrSU0
// IEが終了された場合は連動して終了
if !IDToHND(ID) Then break
// スレッド一覧を処理
ThreadNo = 0
for TCnt = 1 to 50
str1 = token( "<#CR>", str, true, false )
Ifb 1 < Pos("(1)", str1) Then
SendSTR( メモ帳, str1 + "<#CR>", 1, false, false )
// スレ番取得
str2 = CopyB( str1, 1, 10 )
ThreadNo = Val(str2, -1)
if -1 = ThreadNo Then continue 2
//////////////////////////////////////
// 特定のスレッドにのみAAを投稿する。
Ifb Pos(TitleWord, str1) Then
text = text1
break
Else
// デフォルトテキストをセット
text = text0
// 処理しなかったスレ番の保存
//LatestNewList = ThreadNo
Endif
endif
next
///////////////////////////////////////////////
// 未処理の新規スレが残っている場合、投稿する。
// ループの外でやる理由は、一番古いスレから処理するため。
Ifb ThreadNo Then

725:名無しさん@お腹いっぱい。
09/01/13 01:49:05 kqB6nrSU0
// 投稿処理
ret = Cont( IE, conturl, ThreadNo, text, メモ帳)  // text = text0
Gettime()
TS = G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2 + "." + G_TIME_ZZ2
ifb ret Then
LastThreadNo = ThreadNo
SendSTR( メモ帳, "●good " + TS + "<#CR>", 1, false, false )
sleeptime = 130
else
SendSTR( メモ帳, "▲err " + TS + "<#CR>", 1, false, false )
sleeptime = 5
endif
Else // Janeの書き込み準備ができていれば投稿
Ifb -1 <> JBID Then
//JCID = GetID("", "TWriteForm")
JCID = GetChldID(JBID)
Ifb JCID Then
Ifb 0 = ChkBtn(JCID, "sage") Then
GetItem( JCID, ITM_ACCCLK, 1)
Ifb Pos(board, ALL_ITEM_LIST[10]) Then
Ifb SaveJane( JBID, JCID ) Then
SendSTR( メモ帳, "〓OpenJaneで投稿" + "<#CR>", 1, false, false )
sleeptime = 130
else
SendSTR( メモ帳, "〓投稿失敗" + "<#CR>", 1, false, false )
endif
Endif
Endif
Endif
Endif
Endif
wend

726:名無しさん@お腹いっぱい。
09/01/13 01:53:06 kqB6nrSU0
>>721-725
関数化した部分があるけど長すぎたので省略
Function GetChldID( PID, CID = 0 )
// 投稿処理 ////////////////////
// 戻り値: TRUE:正常、FALSE:エラー
// 引数:
// IE :IEオブジェクト
// conturl :スレの場所
// TNo :スレ番
// text :投稿テキスト
// メモ帳=0 :メモ帳ID
// メモ帳IDはデバッグ用
Function Cont( Var IE, conturl, TNo, text, メモ帳=0)

//////////////////////////////////////////////////////
// 投稿ページを開く
// 引数:IEオブジェクト、アドレス、スレッド番号、投稿テキスト、試行回数、メモ帳ID
// 成功すればtrue、不完全なページならfalseを返す。
Function OpenContPage( Var IE, conturl, TNo, text, LTimes=3, メモ帳=0)

//////////////////////////////////////////////////////
// OpenJaneの投稿処理をする。
// 開いているスレと投稿先が違うと出る警告画面の処理のため関数化。
// _分で処理できなければFalseを返す
// ID:親ウィンドウのID
// IDD:Web ページの保存ダイアログID
// OpenJaneはウィンドウを閉じても非表示で存在している。
// そして投稿窓もダイアログでなく独自ウィンドウクラス。
// なので、制御がややこしい。
// 投稿窓が非表示になるとき、別の子窓が取得できるので、・・・
// 1000レスついてたり書き込みできない場合延々と繰り返してしまう・・
Function SaveJane( ID, IDD, メモ帳=0 )

727:名無しさん@お腹いっぱい。
09/01/13 02:41:28 OFjJkjc60
2getに加担して鯖の負荷を上げるのは嫌だねぇ。
こういうのだったら使い勝手とか言わないでセカンドマシンでぶん回しておけよ。

…何で2get…ブログ先の人も首を傾げてるんだがなぁ。

728:名無しさん@お腹いっぱい。
09/01/14 15:27:40 xOT5hdBj0
uwscで単純な作業複数を、それぞれひとつずつのキーに割り当てることってできますか?
記録と再生でひとつの動作は行えるのですが、
複数のマクロや○+○じゃなくひとつのキーで実行は出来ないのかなと。

729:名無しさん@お腹いっぱい。
09/01/14 15:34:16 ENz9kV0Y0
できるよ

730:名無しさん@お腹いっぱい。
09/01/14 16:11:48 rt4k6YB30
>>728
出来るけど、ショートカットKey絡みならAHKの方が楽だと思う。

731:名無しさん@お腹いっぱい。
09/01/14 16:16:45 dFd2Qpc10
私はAHKでuwscファイルを呼び出すけど


732:名無しさん@お腹いっぱい。
09/01/14 16:21:26 rt4k6YB30
>>731
お、同志w
自分も行数あるスクリプトはすぐに面倒になってUWSCで書いてるわ…

733:名無しさん@お腹いっぱい。
09/01/14 18:00:21 5VRwikzI0
ある株ソフトにアラーム機能がないので
UWSCで出来たらいいなと思いましたが
どうしたらいいのか分かりません。

そのソフトはシグナルが出たときに
一番上の行に時間やら銘柄やら株価などが更新されていきます。
上昇のシグナルは緑背景に白文字、
下降のシグナルは赤背景に白文字となっており
上昇の緑の時にだけアラームを鳴らしたくて

WHILE TRUE
IFB PEEKCOLOR(887 , 241) = $2F6B55 THEN
SOUND("C:\WINDOWS\Media\notify.wav")
sleep(2)
else
sleep(1)
ENDIF
WEND

分からないなりにやってみたけど
これじゃあ赤いシグナルから緑に変わったときにしか
役に立たない・・・
ボクにも書けそうな簡単なスクリプトあれば教えてください。

734:733
09/01/14 21:00:55 5VRwikzI0
追記

とにかくソフトになにか変化があったらアラームを
鳴らさせるように出来ないでしょうか?

735:名無しさん@お腹いっぱい。
09/01/14 22:46:19 INWUQKt00
そこまで聞くならソフト名ぐらい晒せ

736:733
09/01/14 22:51:25 5VRwikzI0
>>735

大人買検知機というソフトです。
URLリンク(www.vector.co.jp)

737:名無しさん@お腹いっぱい。
09/01/14 22:55:16 hOB1qOFr0
いっこのループと、いっこの条件分岐が出来てるから…
後は、ほしい数だけ条件分岐を作れば出来るよ。

738:名無しさん@お腹いっぱい。
09/01/14 22:59:56 rt4k6YB30
>>734
URLリンク(ochoja.web.fc2.com)
UWSCコードの断片生成器
を使わせて貰って一番都合のよいもの(status,str,etc)選んでスクリプト書けば良い。

739:733
09/01/14 23:34:18 5VRwikzI0
>>737
どういう条件分岐作ればいいのでしょう?
peekcolorだけでやるのは無理ですよねえ?

>>738

***** getstr() sendstr() ********************
getstr(id,0,STR_STATIC)="大人買検知機"
getstr(id,0,STR_ACC_STATIC)="時刻"
getstr(id,1,STR_ACC_STATIC)="時刻"
getstr(id,2,STR_ACC_STATIC)="銘柄"
getstr(id,3,STR_ACC_STATIC)="約定値"
getstr(id,4,STR_ACC_STATIC)="出来高"


ちょっとやってみましたが
getstrで更新される文字とれるのでしょうか?
むずかしい〜

740:名無しさん@お腹いっぱい。
09/01/14 23:39:21 3rpO1RzOP
>>733

えーと監視する項目の色が緑に変わったときにアラームを鳴らしたいんだよね?
ということは、前回チェックした時の色と今回の色を比較しなければダメだよ。
色は何種類あるの? 赤と緑以外に通常の表示色はある?

それと気になった点を言うと、何秒おきに監視するの? 1、2秒単位で監視する
アルゴリズムになっているようだけど無駄にマシンパワーを食うんじゃない?
30秒おきとか1分おきとか5分おきとかだよね?


アルゴリズムを書くけど スクリプトにする時は文法と変数規約に則して変えてね。
※←は代入の意味ね。

前回の色 ← 通常色
今回の色 ← 通常色

WHILE TRUE
 今回の色 ← 今回の色を取得して変数に代入
 IFB 前回の色と今回の色が違う AND 今回の色は緑
  アラームを鳴らす
 ENDIF
 前回の色 ← 今回の色

 次回チェックまでXX秒スリープ
WEND



741:733
09/01/15 00:55:00 tW7kX9XU0
>>740
緑背景から緑背景の場合もあるから
文字の入る場所も含めて取得する地点を複数にして
判断すればいいのかな

比較ののところがどう記述すればいいのかまったく分かりません。

今のところ1秒でやっても負荷たいしてかからないけど
複数地点にして比較すると相当負荷かかってくるカモですね。
その場合はもうちょっと間隔あけるようにします。

742:名無しさん@お腹いっぱい。
09/01/17 11:18:45 iMN83Hym0
// ===
前回の色 = ""

WHILE TRUE
  WHILE TRUE
    今回の色 = (PEEKCOLOR(887 , 241)
     IF !(今回の色 = $白ーい色) THEN BREAK // 白以外ならループ抜ける // !で真偽反転だっけかな;
    今回の色 = (PEEKCOLOR(111 , 222)
     IF !(今回の色 = $白ーい色) THEN BREAK // 白以外・・
    今回の色 = (PEEKCOLOR(333 , 444)
     IF !(今回の色 = $白ーい色) THEN BREAK // 白以外・・
  WEND

  IFB !(今回の色 = 前回の色) THEN
    // 同じ色ではない場合の処理
    IF 今回の色 = $2F6B55 THEN SOUND("C:\WINDOWS\Media\notify.wav") // グリーンなら
    IF 今回の色 = $レッドオ THEN SOUND("C:\WINDOWS\Media\レッドオ.wav") // レッドなら
  ENDIF

前回の色 = 今回の色
sleep(1)
WEND
// ===
泥くせ;;;


743:733
09/01/17 20:56:43 3elNHqC+0
分からないなりに理解しようとしましたが
色を取得するってところが全然分からない。

今回の色とか前回の色oldcolor newcolor?

744:名無しさん@お腹いっぱい。
09/01/17 23:58:47 70fVoJI80
>>743
ひょっとして変数が判ってない?
いずれにしろ、UBTrek使ってpeekcolorを検索すれば沢山ヒットすると思う。

745:733
09/01/18 00:49:03 V1b5lGQF0
>>744
単純なpeekcolorの記述は何個か出てきましたが
前回の色と今回の色を比較するような例が見つかりませんでした。

746:名無しさん@お腹いっぱい。
09/01/18 01:13:45 WQ5z9x9T0
>>745
dim color=peekcolor(100,200)

while true
newcolor=peekcolor(100,200)
ifb !color=newcolor
 msgbox("変わった")
 color=newcolor
endif
sleep(0.5)
wend

無限ループなので適当にBreak。
Mouseorg(id,2)使ってwindow指定した方がよいかも。
RGBが少しでも変化すれば反応してしまうので、RGBに分解した方がよいかも。


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

4852日前に更新/335 KB
担当:undef