[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 10/18 14:24 / Filesize : 335 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

自動化ツールuwsc使いよ集まれ3



1 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/04/16(月) 07:57:49 ID:+HI9MOeK0]
Windowsを自動化させるツールUWSC。
ttp://www.h7.dion.ne.jp/~umiumi/

uwsc使いのみなさま、マターリ己のスクリプトを晒しましょ。

前スレ
自動化ツールuwsc使いよ集まれ2
pc11.2ch.net/test/read.cgi/software/1156416884/

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 04:05:12 ID:ugW3lSoF0]
冗談で書いた

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

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

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

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 17:15:35 ID:ugW3lSoF0]
>>654
できるよん
SetAttribute,GetAttribute,InvokeMember

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

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

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

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

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

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

659 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 00:47:24 ID:IQ+0SvAq0]
つ 座標君

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



661 名前:658 mailto:sage [2009/01/06(火) 20:17:34 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 20:18:05 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 21:04:53 ID:yXB+Es0j0]
なんかいろいろめんどくさいことやってるね…
関数にするのはともかく、わざわざ個数と座標を返して
関数の外でPrintする必要はないんじゃない?
わざわざ配列を作る必要もないし、配列サイズを気にする必要もなくなる

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

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

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 21:27:37 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 21:56:54 ID:1giQJn+o0]
>>664
この書き方で同一X軸上にある2つ目の画像って取得できる?

666 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:10:22 ID:1giQJn+o0]
自分は質問者じゃないんだが

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

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

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:20:35 ID:53iAnw2k0]
なんで出来ない?

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

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 22:51:48 ID:1giQJn+o0]
自分の知る限り

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

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

670 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:22:48 ID:1giQJn+o0]
xyが違ってた

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

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



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

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

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

672 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:30:04 ID:0pokcDL30]
>>670
ごめん間違ってたOrz
再考するわ

673 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:54:50 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/06(火) 23:58:58 ID:1giQJn+o0]
アルゴリズムの初歩っぽいけど、こういうのは考えると楽しいよね。

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

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

675 名前:673 mailto:sage [2009/01/07(水) 00:04:09 ID:yeJt08sV0]
>>674
君スマートやね

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

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

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

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:11:23 ID:yeJt08sV0]
>>676
どうなんだろうw本人消えたし

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

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

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

680 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:14:13 ID:tfkVUyW50]
この中に本人がまぎれてます



681 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:19:23 ID:7ES8amql0]
ああ、小学生的に日本語を間違えてた

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

ですね

682 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:42:30 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 00:45:17 ID:68bDEsj20]
>   X_Start = X_Start + G_IMG_X
  X_Start = G_IMG_X + 画像横サイズ
こうか…間違ってたわ

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 01:09:03 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 09:05:43 ID:KoQ4Gi/C0]
結論
乳首の数は2個、位置は乳輪の真ん中

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 10:05:27 ID:KoQ4Gi/C0]
という冗談はおいて置いて、

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

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

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

687 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:37:52 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:40:31 ID:NIEdi7RU0]
途中で送信しちゃった

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

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 11:50:19 ID:KoQ4Gi/C0]
一番左上の画像が延々と検出されるだけ。

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



691 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:05:53 ID:KoQ4Gi/C0]
試したけどやはり一つだけを延々と検出するだけなんだが?

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

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:08:35 ID:KoQ4Gi/C0]
>>692
試したらなったってのはどういうミスだったの?

694 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 12:08:46 ID:NIEdi7RU0]
リロードしてなかった…

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

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

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

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

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

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/07(水) 20:43:38 ID:UInQEAud0]
ReSize使えよ

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

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





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

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

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

諦めてください

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 17:14:03 ID:oR+RJomT0]
操作を取られないように書けばいいだけ

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

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

707 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 18:37:21 ID:U0BD8E1t0]
>>700
仮想マシンを使うのが簡単。

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


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

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

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



711 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:39:43 ID:gYr5hc3Z0]
>>710
馬鹿か お前はw

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

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

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:44:24 ID:gYr5hc3Z0]
>>710

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

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:48:21 ID:LxZPgn7U0]
必死だなww

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/09(金) 19:48:51 ID:oR+RJomT0]
>>709
ならないよ

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

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


717 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/10(土) 23:38:46 ID:0l2ZHHwf0]
送る相手が変わる???
送り先指定してんのにどうやったら変わるんだ?

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

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

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

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



721 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:43:09 ID: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")

板アドレス="mamono.2ch.net/newsplus/"

