- 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/
- 641 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 04:43:07 ID:/iPm/dkm0]
- そもそも uwscの話題なのか?ww
- 642 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 04:48:06 ID:8PVexPPM0]
- >>636
>>633どこが敬語だよ 俺は語尾を揃えてくれればタメ語でも問題ないんだけど ネットバンクっぽいからSSでも上げてくれればいいのに >>641 >>633 UWSCっぽいけど?w
- 643 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 09:41:27 ID:WuPgWUsB0]
- 自演乙
- 644 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 13:51:01 ID:tGHU8yNl0]
- グラフィック関連描画関連のハードが違うと全く同じスクリプトでも動かないよね。画像判定は。
色無視ならまだ行けそうだけど。
- 645 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 14:50:08 ID:Htt4DvzM0]
- シェアウェア版はほとんど話題になっていないし
他でもあまり情報が無いみたいだけど Web自動巡回する場合はUWSCが一番良いのでしょうか それとも他に良いのがあるのかな
- 646 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/03(土) 16:05:34 ID:89fA0Ah10]
- 漠然としすぎてるだろ。
なにを対象として巡回したいのか…極論RSSだけだったらGoogleReaderとか使え。 UWSCとかのスクリプトを触ったことが無いなら、とりあえずほかのソフトに不満を持ってからだな。 何を対象としてどんなやり方でどういう使い方を想定してこんな結果が便利そう・・・とか具体例を持てないと『作る』のは難しい。 使い込み始めると分かるが、シェアの利点はEXE化とデバッガぐらいしかない。 フリーで試してみるならそれはいい事だ。必要なのは探究心です。
- 647 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 00:16:56 ID:QbcstKJg0]
- >>645
Web自動巡回は昔から色んなソフトがある。
- 648 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 01:26:47 ID:PWm0tapx0]
- 株式、先物、FXのシステム売買で
APIを公開していないブローカーを使って取引する時は シェア版UWSC等で書かれたスクリプトが役に立ちそう つーか、この分野で一番需要がありそうw
- 649 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 01:58:34 ID:uSQIty0X0]
- 流石に自動取引は危なっかしくて俺には出来ねぇ…。
- 650 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 03:28:43 ID:ugW3lSoF0]
- >>648
なんでシェア? Web記録があるから?フォーム作れるから? どうみてもC#で十分です。
- 651 名前:名無しさん@お腹いっぱい。 mailto:sage [2009/01/04(日) 03:43:43 ID:7ITfu5Zd0]
- C#とかいい始めたらキリが無いだろ。
- 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秒でやっても負荷たいしてかからないけど 複数地点にして比較すると相当負荷かかってくるカモですね。 その場合はもうちょっと間隔あけるようにします。
|

|