TEXTBLOCK text24
正論が通らない狂った日本
ttp://ryotaroneko.ti-da.net/e2186226.html // 2ch規制
ENDTEXTBLOCK

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

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:44:13 ID:kqB6nrSU0]
Dim oHttp // 通信オブジェクト
conturl = "mamono.2ch.net/test/read.cgi/newsplus/" // スレッド保存場所
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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:45:08 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:48:23 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:49:05 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 01:53:06 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/13(火) 02:41:28 ID:OFjJkjc60]
2getに加担して鯖の負荷を上げるのは嫌だねぇ。
こういうのだったら使い勝手とか言わないでセカンドマシンでぶん回しておけよ。

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

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

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 15:34:16 ID:ENz9kV0Y0]
できるよ

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



731 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 16:16:45 ID:dFd2Qpc10]
私はAHKでuwscファイルを呼び出すけど


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

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 18:00:21 ID: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 mailto:sage [2009/01/14(水) 21:00:55 ID:5VRwikzI0]
追記

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

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:46:19 ID:INWUQKt00]
そこまで聞くならソフト名ぐらい晒せ

736 名前:733 mailto:sage [2009/01/14(水) 22:51:25 ID:5VRwikzI0]
>>735

大人買検知機というソフトです。
www.vector.co.jp/soft/winnt/business/se359706.html

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

738 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 22:59:56 ID:rt4k6YB30]
>>734
ttp://ochoja.web.fc2.com/uwsct/0610uwsct.html#MakingSupport
UWSCコードの断片生成器
を使わせて貰って一番都合のよいもの(status,str,etc)選んでスクリプト書けば良い。

739 名前:733 mailto:sage [2009/01/14(水) 23:34:18 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/14(水) 23:39:21 ID:3rpO1RzOP]
>>733

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

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


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

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

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

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





741 名前:733 mailto:sage [2009/01/15(木) 00:55:00 ID:tW7kX9XU0]
>>740
緑背景から緑背景の場合もあるから
文字の入る場所も含めて取得する地点を複数にして
判断すればいいのかな

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

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

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/17(土) 11:18:45 ID: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 mailto:sage [2009/01/17(土) 20:56:43 ID:3elNHqC+0]
分からないなりに理解しようとしましたが
色を取得するってところが全然分からない。

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

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

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

746 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 01:13:45 ID: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に分解した方がよいかも。

747 名前:733 mailto:sage [2009/01/18(日) 01:13:47 ID:V1b5lGQF0]
緑、赤とか関係なく
ある一点の色変化があったときに
アラームを鳴らす具体的なスクリプト教えていただけませんか
なんとかそこから発展させてやっていきたいと思いますので。

748 名前:733 mailto:sage [2009/01/18(日) 01:18:03 ID:V1b5lGQF0]
>>746
ありがとうございます
でもまったく反応しないですね。
このままじゃダメなんでしょうか?

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/18(日) 01:21:04 ID:aouJYoBm0]
>>748
プログラムの基礎から学び直したほうがいいよ
君にはまだ早い

750 名前:733 mailto:sage [2009/01/18(日) 01:29:38 ID:V1b5lGQF0]
あ、反応しましたが
なかなか反応しない感じです。



751 名前:名無しさん@お腹いっぱい。 [2009/01/18(日) 03:18:31 ID:lcf3XQYB0]
皆さんのUWSCを使用する用途は大体何ですか?

自分のPC環境の最適化以外にUWSCというのは
マスターしたとしても他に例えば何に役立つのでしょうか?
例:仕事面 WEB製作面 etc

マジ質問です

752 名前:WTTEkBtZS mailto:xthaterends@yahoo.com [2009/01/18(日) 03:22:58 ID:24LUwixi0]
rybeiddery.awardspace.com/dominos-sub.html dominos sub
maridoctoge.awardspace.com/ruff-ryders-columbus.html ruff ryders columbus
caross.awardspace.com/darren-nadel.html darren nadel
maridoctoge.awardspace.com/ruff-ryders-soccer.html ruff ryders soccer
rybeiddery.awardspace.com/dominos-pizza-nutrition.html dominos pizza nutrition
therybaive.awardspace.com/lenora-jubilee.html lenora jubilee
caross.awardspace.com/nadel-jewish.html nadel jewish
maridoctoge.awardspace.com/ruff-ryders-layout.html ruff ryders layout
therybaive.awardspace.com/jubilee-history.html jubilee history
deadingrain.awardspace.com/facbook.html facbook
therybaive.awardspace.com/red-cedar-jubilee.html red cedar jubilee
caross.awardspace.com/natasha-nadel.html natasha nadel
rybeiddery.awardspace.com/pizza-hut-ottawa.html pizza hut ottawa
caross.awardspace.com/nadel-sarasota.html nadel sarasota
maridoctoge.awardspace.com/bay-ruff-ryders.html bay ruff ryders
maridoctoge.awardspace.com/left-ruff-ryders.html left ruff ryders
caross.awardspace.com/nadel-artist.html nadel artist
maridoctoge.awardspace.com/ruff-ryders-do.html ruff ryders do
caross.awardspace.com/bernard-nadel.html bernard nadel
caross.awardspace.com/fred-nadel.html fred nadel







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<335KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef