自動化ツールUWSC使いよ集まれ16at SOFTWARE
自動化ツールUWSC使いよ集まれ16 - 暇つぶし2ch750:名無しさん@お腹いっぱい。
16/02/27 23:00:05.73 Iow3jdwl0.net
>>704
戻値 = CLKITEM( ID, アイテム名, [種別, On/Off, 番号] )
戻値
TRUE:正常、 FALSE:処理不能

ヘルプくらい見ろや

751:名無しさん@お腹いっぱい。
16/02/27 23:30:25.92 gFrWrIbO0.net
>>703
ランダム値は試せばわかるって性質のもんじゃないだろw

752:名無しさん@お腹いっぱい。
16/02/27 23:38:07.11 38mQ0onS0.net
値が範囲内に収まるか気になるなら期待値以外になればNG表示する関数を数千回ループさせてみてるとか
スリープの単位がヘルプの内容と同じか気になるなら前後でミリ秒表示してみるとか
仕様が気になった時は検証可能な単位にどうやって分解するか考えよう

753:名無しさん@お腹いっぱい。
16/02/27 23:38:09.23 sQuDImeT0.net
print 0.1+random(3)みたいに
小さい桁で試すとかいくらでも試しようはあんだろ

754:名無しさん@お腹いっぱい。
16/02/27 23:39:50.44 1L8PKm630.net
>>705
ACC系だとFALSEが返ってこないで、そこで動作が止まっちゃうんだよ
一瞬で判定してくれるならいいんだが

755:名無しさん@お腹いっぱい。
16/02/27 23:54:14.26 jnFT48H20.net
>>707
^3^

756:名無しさん@お腹いっぱい。
16/02/27 23:59:06.69 gFrWrIbO0.net
ランダムだと外見的には何回ループしても、多分仕様通りといえるが100%仕様通りと断言できなくなるだろ
ソース見りゃ一目瞭然だけど、テストの結果だけ見るとそういう事になるじゃん。

757:名無しさん@お腹いっぱい。
16/02/28 00:20:30.70 9QYQdQG/0.net
そりゃその通りだが、少なくとも今回の話題である>>699の言う固定だのは試せば確実に分かることだろうが

758:名無しさん@お腹いっぱい。
16/02/28 00:56:26.92 qefict4b0.net
そこもランダム値と足されちゃうから試してわかるのは100%確実ではないなw
そして今のところYES/NOで答えられる質問にだれも答えられていないという・・・
>>699
いい、はず

759:名無しさん@お腹いっぱい。
16/02/28 01:03:30.83 9QYQdQG/0.net
だから固定値は0.1にすりゃわかるって言ってんだろアホ
少しは頭使えや

760:名無しさん@お腹いっぱい。
16/02/28 02:00:59.24 pR7C6fW20.net
>>706
仕様のないものならそうだけど
期待値があって、それにあってそうかどうかを確認するだけなんだから
100万回でも1000万回でもrandom()の引数に対して充分な回数試せばいいだろ
仕様があってるか否かを確認するわけじゃないんだから

761:名無しさん@お腹いっぱい。
16/02/28 02:08:27.06 qefict4b0.net
1000万と1回目で想定外値がでる可能性が微レ存

762:名無しさん@お腹いっぱい。
16/02/28 02:28:46.68 0r4UbGuu0.net
>>716
しつこいぞ

763:名無しさん@お腹いっぱい。
16/02/28 02:38:57.53 9QYQdQG/0.net
的外れにも程があるな阿呆は

764:名無しさん@お腹いっぱい。
16/02/28 02:40:28.35 qefict4b0.net
いや707は言うとおりだけど708は論理的じゃないしさ

あと一応>>711の名誉のために言っておくと自分はそのヒトとは別人です

765:名無しさん@お腹いっぱい。
16/02/28 03:55:09.54 +XXpVUCC0.net
random関数にバグがあるかも知れないからとか
そもそもコンピュータには本物の乱


766:数の生成は不可能だとか そういう話をしてるんだろうか?



767:名無しさん@お腹いっぱい。
16/02/28 04:18:12.48 8+yUHWxH0.net
自分か運用する上で許容できる範囲内かどうかという話なんだけれどね

768:sage
16/02/28 07:54:55.15 k7lnu1y6g
ここで質問して良い内容でしょうか。
ロードス島戦記オンラインにて、KBD関数が動作しません。
原因、対策等わかりましたら教えてください。

769:名無しさん@お腹いっぱい。
16/02/28 11:33:31.44 pR7C6fW20.net
>>716
自分のにたいしてだと思うから一応答えておくと
それは単なるバグで元の質問とは無関係でしょ

770:名無しさん@お腹いっぱい。
16/02/28 12:59:00.66 f5PR4wTV0.net
元質問の人明らかにrandom関数の仕様を理解してないところから来てるから…
バグとそうでないものの違いを判別できない。
だから何回ループしてもその結果をもって仕様通りに動いていると結論付けられない。

771:名無しさん@お腹いっぱい。
16/02/28 13:04:53.34 9oz8zZQ80.net
実はPCを揺らすと数値が飛ぶバグがあるんだ

772:名無しさん@お腹いっぱい。
16/02/28 14:07:12.58 fiqkpaBc0.net
落下中のPCはランダムを返してくれないとかなりそうだなおい。

773:名無しさん@お腹いっぱい。
16/02/28 14:27:31.94 blrfAobm0.net
実は念を送るとランダムの確率が変動するんだ

774:名無しさん@お腹いっぱい。
16/02/28 15:35:04.40 WeWO61jV9
Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
実際の待ち時間が20+120秒以上にならないという保証は無いよ

普通はそこまで気にする必要が無いってのも言うまでも無い

775:名無しさん@お腹いっぱい。
16/02/28 15:34:52.99 Xg5e+H4y0.net
UWSCは大昔のBASICみたいに、何度走らせてもRANDOM関数は同じ乱数と思ってた。

BASICでは、RANDOMIZEでタイマーを引数にしてたなぁ。

776:名無しさん@お腹いっぱい。
16/02/28 15:38:07.16 n2+v+wZb0.net
Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
実際の待ち時間が20+120秒以上にならないという保証は無いよ

普通はそこまで気にする必要が無いってのも言うまでも無い

777:名無しさん@お腹いっぱい。
16/02/28 19:51:10.87 5dU2/tOb0.net
>>730
> Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
> 実際の待ち時間が20+120秒以上にならないという保証は無いよ
そんな厳しい精度で動かす言語じゃないからね。Windows自体がRTOSじゃないからネイティブアプリでも
保証はないし。

778:名無しさん@お腹いっぱい。
16/02/28 20:34:52.25 J1sXa2fC0.net
ごめん単純に使い方が間違ってないかって質問だったごめんなさい

779:名無しさん@お腹いっぱい。
16/02/29 01:14:12.41 kLHNktmf0.net
式による設定のところで7時から19時までの間に9分間隔で実行て出来ます?

780:名無しさん@お腹いっぱい。
16/02/29 02:57:03.79 Y5wKBi2d0.net
GETTIME()でG_TIME_HHを取得して
7時から19時までの間は実行させて
9分間隔はSLEEP(540)でいけるのではないかと

781:名無しさん@お腹いっぱい。
16/02/29 03:01:49.33 kLHNktmf0.net
>>734
すいません
初心者すぎてよくわからないです

例えばこういう場合だと○月○日の7時からのみになってしまうんですよね
(YMDNN>=7894680) AND (YMDNN<=7894980) AND ((YMDNN MOD 60)=0)

毎日7時からというその方法はどう書けば良いのでしょうか

782:名無しさん@お腹いっぱい。
16/02/29 03:11:25.69 vc3n0bkN0.net
>>735
書いてあることそのままやればいいと思うけどな
GETTIME()を実行するとG_TIME_HHに実行時の時間が格納される
あとは7とは19と比較すればいい

GETTIME()
If (G_TIME_HH>=7) and (G_TIME_HH<19) then
やりたいこと
EndIf

783:名無しさん@お腹いっぱい。
16/02/29 03:20:04.69 kLHNktmf0.net
>>736
やりたい事が複数あって時間間隔も色んなパターンがある場合もそれで出来ますか?

784:名無しさん@お腹いっぱい。
16/02/29 03:40:29.09 vc3n0bkN0.net
>>737
条件式変えてやれば大体の動きはできると思うけど…
とりあえず自分で書いてみないと覚えないぞ

785:名無しさん@お腹いっぱい。
16/02/29 03:44:48.44 kLHNktmf0.net
>>738
ちょっと色々と試してみます
どうもです

786:名無しさん@お腹いっぱい。
16/02/29 05:02:19.00 UwM6ts+X0.net
ヘルプも読まずに拾ったマクロの改造法を聞いてるだけっぽいな

787:名無しさん@お腹いっぱい。
16/02/29 05:23:18.45 kLHNktmf0.net
いやもう初心者なんで全然わからんのですよ

788:名無しさん@お腹いっぱい。
16/02/29 06:20:04.43 W4Lx+MiB0.net
初心者っていちいち書くな わかってる

789:名無しさん@お腹いっぱい。
16/02/29 09:56:53.47 S3AkKIbC0.net
なんでも只で手に入ると思うなよw

プログラムの基礎教養があればネット上の情報だけで理解できるが、
それがなければ情報の取捨選択すらできずやりたいことにたどり着けない
1冊くらいは金出して本を読め

790:名無しさん@お腹いっぱい。
16/02/29 10:13:32.76 7awlWggQw
式による設定 7時から19時までの間に9分間隔で実行
HH>=7 AND HH<19 AND (YMDNN MOD 9)= 0

791:名無しさん@お腹いっぱい。
16/02/29 11:07:56.89 W4Lx+MiB0.net
それよりプログラマ雇えといいたい

792:名無しさん@お腹いっぱい。
16/02/29 11:11:22.54 OC88kjRQ0.net
プログラムの素養もネットで身に着けられるし
プログラムの素養が必要って情報もこうやって手に入ってるし
やりとりしてれば2chでのイラつかせるワードも分ってくるし
地道に調べて試してけばいいと思うよ

793:名無しさん@お腹いっぱい。
16/02/29 12:08:54.45 zgYAM+0i0.net
質問してる程度の知識ならすぐにネットで手に入る
だから「初心者なのでわからん」が通用しない
もう少し自分で調べて、具体的にわからない部分が出たらもう一度質問しに来れば良いよ

794:名無しさん@お腹いっぱい。
16/02/29 12:22:07.58 yBnnbdV70.net
初心者さんはまずフローチャート書くか日本語で処理手順を箇条書きにするようにしたらええのよ
んでヘルプなり解説サイトの熟読
いきあたりばったりでスクリプトに手を入れようとするとわけわかんなくなって当たり前よ(´・ω・`)

795:名無しさん@お腹いっぱい。
16/02/29 12:32:25.62 3ZfsBzX30.net
動作がおかしくなったのでプリントでログを確認していたらpublicが原因と分かりましたがいまいち納得ができないです
SLCTBOXやpublicの動作を確認しても問題ないと思うのですが、どうしてpublicをつかったらダメなんでしょうか?

SELECT SLCTBOX(SLCT_BTN, 0,"画面の大きさ設定","デフォルト画面","50%画面")
CASE SLCT_1
public size = 100
print "size(100)=" + size
CASE SLCT_2
public size = 50
print "size(50)=" + size
SELEND
print "size=" + size

この状態のプリントは
size(100)=50
size=50
2つのpublicをはずすと
size(100)=100
size=100
となります。

796:名無しさん@お腹いっぱい。
16/02/29 12:38:11.72 3ZfsBzX30.net
すいません
プリント結果はSLCT_1を選んだ時です

797:名無しさん@お腹いっぱい。
16/02/29 12:45:54.58 Hitpgwgs0.net
CASEに入ってからPUBLIC使ったら見た目通りの順序じゃなくなるよ
実行時にPUBLICを付けた行は先頭に移動するイメージなのです

そのような使い方をしたければPUBLIC宣言は空宣言か0代入をSELECT前に行って下さい
(つまり移動しても大丈夫な所に置く)

798:名無しさん@お腹いっぱい。
16/02/29 12:47:46.09 i1OgRjUe0.net
publicはプログラム実行時に真っ先にに値を読み込むから最後に書いたpublic size = 50が優先されてるんじゃないの
同じ変数を使用する場合でも宣言は基本的に一回だけ

public size
SELECT SLCTBOX(SLCT_BTN, 0,"画面の大きさ設定","デフォルト画面","50%画面")
CASE SLCT_1
size = 100
print "size(100)=" + size
CASE SLCT_2
size = 50
print "size(50)=" + size
SELEND
print "size=" + size

799:名無しさん@お腹いっぱい。
16/02/29 12:50:36.85 7tqwHv410.net
OPTIONと同じやね
後勝ちになる
つーか、同じ変数を何度もPUBLICで宣言なんてするもんじゃない

800:名無しさん@お腹いっぱい。
16/02/29 12:57:09.80 3ZfsBzX30.net
>>751-753
ありがとうございます納得できました
なるべく簡潔に書こうと思っていたのですが良くない書き方だったみたいですね
グローバル変数は極力使わないようにとよく目にするので気をつけます

801:名無しさん@お腹いっぱい。
16/02/29 17:14:21.74 7awlWggQw
>>744 自己レス
式による設定 7時から19時までの間に9分間隔で実行
毎日7時からカウントスタートする式
HH>=7 AND HH<19 AND ((HH*60+NN-(7*60)) MOD 9)= 0

802:名無しさん@お腹いっぱい。
16/02/29 19:14:05.70 7awlWggQw
>>704
if -1 <> CHKBTN(GID,"閉じる") then CLKITEM(GID,"閉じる")

803:名無しさん@お腹いっぱい。
16/02/29 20:24:39.97 7awlWggQw
>>709
URLリンク(www.uwsc.info)
CLKITEM関数のCLK_ACC指定にてダイアログを出すと閉じるまで制御が戻らない  #N15
  CLK_LEFTCLK を付加してください。
  CLKITEM(id, "xxx", CLK_ACC or CLK_LEFTCLK)

804:名無しさん@お腹いっぱい。
16/03/01 00:51:55.84 Hw/6RB5N0.net
基本的な操作でお恥ずかしいのですが、どうしても自力で解決できなかったので
ヒントだけでもお教えください。
Win 7 Professional 64 bit + IE 11での操作です。

テーブル内にダウンロード用リンクが複数(*および青文字のアルファベット部)あり、
それらを自動でひとつずつダウンロードしようとしています。
URLリンク(s1.gazo.cc)

画面の状態までは持ってこれたのですが、どうしても赤枠で囲った保存(S)を
押すことが出来ません。サンプルコードも試してみたのですが、
理解不足かIE, OSのバージョン違いなのか、上手く動作させられませんでした。
クリックすると緑枠部に一瞬新しいタブが出来ているのでそこが関係あるのか、
或いはCLKITEM部が間違っているとは思うのですが……。

A = 0
Repeat
DLLTEXT = IE.document.links[A].innertext
   IfB DLLTEXT <>

805:名無しさん@お腹いっぱい。
16/03/01 01:30:04.42 Hw/6RB5N0.net
切れてしまったのでコード部だけ貼り直します。すみません。

A = 0
Repeat
DLLTEXT = IE.document.links[A].innertext
   IfB DLLTEXT <> "" Then
     IE.document.links[A].click()
     SLEEP(10)
     CLKITEM(GETID("Internet Explorer","#32770"),"保存(S)", CLK_ACC)
   EndIf
A = A + 1
Until A = 100


DLLTEXT~部は、ソースを確認したところ見えないリンクがあったので、それを回避しようと思い付け加えました。

長々とすみません。よろしくお願いします。

806:名無しさん@お腹いっぱい。
16/03/01 04:46:22.39 mSZ5heBH0.net
IEの "ファイルのダウンロード" にて "保存" ボタンが反応しない  #N23
URLリンク(www.uwsc.info)

807:名無しさん@お腹いっぱい。
16/03/01 07:01:07.94 pMN1suyz0.net
エクセルのマクロでリンクを取り出してファイルに書き出して、ロダに食わせるほうがいんでないのかね

808:名無しさん@お腹いっぱい。
16/03/01 07:34:10.51 uRkQmwxK0.net
>>760-761

ありがとうございます。
#N23は試してみたのですが、上手く出来なかったのでWin7だからかIE11だから無理なのかと
思っていたのですが、何か間違えていたのかもしれません。

エクセルマクロの方は考えてもいませんでした。
あまりに手間取るようなら別の方法を試したほうがいいですね……。

もう少し自分でやってみます。ありがとうございました。

809:名無しさん@お腹いっぱい。
16/03/01 07:53:15.84 mSZ5heBH0.net
であればクリックに必要なタイトル、クラス名を調査用のスクリプトを書いて調査したり
開発環境にあるSPY++をつかって調査したりすると良いよ

問題点は
保存ボタンがあるウインドウ(ポップアップ)のIDが取得できていない
保存ボタンのアイテム名が正しくない
のどちらかだからね

後、リンクのクリックまで手動でやってみて
保存ボタンのクリックだけスクリプトで可能かも評価が必要

失敗するなら

IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
URLリンク(www.uwsc.info)

810:名無しさん@お腹いっぱい。
16/03/01 07:57:24.35 mSZ5heBH0.net
あ、ごめん

リンククリック(手動)、保存ボタンクリック(スクリプト)→成功
リンククリック(スクリプト)、保存ボタンクリック(スクリプト)→失敗

なら

IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
URLリンク(www.uwsc.info)

の対処も必要かも

811:名無しさん@お腹いっぱい。
16/03/01 08:07:35.16 w83/qWlj0.net
ようわからんが
win7のie11で下を走らせて置いてダウンロードダイアログだしたら普通に押してくれるが

while true
if CLKITEM(GETID("Internet Explorer"),"保存(S)", CLK_ACC) then break
sleep(1)
wend


#32770これいらんのとちゃうんか

812:名無しさん@お腹いっぱい。
16/03/01 22:50:42.13 HDjL1sAH+
>>763-764
親切にありがとうございます。
SPY++はVisualStudio?を持っていないので用意できなかったのですが、
類似のuuSPYを使用して調べたところ
親の"IEFrame"→子"Frame Notification Bar"→孫"DirectUIHWND"というクラス名の
ダイアログだと分かったので、そこから調べて操作できるようになりました。
問題点の洗い出し方も勉強になりました。これでもう少し自分で調べて解決できるように
なれそうです。

>>765
サンプルまで用意して頂きすみません。
実際に動かしてみたのですが、やはりIDが取得できていないのか
押してくれず……。

お二人とも親切にありがとうございました。

813:749
16/03/02 01:27:17.46 41jBzZAb0.net
>>763-764
一応動作させることが出来ました。
結果的には、保存ボタンのウィンドウIDが取得できていなかったようです。
(クラス名IEFrameだと思っていたのですが、ダイアログは別の名前でした)
SPY++はVisualStudio?を持っていないので用意できなかったのですが、
uuSPYという類似ソフトで調べられました。
SPY++的なソフトの存在(というか問題の洗い出し方?)すら知らなかったので勉強になりました。
丁寧にありがとうございました。

>>765
サンプルまで提示して頂き、すみません。
流してみたのですが、やはり反応せず……
ダイアログが出た後もそのまま動いていったので、
動作停止したわけでもなさそうなんですが……
ともかく、ありがとうございました。

814:名無しさん@お腹いっぱい。
16/03/02 20:36:33.34 TfJohTOi0.net
A.bmpがあったとき 
Aからx+30、y+30の場所にB.bmpがあったときのみC.bmpを押す

画像範囲について検索しましたが画面全体から範囲を指定するみたいですし
Aはいろいろな場所に現れます Bは複数現れます
Aから相対座標で検索範囲指定するためにはどうすればいいのですか?

815:名無しさん@お腹いっぱい。
16/03/02 20:39:40.47 yBkd0HNE0.net
>>768
【ヘルプより引用】
座標情報は配列変数 ALL_IMG_X[], ALL_IMG_Y[] に格納(配列はゼロから)

B探してから配列変数をコピー
ループさせながら相対範囲指定でAを探して
あればCをクリックしたら良いんじゃないかな

816:名無しさん@お腹いっぱい。
16/03/02 21:39:50.37 TfJohTOi0.net
ありがとうございます いろいろ試してみます

817:名無しさん@お腹いっぱい。
16/03/03 12:25:37.00 u+vEEjvS0.net
IFB CHKIMG("A")
ax=G_IMG_X;ay=G_IMG_Y
 IFB CHKIMG("B",0,ax+29,ay+29,…)
IFB CHKIMG("C")
BTN(LEFT,CLICK,G_IMG_X+9,G_IMG_Y+9)
ENDIF
ENDIF
ENDIF

格納がよくわかんないし雑だけどこんな感じは

818:名無しさん@お腹いっぱい。
16/03/03 12:50:46.44 Ck6IE5Sq0.net
PCからスマホの内臓ストレージにファイルやフォルダを転送したいです。
アイテムには日本語が含まれているため、DOSCMD+ADBでは文字化けしていたので、
[MultiByteToWideChar][WideByteToMultiChar]を組み合わせましたが、
半角スペースや特定の文字のため、転送ができませんでした。

何か回避策はないでしょうか?

819:名無しさん@お腹いっぱい。
16/03/03 14:01:05.13 0xlIg63T0.net
よく知らんから適当いうけど、コマンドプロンプトのshift_jisをUTF-8にするとかで解決しない?

820:名無しさん@お腹いっぱい。
16/03/03 14:38:58.59 o8n0++8T0.net
UWSCってどう?
ブラウザとか制御しにくい気がするんだけど

821:名無しさん@お腹いっぱい。
16/03/03 16:23:03.08 Ck6IE5Sq0.net
> 759
それも試しました。
CHCPでSHIFT-JISからUTF-8に変換して、書き込みに行ったんですが、
UTF-8化した文字列が受け付けませんでした。

822:名無しさん@お腹いっぱい。
16/03/04 02:14:39.26 EA8iP2810.net
すみません、助けてください
bluestacks uwscをつかって自動化しようとしてるのですが
uwscのクリックを認識?してくれません
マウスでツムツムの操作は普通にできます。
bluestacksの代わりにエクセルを起動させておく(画面に表示)とクリックも認識してくれています。
非アクティブの問題かとおもいアクティブ化もいれてみましたがだめでした
助言お願いいたします

823:名無しさん@お腹いっぱい。
16/03/04 02:49:01.44 sp+52hH20.net
UWSCが使いないアプリもある
bluestacksはそれ
以上

824:名無しさん@お腹いっぱい。
16/03/04 04:06:59.33 32k0gAq70.net
genymotionで散々やったけど無理だったよ
ウィンドウは掴めるけど内部idが掴めない

825:名無しさん@お腹いっぱい。
16/03/04 09:01:58.98 lSRUIbNn0.net
>>776
絶対座標は?
両方ともプロパティ-互換性-管理者として実行を試す
他にもgoogleでいろいろ試す
ダメならダメ

826:名無しさん@お腹いっぱい。
16/03/04 17:10:22.64 qcabtBIu0.net
プログラミングって具体的な目標が無いと向上しないな

827:名無しさん@お腹いっぱい。
16/03/04 19:28:46.89 0avFt52T0.net
MOUSEORG関数でMORG_DIRECTを指定するとCHKIMG関数とBTN関数の座標に
ズレが発生します。
どうせればズレを解消または補正できますか?

828:名無しさん@お腹いっぱい。
16/03/04 20:28:03.15 Cx1nPm1Z0.net
>>781
たぶん、ウィンドウ座標とクライアント座標のズレが原因だから
ウィンドウ座標を基準にすれば一致すると思う。

829:名無しさん@お腹いっぱい。
16/03/04 22:31:12.71 6AjLUgCP0.net
>>782
ウィンドウ位置を(0,0)に合わせて起動してもズレます

830:名無しさん@お腹いっぱい。
16/03/04 22:53:16.26 ojY0v8Jg0.net
>>783
たいていウィンドウには枠があるでしょ
タイトルバーとかウィンドウを広げたり縮めたりする細い線
アレが影響してると思われるから
ウィンドウ位置を00にしても・・・

831:名無しさん@お腹いっぱい。
16/03/04 22:54:21.95 1DETh6nk0.net
これはさすがにネタだろw
uwsc以前のWindowsの基礎知識の問題だぞ

832:名無しさん@お腹いっぱい。
16/03/04 23:02:35.51 Cx1nPm1Z0.net
>>783
MOUSEORG( ID, MORG_CLIENT ) と MOUSEORG( ID ) で比較してみて

あと、CHKIMG で取得する座標は画像の左上になるけど、
検索画像と座標の間にどのようなズレがあるのか書いてね。

833:名無しさん@お腹いっぱい。
16/03/05 04:26:25.45 TP9s+Xc10.net
>>786
MOUSEORG(id)→(260,100)
MOUSEORG(id, MORG_CLIENT)→(260,125)
MOUSEORG(id,MORG_DIRECT)→(100,400)
こんな感じですが、なぜかMORG_DIRECTはUWSC本体の位置を移動すると座標が変わります

ちなみにコードは↓これです。
id = GetID("Android Screen Monitor")
MOUSEORG(id,MORG_DIRECT)
num = 1
name = "BMP\画像" + FORMAT( num, 1 ) + ".bmp"
While TRUE
if !chkimg(name) Then continue
x=G_IMG_X
y=G_IMG_Y
BTN( LEFT, CLICK, x, y , 200)
sleep( 10 )
if num >= 7 Then num = 0
num = num + 1
name = "BMP\画像" + FORMAT( num, 1 ) + ".bmp"
WEnd

834:名無しさん@お腹いっぱい。
16/03/05 04:31:42.39 TP9s+Xc10.net
MOUSEORG(id)とMOUSEORG(id, MORG_CLIENT)の座標逆でした

835:名無しさん@お腹いっぱい。
16/03/05 05:02:22.36 PQgaMRcF0.net
>>787
URLリンク(www.vuzix.jp)
この画像と比較すると、横の枠がない状態なので
タイトルバーの幅


836:の分だけ MORG_CLIENT のありなしで違う状態ですね。 MORG_DIRECT の方は訳が分かりませんね。 原因を調べるには、MORG_DIRECT を指定した状態で SAVEIMG することです。 画面が崩れて見えると思います。 画面が崩れて見えるだけで、クリックが正常に行えるなら、 MOUSEORG をその都度実行して CHKIMG のときは MORG_DIRECT なし BTN のときは MORG_DIRECT あり とかにすればいいと思います。



837:名無しさん@お腹いっぱい。
16/03/05 23:00:40.60 +UaXZBac0.net
WinnyでMP3ファイルを手に入れたのだが、10曲が1つのMP3ファイルになっている。
これを1曲ずつ10個のMP3ファイルに分けたいのだがどうしたらいいのかね?

838:名無しさん@お腹いっぱい。
16/03/05 23:04:45.09 t6t79+190.net
うーん

わかんない!

839:名無しさん@お腹いっぱい。
16/03/06 00:14:59.81 dCUjX7lH0.net
>>790
torスレに回答してくれてる人がいるぞクソ虫

840:名無しさん@お腹いっぱい。
16/03/06 09:47:42.18 TvpTaFVp0.net
>>790
.zipをつけて解答

841:名無しさん@お腹いっぱい。
16/03/06 10:49:16.69 zGk8lpZo0.net
>>790
手動でやればいいんじゃない?

842:名無しさん@お腹いっぱい。
16/03/06 11:37:41.69 RRLqddKE0.net
10個のmp3のアーカイブならともかく、10曲が一つのmp3になってるなら
編集ソフトで切り出すしかないのでは

843:名無しさん@お腹いっぱい。
16/03/06 12:04:50.72 WY+6IsJt0.net
なんでおまえら答えてんの

844:名無しさん@お腹いっぱい。
16/03/07 14:52:09.82 9LHTjHFn0.net
関数の呼び出しで参照引数の初期値代入とか出来ないんでしょうか?
あらかじめ先に初期値代入するしかない?

abc(hoge=111)
print hoge

procedure abc(var hoge)
 hoge = hoge + 100
fend

845:名無しさん@お腹いっぱい。
16/03/07 15:09:06.92 WbyHlW0e0.net
なんじゃそれ

abc(111)

でいいだろ

846:名無しさん@お腹いっぱい。
16/03/07 15:12:10.38 WbyHlW0e0.net
ああ、そんでhogeを続きの処理で使いたいのか
それで動かないんならできないんだろ
大人しく先に代入しとけよ
1行増えるだけじゃん
どうしてもそうしたい理由でもあんの?

847:名無しさん@お腹いっぱい。
16/03/07 15:51:15.35 67LYGWDp0.net
>>797
hoge = 111; abc(hoge); print hoge //1行で済んで行も短い

huga = bcd(112); print huga //でもなんでこうしないの?
print bcd(113)

procedure abc(var hoge)
 hoge = hoge + 100
fend

function bcd(hage)
 result = hage + 150
fend

848:名無しさん@お腹いっぱい。
16/03/07 15:58:21.83 9LHTjHFn0.net
上で挙げてるのはただの例です。
実際は参照引数が多く、引数の一部だけ初期値代入したいのと
print文は無いですね。

849:名無しさん@お腹いっぱい。
16/03/07 16:09:04.11 gjVyQnvH0.net
はげ+150本 = そんなに増えていませんよ

850:名無しさん@お腹いっぱい。
16/03/07 20:04:53.77 tjYcm4Q90.net
それは参照渡しを使うことが間違いなんじゃね?

851:名無しさん@お腹いっぱい。
16/03/07 20:20:19.36 tjYcm4Q90.net
参照引数ってのは値じゃなくてメモリの番地とかそういうものを入れてるんじゃなかったっけ?
だから参照引数に値は代入できない

852:名無しさん@お腹いっぱい。
16/03/07 21:49:34.48 Yt8oL/UZ0.net
そもそも一度も代入も宣言もしていない変数は使えないよ

dim hoge
abc(hoge , 111)
print hoge
sleep(10)

procedure abc(var hoge , hoge0 = hoge)
hoge = hoge0 + 100
fend

これなら動くけど最初のdim文外すと怒られるから意味が無い

853:名無しさん@お腹いっぱい。
16/03/07 22:27:49.67 9LHTjHFn0.net
一つの関数で複数の変数を変更するのだけど、その関数より前には使わない
結果受け取り専用の引数で

a=0;b=0;c=0;…10個くらい   //まあこれが無意味な文に思えてならない
abc(a,b,c,…)

procedure abc(var a, var b, var c,…)
 …
fend

854:名無しさん@お腹いっぱい。
16/03/07 22:43:28.84 YgJHqyxo0.net
>>797を見ると受け取り専用とは見えなかったけど
単にその目的なんだったら>>805の人が書いてるように

Dim a,b,c...
abc(a,b,c...)
でいいんじゃないの?

855:名無しさん@お腹いっぱい。
16/03/08 0


856:9:25:26.60 ID:X39hgh8s0.net



857:名無しさん@お腹いっぱい。
16/03/08 11:36:49.32 mdQ0PQ+40.net
>>808
正にそんな感じ…

参照引数が多いのは外部からのデータ取得を一気にやるせいで
その関数の内部は整理されてるんだけど。

最初は小規模なスクリプトで変数の管理とか適当で、後から書き加えていったから
今はこんなはずじゃなかったorzって状態になってて後悔してる。

858:名無しさん@お腹いっぱい。
16/03/08 14:04:27.07 EYyC3Yny0.net
質問です。
MOUSEORGを使用したバックグラウンド操作で、
マウスオーバーする方法ってありますかね?

マウスオーバーして出てくる画像の認識をしたいんだけどできぬ

859:名無しさん@お腹いっぱい。
16/03/08 15:29:09.82 X39hgh8s0.net
それはバックグラウンドのウィンドウにマウスオーバーイベントを
発生させろと言っているに等しいんだが…
これ自動化ツールよ?
まずあなたが手動で隠れたウィンドウにマウスオーバーしてみなさいよ!
とんちかな?

860:名無しさん@お腹いっぱい。
16/03/08 15:47:28.50 YrarT/t10.net
一休さんのトラの屏風の事だな

次の方どうぞ

861:名無しさん@お腹いっぱい。
16/03/08 15:52:30.08 uEQeFD2u0.net
mmvのこといってるんじゃない?

862:名無しさん@お腹いっぱい。
16/03/08 15:58:04.94 /957NIFT0.net
煽りたいだけで答えられないならちょっと黙ってろよ
俺は黙る

863:名無しさん@お腹いっぱい。
16/03/08 16:05:17.57 CELrwcnT0.net
>>811
どういう理屈だよ
元々UWSCで出来るバックグラウンド操作は手動で出来ないでしょ

864:名無しさん@お腹いっぱい。
16/03/08 16:25:16.15 XRfaJMaM0.net
バックグラウンド操作でもマウスオーバーイベントが発生するかどうかという
その対象ソフト側の問題なんだから、UWSCの質問じゃないぞ。

865:名無しさん@お腹いっぱい。
16/03/08 16:54:18.27 oQSRIGCR0.net
なんかレベル下がったなここ

866:名無しさん@お腹いっぱい。
16/03/08 17:08:25.81 X39hgh8s0.net
>>815
バックグラウンド操作は元々のUWSCのコンセプトPC操作の自動化を
あくまで拡張したものであって、
出来なくて当然のことが出来るようになった機能だよ。
それをあたかも出来て当然のように認識されても困るわな。
まぁこんなソフトが無料で使えるだけでも奇跡的なんだが。
マウスオーバーイベントをマウスオーバーせず強制的に
外から発生させることが可能なAPIが公開されてるならば、
もはやマウスオーバー画像を直接ぶっこ抜くことも出来るんじゃね?
自動操作というよりアプリハッキングだわな。
まぁこれであっさり出来ますよとかコードが出てきて
俺が逆立ちするハメになるかもしれんがw

867:名無しさん@お腹いっぱい。
16/03/08 17:29:48.80 d7jVEpko0.net
Win32ApiのSendMessage(PostMessage)等を使ってイベントを発生させる方法はあるにはあるよ
それをアプリハックと呼ぶかは置いておいて

重要なのは作業中のマウスは普通に存在し続けているって事なので
バックグラウンドだと資源衝突が発生するのでやっぱり安定しないのよ

平たく言うとスクリプトがここにマウスがあるよとした直後に
本当のマウス位置に更新されるのでここにはマウスは無いよとなる

だからよく分からなければ別PC用意して最前面でやる
仮想環境が分かるならそっちの最前面でやれ(内部的なマウス位置が存在するので資源衝突しない)がFAQとな�


868:チてるのよ



869:名無しさん@お腹いっぱい。
16/03/08 17:39:00.04 OiSIw5XY0.net
VBScript で一般的なキー入力のエミュのやり方
URLリンク(msdn.microsoft.com)
"2"のキーをクリック
> WshShell.SendKeys "2"

ドライバ→Windows→アプリってのを
自動化ソフト→アプリって短縮しただけでしょ。
アプリに直接送る方が簡単だけど(それで動くとは言ってない)

UWSCが選ばれる理由は画像認識と操作の記録再生が簡単ってところだよ。
別に自動操縦が特別ってことはない。(特許を取ってるところはある)

870:名無しさん@お腹いっぱい。
16/03/08 17:41:37.94 EYyC3Yny0.net
>>811-817
無知でごめんな
>>818-819
詳しく教えてくれてありがとう
やっぱり仮想環境構築か物理的にもう一台PC用意するのが手っ取り早いってことですね
仮想環境構築してやってみます

871:名無しさん@お腹いっぱい。
16/03/08 17:43:25.86 bSkm1Om50.net
1日調べてわからなかったので質問させてください。
-----------------------------------------------------------------

THREAD スレッド(1)
THREAD スレッド(2)
sleep(200.0)

PROCEDURE スレッド(i)

ID[i] = GETID(GET_FROMPOINT_WIN)
中略
MOUSEORG (ID[i])

CALL 関数.uws

REPEAT
sleep(0.1)
UNTIL CheckColorScope(124,374,

872:名無しさん@お腹いっぱい。
16/03/08 17:44:19.61 bSkm1Om50.net
UNTIL CheckColorScope(124,374,"R",35,10)
BTN(LEFT,CLICK,80,108,100)

FEND


この状態でスレッド2側がスレッド2側の相対座標のCheckColorScopeを行ってくれず
スレッド1側の相対座標をCheckColorScopeしてしまいます。
ボタンクリックやPeekColor単体、関数の中身をバラしてREPEAT~UNTIL間に
組み込むとスレッド2側の相対座標のCheckColorScopeを行います。
関数を組み込んだ状態でスレッド2側の相対座標をCheckColorScopeさせるには
どうしたらいいでしょうか。

873:名無しさん@お腹いっぱい。
16/03/08 18:06:11.90 mdQ0PQ+40.net
ユーザー作成関数を組み込み関数であるかのように書かれても…

874:名無しさん@お腹いっぱい。
16/03/08 18:10:36.84 mdQ0PQ+40.net
あとそれスレッド1とスレッド2とほぼ同時に走るから実質同じものかと

875:名無しさん@お腹いっぱい。
16/03/08 18:16:33.76 X39hgh8s0.net
たしかUWSCのスレッドは、スレッド無いから呼び出したユーザー定義関数を、
そのスレッド内で実行しなかったような気が?
引数だけで算数して結果を返すだけのようなリエントラントな関数ならいいけど、
Windows上のリソースにアクセスするようなのは期待した動きをしなかった気がする。
試しに、自作関数を一時的にスレッドで呼び出すプロシージャ内に展開してやってみて。

876:名無しさん@お腹いっぱい。
16/03/08 18:32:29.53 bSkm1Om50.net
>>824 申し訳ないです。自作関数の中身です。処理は一緒ですが、相対座標だけをずらして
並列で処理させてようとしてうまくいかず、、、
Function CheckColorScope(PosX, PosY, Element, BaseValue, Scope)
Select Element
Case "R"
ElementValue = PeekColor(PosX, PosY,COL_R)
Case "G"
ElementValue = PeekColor(PosX, PosY,COL_G)
Case "B"
ElementValue = PeekColor(PosX, PosY,COL_B)
Default
Result = False;
exit;
SelEnd
Ifb (ElementValue >= BaseValue - Scope) And (ElementValue <= BaseValue + Scope) Then
Result = True;
Else
Result = False;
EndIf
Fend

877:名無しさん@お腹いっぱい。
16/03/08 18:41:58.65 bSkm1Om50.net
連投ですいません。
>>826
Windows上のリソースにアクセスするようなものではないですね。
ブラウザを2個起動した状態で同じ動作を並列処理させようとしてるのですが
>>827 の関数を使うと相対座標が片方に寄ってしまうんですよね。。。
展開すると関数が入れ子しているか、閉じていませんでエラーになります。。

878:名無しさん@お腹いっぱい。
16/03/08 18:46:18.69 4EtCLtde0.net
ID[i] = GETID(GET_FROMPOINT_WIN)

これってカーソルの下のウィンドウよね?
スレッドでほぼ同時に取得してるのにこれでIDきちんと2つ取れてるん?

879:名無しさん@お腹いっぱい。
16/03/08 18:49:12.06 4EtCLtde0.net
どっちか片方のIDしか取れてなくて2つのスレッドが同じウィンドウにMOUSEORGしているような気がする
ID二つとも確認してみたら

880:名無しさん@お腹いっぱい。
16/03/08 18:59:56.84 bSkm1Om50.net
>>829
スレッド2側の処理ですが、以下のように処理されますので、
可能性としては低いと思われますが、念のため確認してきます。
UNTIL CheckColorScope(124,374,"R",35,10) ←×こっちがスレッド1側の相対座標に
BTN(LEFT,CLICK,80,108,100) ←◯こっちはスレッド2側の相対座標

881:名無しさん@お腹いっぱい。
16/03/08 19:03:16.67 X39hgh8s0.net
今テストプログラムで確認してみたら、
PCが高負荷でなければスレッドがリソース云々は無かった。
それよか、各スレッドのpeekcolorが対象にするウィンドウIDが
mouseorgで指定されないから、
たまたまアクティブなウィンドウが対象になる。
ウィンドウID管理しなきゃ。

882:名無しさん@お腹いっぱい。
16/03/08 19:05:47.87 X39hgh8s0.net
具体的には、スレッドにする関数の引数にウィンドウIDを追加して自作関数呼び出す直前にmouseorg
または自作関数の引数にも追加してpeekcolorの直前にmouseorg

883:名無しさん@お腹いっぱい。
16/03/08 19:22:19.67 bSkm1Om50.net
>>830 PRINTにID表示させてみました。1と2でしっかり別れてました。
>>832 助言感謝です。さっそくやってみます。

884:名無しさん@お腹いっぱい。
16/03/08 19:24:40.32 X39hgh8s0.net
mouseorg使ってたねスマンね、きっと想定通りにウィンドウIDが取れてないんだろうね。
現在対象にしてるウィンドウIDをball0onで表示するようにしてみるといいよ
(スレッドごとに表示されるのでID*100ぐらいの座標指定して重ならないよう別位置に表示)

885:名無しさん@お腹いっぱい。
16/03/08 19:27:50.46 X39hgh8s0.net
被った、IDがいいなら後は判らんな
判定直前に対象ウィンドウをCTRLWIN(ID, ACTIVATE)してみるとか、
判定対象の位置付近にballoonを表示してみて見てるとこ合ってるかどうか確認
ぐらいかな

886:名無しさん@お腹いっぱい。
16/03/08 19:32:50.77 bSkm1Om50.net
>>836 了解です。バルーンで追うのはまだやってなかったので
バルーンでしばらく追いつつ試してみます!

887:名無しさん@お腹いっぱい。
16/03/08 19:57:44.27 OiSIw5XY0.net
>>822
CALL をスレッド関数内でやってんの?
これはスレッドで動かないんじゃない?

あと、スレッドを使うならグローバル変数使うんじゃなく
データを渡してしまった方がいい。
なんで添え字を渡してグローバル変数の配列にアクセスさせるのかわからない。
そういうのはC言語でやってください。
C言語でも配列の添え字を渡してグローバル変数にアクセスとかしないと思うけど。
普通はアドレスを渡しますね。

別にグローバル変数にアクセスしてもいいんだけど
それは変化するデータをリアルタイムにアクセスする必要があるときや
スレッド関数から値を戻すときくらいですね。
一度取得したIDは変化しないからコピーを渡してしまって構わない。

888:名無しさん@お腹いっぱい。
16/03/08 20:13:05.28 X39hgh8s0.net
それは多分ね、UWSCのスレッドとして呼び出した関数は、
戻り値を得ることが出来ないから、スレッドで取得した値を
メインから得る方法はグローバル変数しか無く、
スレッドがGETIDしたウィンドウIDをメインから見たいんじゃないかな。
CALLをスレッド内に入れるのはちょっと変態的なのは同意

889:名無しさん@お腹いっぱい。
16/03/08 20:44:35.98 bSkm1Om50.net
返事遅れて申し訳ないです!
別の方法(スレッド化せず処理)でさっくり想定通りの結果が得られました!
無駄に難しい処理しようとしてたんだなと・・・
ハマって色々学べたのでよかったです。
>>838 今後のために参考にさせて頂きますOTZ
>>839 他皆様、ご助言たくさんいただき有難う御座いました!

890:名無しさん@お腹いっぱい。
16/03/09 17:41:50.93 mQOmooo80.net
getidで2窓で開いているIE上の同じページを区別させたいんですが、
クラス名で区別させるんだと思いますがそのクラス名が分かりません

今現在は
getid("ウインドウタイトル","IEFrame")

でやっています
どなたかお願いします

891:名無しさん@お腹いっぱい。
16/03/09 18:17:29.81 llmIWy


892:Ss0.net



893:名無しさん@お腹いっぱい。
16/03/09 18:25:43.67 sRxQkC9R0.net
>>841 教えてヤフーにあったよ
オイラもそれでフラッシュゲームのバックグラウンド化に成功した
(´・ω・`)

894:名無しさん@お腹いっぱい。
16/03/09 18:47:20.16 mQOmooo80.net
>>842
ごめんなさい
今現在↓こう書いてるのですが、このIEFrameというのがクラス名ですよね?
getid("ウインドウタイトル","IEFrame")
二つ目のIEではこれはなんと書けばいいんでしょう?

>>843
お手数ですが、そのURL教えてもらえませんか?

895:名無しさん@お腹いっぱい。
16/03/09 19:04:38.44 sRxQkC9R0.net
おいおい それぐらい自分で探しなよ
オイラはそれを保存してるからもうそのページに用はないんだよね
(´・ω・`)

オイラもフラッシュゲームのバックグラウンド化について
検索しながら試行錯誤しながら廻りまわってたどり着いたんだよね

オイラたちはヒントをだす
あとは自分で調べる、試す これは基本だよ

896:名無しさん@お腹いっぱい。
16/03/09 19:26:22.70 llmIWySs0.net
一般論として
クラス名は単なるウインドウの種類の宣言でしかない
従ってほぼ全てのアプリで2つ目のウインドウだからといって違うクラス名になったりはしない
それぞれのウインドウはIDで区別される

UWSCの機能だけでやろうとしたらGETALLWINを使ったりする

個人的にはIEのタブを探して操作するなら
SHDocVw.ShellWindows から目当ての SHDocVw.InternetExplorer を見つけてCOM操作するけれどね

どっちにしてもいきなり二つ目のウインドウってアクセスは出来ない
IEのウインドウをループで回して対象URLのウインドウをピックアップして集めてから
その何個目ってしないと駄目

897:名無しさん@お腹いっぱい。
16/03/09 19:28:29.35 llmIWySs0.net
で、面倒臭いなと思ったら半自動スクリプトにしたら良いんだよ

スクリプトの最初に操作対象をクリックして下さいとか表示するとかね
完全自動化はそのための知識が揃ってからチャンジしたら良い

898:名無しさん@お腹いっぱい。
16/03/09 19:59:37.81 ZH6SCA5x0.net
UWSC公式サイトのFAQに載ってる毎度の質問だな

899:名無しさん@お腹いっぱい。
16/03/10 00:09:29.62 kbf2APsQ0.net
URLリンク(canal22.org)

900:名無しさん@お腹いっぱい。
16/03/11 02:09:47.22 vpN6R87y0.net
AutoHotKeyとの違いってなに?
こっちに出来て向こうにできない、またはその逆とか

901:名無しさん@お腹いっぱい。
16/03/11 02:24:04.07 q9CfIyKs0.net
日本語変数は無理なんじゃないかな

902:名無しさん@お腹いっぱい。
16/03/11 02:34:58.77 ZLCOlBAo0.net
自作関数をEXITで抜けるみたいに、CALLで呼んだものを途中で抜けるってできるの?

903:名無しさん@お腹いっぱい。
16/03/11 03:46:02.49 fLUkQ1x50.net
EXITじゃないの?

904:名無しさん@お腹いっぱい。
16/03/11 03:53:20.39 8BXL68Gt0.net
CALLが何かを全く理解してない奴って多いよね

905:名無しさん@お腹いっぱい。
16/03/11 13:22:41.14 TzmisRaw0.net
「呼んだもの」のなかで途中で抜けるように作れば抜けるし、最後までやるように作れば最後までやるだけだが。

906:名無しさん@お腹いっぱい。
16/03/11 15:51:14.74 9MIhB+Zw0.net
Firefox系ブラウザ って
FLASHブラウザゲームに
MOUSEORGのMORG_DIRECTって使えないの?
BTNが反応しませんでした
Chromeは使えましたが、
Chromの方は、MORG_BACKがCHKIMGで認識しませんでした

907:名無しさん@お腹いっぱい。
16/03/11 17:05:56.39 xL247s8c0.net
煽りじゃなくて頑張った結果が使えないのなら使えないのでしょう

ブラウザはIE以外はマルチプラットフォームのため標準コントロールを使用していないし
裏になったら再描画しないパターンもあるしね

裏動作は出来る時もある位の気持ちで
仮想化環境を使って最前面か別PCが安定ってのがFAQだよ

908:名無しさん@お腹いっぱい。
16/03/11 17:41:53.19 uLXjBvrS0.net
hoge=

909:名無しさん@お腹いっぱい。
16/03/11 17:52:21.69 uLXjBvrS0.net
すいません、NGワードで弾かれたっぽいです


hoge="あいうえおあいうえお"

上記変数の、左から5番目の「お」だけを
「ん」に変えたいんですけど、そんな命令ありますか?
置換命令のREPLACEだと、番号指定は無理ですよね?

hoge=COPY(hoge,1,4)+"ん"+COPY(hoge,6)
遠回りな気がしますが、こんな感じにするしかないんでしょうか?

910:名無しさん@お腹いっぱい。
16/03/11 17:57:29.45 8eZkzZWt0.net
仮想化はOS用意しないといけないからなあ
linuxとか無料らしいからそれ使えればいいけどな

911:名無しさん@お腹いっぱい。
16/03/11 18:21:03.26 xL247s8c0.net
>>859
それしかないって事はないけれど特に近道も無いよってのが答えだと思う

VBSの文字列操作用や正規表現用のオブジェクトを生成して処理したり出来るが
特に行数が減るわけではない(寧ろ増える)

昔と違ってメモリを節約する努力なんて不要なんだから
行数や命令を減らす努力はそれ程重要じゃない
最適化しすぎて同じ結果になるけれどやりたい事との文脈が違う場合とか
後から見ると混乱のもとになるからね

メインの処理のやりたい事が「文字列のn文字を入れ替える」なら
そういうユーザ関数を作成して抽象化したら良いのよ

912:名無しさん@お腹いっぱい。
16/03/11 18:28:44.96 HWMGVE3/0.net
遠回りどころか、処理的には replace よりむしろ近道なのでは

913:名無しさん@お腹いっぱい。
16/03/11 19:10:33.56 9aIMxtHY0.net
>>856 ただのバックグラウンドならできる
(画面が隠れてたり最小化だとできない)
クラス名を取得してハンドルする
教えてヤフーにやり方のヒントがある
(´・ω・`)

914:名無しさん@お腹いっぱい。
16/03/11 19:19:08.73 LoB9QIb70.net
バックグラウンドと画面が隠れていることの違いって何

915:名無しさん@お腹いっぱい。
16/03/11 20:39:57.96 9MIhB+Zw0.net
>>863
クラス名なら、Firefoxは、MizillaWindowsClass
Chromeは、Chrome_RenderWidgetHostHWND
これは取得できて、ハンドルも取得できていて
それは、わかってるんです。
ただのバッググラウンド状態でももちろん試しました
Yahoo知恵袋なども結構参照した方です
ですが、IEとChromeは、MORG_DIRECTが使えて
Firefoxだけは、MORG_DIRECTが使えませんでした。
BTNが反応してくれない。それってあり得るんですかね?

916:名無しさん@お腹いっぱい。
16/03/11 23:22:31.33 V+G/WUuc0.net
While True

ifb CHKIMG("A.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)

else
ifb CHKIMG("B.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)

else
ifb CHKIMG("C.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
else
sleep(0.3)
BTN(LEFT,CLICK,1000,500)

endif
endif
endif

sleep(0.1)
WEND

こんな感じのマクロを組んだのですが最後の
sleep(0.1)
BTN(LEFT,CLICK,1000,500)
が1秒くらい間隔開けて連打するので困っています
0.3秒くらいの間隔で連打させたいのですが何を弄ればいいのでしょうか?

917:名無しさん@お腹いっぱい。
16/03/11 23:37:24.40 q9CfIyKs0.net
0.3秒+500ミリ秒+0.1秒=0.9秒

当たり前の話でんがな

918:名無しさん@お腹いっぱい。
16/03/11 23:40:11.60 q9CfIyKs0.net
間違えたハズカシ
つかchkimgは範囲が広いとそれだけ時間かかるからPCのスペック次第で時間が変わる

919:名無しさん@お腹いっぱい。
16/03/11 23:55:24.06 V+G/WUuc0.net
>>868
なるほど、処理が追いついていないと
そこそこのスペック持たせてるはずなのに画像認識の処理ってけっこうパワーいるのに驚きです

920:名無しさん@お腹いっぱい。
16/03/12 00:22:19.71 vIYJtZWi0.net
× BTN(LEFT,CLICK,1000,500)

○ BTN(LEFT,CLICK)

921:名無しさん@お腹いっぱい。
16/03/12 00:58:30.41 JA7kK


922:oOW0.net



923:名無しさん@お腹いっぱい。
16/03/12 05:37:53.21 vIYJtZWi0.net
あ、つい。数字をミリ秒と読んでしまって。

画像を小さくして範囲を絞れば速くなります。

範囲を絞るために GETID() で対象ウィンドウを特定して
STATUS() で座標を取って CHKIMG() で範囲を指定します。
MOUSEORGで基準座標を対象ウィンドウにすれば
範囲は 0, 0 からサイズ x, y で指定できるので楽です。

他の方法としては
数ドットの色だけで判定できる場合は
検索範囲の画像を SAVEIMG() でクリップボードにコピーして
クリップボードから PEEKCOLOR() で検索すると早いです。
でも、数ドットで済むようなら1秒もかかってませんね。

924:名無しさん@お腹いっぱい。
16/03/12 08:55:36.12 1ZX49PQ60.net
>>866
なんか凄い見にくいけどこういうことだよね?
While True
  ifb CHKIMG("A.bmp")
    BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
  elseif CHKIMG("B.bmp")
    BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
  elseif CHKIMG("C.bmp")
    BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
  else
    sleep(0.3)
    BTN(LEFT,CLICK,1000,500)
  endif
  sleep(0.1)
WEND

sleep(0.3)の部分は3回試した後だし、sleep要らないのでは

925:名無しさん@お腹いっぱい。
16/03/12 12:51:15.36 ah+GWDsu0.net
ヒント①
ループ開始時に開始時間を記録
その他のボタンクリック前の時間と開始時間を引いて経過時間を記録
経過時間が300ミリ秒以内ならその時間だけスリープ

ヒント②
DEF_DLL timeGetTime(): LONG: winmm.dll //ミリ秒単位の時間を取得
(わざわざwin32api使うのはUWSCは経過時間の取得は小数点(割合)になるので直感的じゃないから)

926:名無しさん@お腹いっぱい。
16/03/12 12:54:01.60 fkR2rJoF0.net
まあ今回の場合、処理が0.6秒位かかっているようだから
スリープ0にしたところでダメだし時間測るのは無意味と思うけどね。

どちらかというと範囲制限の方が有効だろう

927:名無しさん@お腹いっぱい。
16/03/12 13:11:01.48 ah+GWDsu0.net
それ前提のつもりでした言葉足らずだったね
0.3秒感覚でクリックしたいならそうなるようなロジックが必要ですよと

928:名無しさん@お腹いっぱい。
16/03/12 20:47:24.15 XzxPU9E/0.net
タイミングはシビアになるかもだけど、Thread()で0.3秒ごとにクリック
メインではChkimg()してヒットしたらフラグを立てて
Threadのほうのクリックを抑止してメイン側でクリック
とか?

929:名無しさん@お腹いっぱい。
16/03/13 01:10:40.53 yStCxW+O0.net
まず最初にみんなありがとう
せっかく教えてくれるのにごめん
ミジンコにとっては半分近くが呪文だったのです

>>872
もうちょい画像絞ってみます
知らない関数もあるのでそれも調べてみます

>>873
sleepよりも何よりもelseifの存在を忘れてた自分が馬鹿でした
適当なサイトのコピーから改竄してたのですがこれでC+齧ってたのかと思うと恥ずかしいです

>>874
誤差分だけスリープなんてできたんですね
>>875さんの件も含めて考えて、それで処理時間含めての最短を設定できるように調整してみます

>>877
並列は考えたのですが他の作業中に「そこ」をクリックされると困るので破棄しました
それを破棄した理由が連打させたい時に画面には決まった画像というのがないという事なのです


拾い物の改竄だけだと何も身につかないと再確認して自分を恥じます
勉強しなおして出直しますのでその時また困ったらお力をお貸しください

930:名無しさん@お腹いっぱい。
16/03/13 05:59:29.63 Oa7DQQ9u0.net
chkimg3つをそれぞれ別スレッドで動かして
発見フラグが一つもない時だけ1000,500をクリックでいいのでは
これなら今どきのマルチコアCPUなら3倍速で動くはず?

931:名無しさん@お腹いっぱい。
16/03/13 10:3


932:4:38.97 ID:5BxruRGM0.net



933:名無しさん@お腹いっぱい。
16/03/13 10:38:41.65 5BxruRGM0.net
ARToolKitで複数マーカーを使ってみた
URLリンク(youtu.be)

ARToolKitを使った 「拡張現実感」
URLリンク(kougaku-navi.net)

これだけグリグリ動くんだから
ビットマップの完全一致くらい一瞬じゃないとおかしいんだけどね。

おまけ
URLリンク(astertune.com)
> OpenGLより高速で、iOSに特化したMetalというAPIが昨年登場 (2015年8月30日の記事)

URLリンク(codeit.blog.fc2.com)
> SSE を使用することにより約二倍の高速化が見込まれ

URLリンク(tanakah.blogspot.jp)
> 車速とギアを認識するDirectXフィルター
> やり方ですが、OpenCV1.0についてくるproxytransフィルターを改造してつくります。
> OpenCV cvMatchTemplate()

OpenCvSharp 投稿日: 2014年2月6日
URLリンク(jpusergis.wordpress.com)

C#ならUWSCからPowerShell経由で呼び出せるけど
呼び出しに1秒くらいかかるんだよね。

> 315 名前:Nekorabbit ◆jpnWwiLScI [sage] 投稿日:2014/11/30(日) 07:16:25.97 ID:aCUfDH4j0.net
>   画像認識関数 ChkImgX-ver1.2.0
>   URLリンク(googledrive.com)
>  
>   やっぱりOpenCVを使うようにした。それとソースコードを追加

934:名無しさん@お腹いっぱい。
16/03/13 10:40:01.87 5BxruRGM0.net
やっぱりシンプルで高速なライブラリってのは他にないんだな。
シンプル過ぎてな。

935:名無しさん@お腹いっぱい。
16/03/13 13:21:20.33 DqbPwOfU0.net
>>866

OPTION SHORTCIRCUIT
While True
 ifb CHKIMG("A.bmp") or CHKIMG("B.bmp") or CHKIMG("C.bmp")
  BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
 else
  BTN(LEFT,CLICK,1000,500)
 end
WEND

試してないが、こうやったほうが早いかも
OPTION SHORTCIRCUITは片方の条件を見つけた時点で以降の条件は探さないらしい
これで動いてくれると思う

936:名無しさん@お腹いっぱい。
16/03/13 13:44:27.34 MyuwQ+3+0.net
>>883
それ一緒だから。

実質スリープ無くしただけ

937:名無しさん@お腹いっぱい。
16/03/13 14:35:12.26 0ijLe2jo0.net
UWSCのSHORTCIRCUITはオール・オア・ナッシングで
副作用への注意が必要だからあまり好きじゃない

短絡評価の条件式があれば良いんだけれどね

938:名無しさん@お腹いっぱい。
16/03/13 16:32:38.86 nEkRwzyP0.net
ただの秒数設定ミスのクソ質問かと思いきや微妙に建設的な質問になっててワロタ

939:名無しさん@お腹いっぱい。
16/03/13 16:45:35.50 E0WmGTEK0.net
>>878
いろいろな事を考えると


940:elseifでは対応できない場合も想定されるから 総合的に考えると else if のままのほうがいいみたい? まぁその分endifが増えるんだけど



941:名無しさん@お腹いっぱい。
16/03/14 19:14:44.98 i2rVe3gR0.net
それは総合的に考えるモノじゃないだろう
必要に応じて使い分けるだけで

942:名無しさん@お腹いっぱい。
16/03/14 22:57:21.23 yWL5pN6J0.net
保守のやりやすさまで考えるとelseif一択
else ifのほうが綺麗に書けるケースはちょっと思い浮かばない

943:名無しさん@お腹いっぱい。
16/03/15 01:55:30.43 47j5cpZS0.net
個人的にifは二択のときだけ
それ以外の選択肢が増えそうなときとかはcase文の方を使いたいとこだ…。

944:名無しさん@お腹いっぱい。
16/03/15 03:45:02.21 SCAnh7Td0.net
ifとcaseでは明確に用途が違うような。

945:名無しさん@お腹いっぱい。
16/03/15 03:50:19.31 dAPydsp10.net
俺はcaseは限定的な時にしか使いたくないな
逆にそれ以外はif分岐させてる

946:名無しさん@お腹いっぱい。
16/03/15 04:07:47.33 SCAnh7Td0.net
いやいやいや
caseはひとつの条件式の結果で分岐するもので
elseifは複数の条件式を使うものでしょう?
かぶる部分も無いではないけど、普通は用途で決まるような。

947:名無しさん@お腹いっぱい。
16/03/15 05:28:13.13 47j5cpZS0.net
確かに用途でも決まるね。。
俺が想定してのが単純な一つの値の判定だったから混乱させて申し訳無い

複数の判定が一つの条件式にあると
後から読みにくかったり理解しにくくなったりしそうで
ifの中には一つの判定だけをなるべく書く様にしてるからつい…。
中にどんどんif入れてくのも同様の状態になるから入れ子は少なくすることを検討した作りにしてる

948:名無しさん@お腹いっぱい。
16/03/15 11:35:32.40 Ye8AnKp+0.net
caseはbreakさせないって使い方もあるから、一概にどっちがいいとは言えないね

949:名無しさん@お腹いっぱい。
16/03/15 11:57:04.20 RI0XNTAs0.net
なるほど思い出した

950:名無しさん@お腹いっぱい。
16/03/15 13:32:13.65 H7Ch8AYF0.net
UWSCのSELECTはフォールスルー使えなくない?
ELSEIF連鎖はメーラーの振り分けみたいな優先順位付き判定群だから使い道が違う。
SELECTは1つの判定で複数の分岐。
UWSCのSELECTは、SELECTに書く式を空にして、CASE側に判定式書いても使えるんで、
ELSEIFと同様のこともできるってだけ。

951:名無しさん@お腹いっぱい。
16/03/15 14:33:20.13 K82PCnuw0.net
>>897
> SELECTに書く式を空にして、CASE側に判定式書いても使える

なにそれ。そんなこと出来る?
試した限りではselectに式書かなかったら
case側に何を書いても最初のcaseが実行されるんだが。

select
 case 0=1; print "0=1"
 case 1=1; print "1=1"
selend

こんなのでも0=1って表示されちゃう。エラーも出ん。

952:名無しさん@お腹いっぱい。
16/03/15 14:44:41.61 zE0f+pvP0.net
空は無理だけど
Select trueとかにしておけばいける

953:名無しさん@お腹いっぱい。
16/03/15 14:51:16.05 215if6Wy0.net
Selectの式の結果 と Caseの式の結果が
最初に一致するCase文が実行される感じなんかな

954:名無しさん@お腹いっぱい。
16/03/15 15:13:32.26 H7Ch8AYF0.net
すまんね空は無理だった
ご指摘の通りtrueにすれば、式がtrueとなる最初のcaseが実行され、
空欄もしくはfalseだと、式がfalseとなるcaseが実行されるね。

955:名無しさん@お腹いっぱい。
16/03/15 23:51:21.72 PCeK8oit0.net
CHKIMGで画像判別 一致したら then で
SOUNDでmp3を再生にしたんですが
音が出たり出なかったり
SLEEPでウエイトを入れたり 構文に trueにして同期させたりしても変わらない
レジストリ関係なのかな?
どこを弄れば直るんでしょうか?

956:名無しさん@お腹いっぱい。
16/03/16 07:35:12.72 LJ+euZnJ0.net
画像判別ができてないのか、音が出てないだけなのか切り分けできてんの?

957:名無しさん@お腹いっぱい。
16/03/16 08:34:48.88 nAh2yAGb0.net



958:PにChkimg()で一致してないだけじゃないのか



959:名無しさん@お腹いっぱい。
16/03/16 08:56:46.03 yzWTIl7F0.net
あるある

960:名無しさん@お腹いっぱい。
16/03/16 10:52:10.44 8JIJQW6i0.net
Windows7では問題なく動いていたのですが
仮想環境のWindows Vistaでは一部画像認識が上手くいきません
同じく仮想環境下のWindows7では問題ありませんでした
認識しない画像をVista内で切り取るとうまくいくのですが
それでは膨大な作業量になります
ご助言をお願い致します

961:名無しさん@お腹いっぱい。
16/03/16 11:09:21.22 /XbN41Fg0.net
chkimgの色幅を試す
ChkImgXを試す
照合画像を造り直す

基本的にグラフィックドライバでイメージは変わる可能性があるという事を覚えておこう
だから使用する環境でキャプチャするのが鉄板

962:名無しさん@お腹いっぱい。
16/03/16 11:16:46.80 8JIJQW6i0.net
ありがとうございます
ちょっと量が量なのでWindows7のライセンスもう一つを購入したいと思います

963:名無しさん@お腹いっぱい。
16/03/16 18:04:20.19 2Mv7Yb1h0.net
>>907
グラフィックドライバで変わるのか
キャプチャのやり直しは正直疲れる

964:名無しさん@お腹いっぱい。
16/03/16 19:52:25.50 0mxs1TOv0.net
変わるんだよな~ アンチエイリアスなんだろうな。
あとOSやブラウザの変更でフォントも変わることがあり、
文字列取得できなくて画像判定で代用してるとハマるね~
環境で変わるのに対抗するのにも、一番有効なのは仮想化。

965:名無しさん@お腹いっぱい。
16/03/18 14:40:05.44 fdkkgXvY0.net
dim array[] = 0,1,2,3,4,5,6,7,8,9

for i=0 to 100
 j = i mod 10
 t=G_TIME_SS mod 10
 print array[j]+" "+t
 gettime()
 if array[j]=t then i=i+t
 sleep(0.1)
next

というように特定条件下でループを任意の回数飛ばしたいんですが
forの変数は内部から参照することは出来ても値を変更して
ループに反映することは出来ないみたいで思うようには動きません。

forではなくwhileを使えば解決する話ですが、forでこういう事は絶対出来ないんでしょうか?

966:名無しさん@お腹いっぱい。
16/03/18 15:05:30.02 Y8LfVAQe0.net
for は 初期値 終了値 加算値 をシンプルに表現してループさせる構文なので無理

967:名無しさん@お腹いっぱい。
16/03/18 17:26:15.26 Dic6Ty9l0.net
if i<k then continue
...
if array[j]=t then k=i+t
とかじゃだめ?

968:名無しさん@お腹いっぱい。
16/03/18 18:48:34.55 37KGhb4W0.net
申し訳ない・・・知恵を貸して下さい・・・。

やりたい流れのイメージ
①一致画像をクリック

画像判断。画像によって条件分かれ
(ここの作り方が不明・・・)

③一致画像をクリック

④一致画像をクリック

969:名無しさん@お腹いっぱい。
16/03/18 18:50:26.76 37KGhb4W0.net
画像判断の部分はこんな内容です。分かりますか?
①ifb CHKIMG(“xxx.bmp”)
  x=G_IMG_X
  y=G_IMG_Y
  BTN(LEFT, CLICK, x , y , 100)
endif
―――――――――
1、画像Aがあるか判定
2、画像Aがある場合は「③」へ
3、画像Aが無く画像Bがあった場合は↓
(Cの画像をクリック)
(Dの画像をクリック)
4、順番にC.Dの画像をクリックし終わったら
「①」最初の動作にへ戻る、
又は「③」へ通常移行。
又は「③」をスキップし「④」へ移行
―――――――――

970:名無しさん@お腹いっぱい。
16/03/18 18:51:32.08 37KGhb4W0.net
素人すぎて正しく伝わっているか心配ですが、
アドバイスを貰えると有り難いです・・・。

971:名無しさん@お腹いっぱい。
16/03/18 18:56:09.29 37KGhb4W0.net
尚、
「①」最初の動作にへ戻る、
又は「③」へ通常移行。
又は「③」をスキップし「④」へ移行

この3パターンは「3個同時で判定」ではなく、
全て「単体」で動作させる事を前提とした場合のスプリクトです。

972:名無しさん@お腹いっぱい。
16/03/18 19:01:31.23 JI+YMOVs0.net
そうだね!がんばれ!

973:名無しさん@お腹いっぱい。
16/03/18 19:13:18.26 cs2HMD100.net
フローチャート作って

974:名無しさん@お腹いっぱい。
16/03/18 19:14:32.75 37KGhb4W0.net
>>919
了解致しました。
少々お待ち下さいませ。

975:名無しさん@お腹いっぱい。
16/03/18 19:44:54.92 37KGhb4W0.net
>>919
お待たせしました。2パターン作りました。
画像Cからのジャンプ先は①にしてますが、場合によって③や④にも変えたいです。
URLリンク(www.dotup.org)
URLリンク(www.dotup.org)
シンプルに作ってみたのですが、どうでしょうか。

976:名無しさん@お腹いっぱい。
16/03/18 20:28:40.25 3mTNmK/i0.net
そこまで出来てるならそのままコーディングすればいいだけじゃ?

977:名無しさん@お腹いっぱい。
16/03/18 20:41:45.76 XTMTGWl20.net
>>922
元々スプリクトを使わない自動化ソフトを使っており、頭の中で流れの構築は出来ているのですが、
スプリクト上に起こすのがどうしても難しく、、。
頭でイメージ出来ているのに、絵に描けない状態です、、、。

978:名無しさん@お腹いっぱい。
16/03/18 20:49:53.51 wiffpfVZ0.net
①, ③, ④ をそれぞれ関数化するといいような気がするよ

979:名無しさん@お腹いっぱい。
16/03/18 21:06:54.37 a/2iCbr10.net
>>921です。
正直センスが無さ過ぎて、見せるのも恥ずかしいのですが・・・。
一応途中まで作ったスプリクトです。
URLリンク(www.dotup.org)

980:名無しさん@お腹いっぱい。
16/03/18 21:43:41.41 p+rJK2780.net
>>925
画像1と画像2の関係性は?
画像1をクリックしたら画像1が消えて画像2がでてくる?
画像1をクリックしたら画像1も画像2も表示されてる?

981:名無しさん@お腹いっぱい。
16/03/18 22:12:44.85 a/2iCbr10.net
>>926
画像はクリック毎に、前の画像は消えて、
次は必ず決まった画像が一個出ます。

画像判断の所だけ、別の画像が出てくる場合がある為、
この様な条件付き画像判断スプリクトを組み込む必要があります。

982:名無しさん@お腹いっぱい。
16/03/18 23:36:00.24 lyGpkKZO0.net
たぶん、"IF"ってのの使い方を勉強するといいと思う

983:名無しさん@お腹いっぱい。
16/03/18 23:44:46.31 p+rJK2780.net
>>927
while 1
 if chk 画A
  if chk 画④
  elseif chk 画③
  endif
 elseif chk 画B
  if chk 画D
  elseif chk 画C
  endif
 elseif chk 画②
 elseif chk 画①
 endif
wend
こういう感じ?

984:名無しさん@お腹いっぱい。
16/03/19 00:04:11.56 SY2bECL70.net
while true
 画像クリック("画像①")
 画像クリック("画像②")
 if chkimg("画像A") then break
 画像クリック("画像B")
 画像クリック("画像C")
wend

画像クリック("画像③")
画像クリック("画像④")


procedure 画像クリック(画像)
 chkimg(画像)
 btn(left, click, G_img_X, G_img_Y)
fend

985:名無しさん@お腹いっぱい。
16/03/19 00:08:39.27 BW58rut60.net
フローチャート作れるならトライアンドエラーで頑張れ

986:名無しさん@お腹いっぱい。
16/03/19 01:41:22.95 bIkT5e8S0.net
>>930
素人の私でもめちゃくちゃ分かりやすいです、激しく感謝します!
動作確認してみましたが、全く問題なく希望通りの動きをしてくれました!

最後にもう一つだけ教えてください・・・。画像④の後に「wend」を持ってきて
一番最初の「while true 」に戻らせてループさせようとしたらエラーが出ました。
これは何が原因になるのでしょうか??

987:名無しさん@お腹いっぱい。
16/03/19 01:43:58.70 4bvWfFXm0.net
whileとwendは必ず1個ずつのセットじゃないとだめ
一連の処理を繰り返させたいなら、wendを画像④の下に置くだけじゃなくて最初のwhileの更に上にwhileを置かないと

988:名無しさん@お腹いっぱい。
16/03/19 01:56:50.27 bIkT5e8S0.net
>>933
私も最初そう思ったんですが、なんかエラーが出たのであれ・・?と思いまして
URLリンク(www.dotup.org)
こういう事ですよね?

989:名無しさん@お腹いっぱい。
16/03/19 02:07:08.90 FgddRy/I0.net
trueが無いじゃん。

990:名無しさん@お腹いっぱい。
16/03/19 02:07:45.33 4bvWfFXm0.net
ワロタ

991:名無しさん@お腹いっぱい。
16/03/19 02:08:06.81 jrQgNiRM0.net
最初のwhileの条件が無いとか?
ヘルプで分かる内容は質問しない方がいいよ

992:名無しさん@お腹いっぱい。
16/03/19 02:35:41.05 bIkT5e8S0.net
while true
初歩的なミスでした、、、申し訳ないです。
皆様のアドバイスのお陰で


993:本当に捗りました。 繰り返しになりますが、有り難うございます! wend



994:名無しさん@お腹いっぱい。
16/03/19 02:56:04.14 tZvnxb2Q0.net
インデント入れろよ。

995:名無しさん@お腹いっぱい。
16/03/19 03:59:10.94 aYU7I2EX0.net
みんな優し過ぎてww

996:名無しさん@お腹いっぱい。
16/03/19 08:12:31.88 BINz+wH10.net
優しいな
俺がこんな質問した時は完全スルーされたぞ

997:名無しさん@お腹いっぱい。
16/03/19 08:20:59.56 fFrQFvev0.net
自分でコードを書く努力している人だからでしょ

998:名無しさん@お腹いっぱい。
16/03/19 11:07:56.96 YmXGVn/20.net
フロチャート作ってちょっとづつスクリプトを書いてまめにテストする
オイラの経験上ifb while たまにbreakでたいがいのゲームは動く
コツは最初はsleepに余裕をもって書く

パートを分けるんだな 戦闘、補給、修理 これらをcallで呼び出す
そうするとイベントやりながら通常戦闘もできるぞ
ゲームの完全自動化までがんばれ
(´・ω・`)

999:名無しさん@お腹いっぱい。
16/03/19 11:21:09.91 YmXGVn/20.net
あとゲームにありがちな点滅、明滅するボタン
ボタンの上に光がもやもやしてたり炎がメラメラしてるときは
他の安定してる画像をchkimgしてそこからx+A y+Bするときっちりボタン押せるぞ
(´・ω・`)

1000:名無しさん@お腹いっぱい。
16/03/19 14:27:55.04 7vlPDXm10.net
>>944
そういうのは短い時間でchkimgを繰り返せば認識できるぞ

1001:名無しさん@お腹いっぱい。
16/03/19 14:43:51.18 w1t+Hd6h0.net
>>945
それするぐらいなら>>944のほうが確実

1002:名無しさん@お腹いっぱい。
16/03/19 14:54:36.33 7vlPDXm10.net
>>944では通用しないケースは割とあるからな

1003:名無しさん@お腹いっぱい。
16/03/19 20:11:11.15 BINz+wH10.net
メラメラはいつもは諦めてほかの画像からの相対座標使ってますけど
メラメラは一致するまでwhile chkimgでいいのですか?
メラメラは私も苦手です

1004:名無しさん@お腹いっぱい。
16/03/19 20:26:21.82 71k0Vm/10.net
色幅を持たせてchkimgすればいい

1005:名無しさん@お腹いっぱい。
16/03/19 20:52:39.80 BINz+wH10.net
>>949
ありがとうございます。感謝します
もう一つ質問失礼します
今色幅IMG_MSK_BGR4でやったのですがもっと広げる方法ありますか?
メラメラが水色-黄色-赤みたいな感じのメラメラです

1006:名無しさん@お腹いっぱい。
16/03/19 20:57:57.92 bgGs7ybY0.net
そこまでは無理

1007:名無しさん@お腹いっぱい。
16/03/19 21:02:17.45 BINz+wH10.net
>>951
ありがとうございます。素直に相対座標を使います

1008:名無しさん@お腹いっぱい。
16/03/19 21:04:56.10 szW1lJKS0.net
色無視入れたらどう

1009:名無しさん@お腹いっぱい。
16/03/19 21:49:17.82 BINz+wH10.net
gifのメラメラは色幅と色無視両方1秒以内で認識しました
FFのような(画像?)メラメラはどちらもダメでした。10秒タイムアウト

では失礼します

1010:名無しさん@お腹いっぱい。
16/03/19 21:50:22.43 71k0Vm/10.net
>>950
定数じゃなくても、自分で好きな数値指定できるよ

1011:名無しさん@お腹いっぱい。
16/03/19 22:48:20.75 ejAiv50P0.net
不特定多数の場で堂々とゲームの自動化を口にするでないグラブル厨か?
ぼかして言うのが作法だぞ。
作法を守らないならネトゲそのものが嫌になるような脱洗脳スクリプト貼るからな。

1012:名無しさん@お腹いっぱい。
16/03/19 22:49:54.86 ejAiv50P0.net
にしても本当にフローチャート書いてくるのは珍しいな。
構造文もまともに知らない時点でこれなら十分適正あるな。

1013:名無しさん@お腹いっぱい。
16/03/20 02:13:45.61 PtQjd96F0.net
以前まではここでゲームの話題はNGだったんだけどね
質問者も変われば回答者も変わった

1014:名無しさん@お腹いっぱい。
16/03/20 02:49:33.10 157+05md0.net
その以前の前のことも知らんのか
ほんとに変わったな

1015:名無しさん@お腹いっぱい。
16/03/20 07:39:38.49 6LNOBso90.net
peekcolor関数を使う際に範囲が 指定できますが、
マウスカーソル周囲を指定することってできないのですか?

1016:名無しさん@お腹いっぱい。
16/03/20 07:45:07.67 6rS3nJ0Q0.net
範囲でない座標のみ
そしてマウス座標は特殊変数に入っている
ヘルプの スクリプト→スクリプト関数→特殊変数 辺


1017:りを見ろ あと本当に周辺を調べたいなら PEEKCOLORをループさせるユーザー関数化する必要があるぞ



1018:名無しさん@お腹いっぱい。
16/03/20 08:00:40.40 6LNOBso90.net
ありがとう
マウス座標そのものではなく、
マウス座標から、その周辺を調べたいんです

最終的にPEEKCOLORでマウス座標周辺の色を取得し続けるという動作をしたかったのですが
すみませんPEEKCOLORをループさせるユーザー関数とは、どんなものでしょうか
もう少し詳しく教えてくれませんか

1019:名無しさん@お腹いっぱい。
16/03/20 08:17:15.47 h63WLHEt0.net
フローチャートじゃなくてそのまんまコードじゃん

1020:名無しさん@お腹いっぱい。
16/03/20 08:51:03.34 6rS3nJ0Q0.net
考える事を否定している人にはヒントすら惜しいなぁ

マウス座標は特殊変数に入っている
マウス座標の周辺とは矩形であれば-10と+10とかで表現可能
Forは変数に初期値、終了値、増減値を設定してループ可能

後はユーザー関数の引数と戻り値かな
判断材料(引数)とその結果(戻り値)なんで
同じ色が複数あった場合にどうしたいかとか
考えることは色々あるよ

1021:名無しさん@お腹いっぱい。
16/03/20 16:51:23.89 xNax6tI9f
peekcolorが遅い。
具体的には1点15msくらいかかる。
UWSCが全体画像取得から1点取り出して調べてるから遅いんであって、
ある程度範囲をまとめて取得したいってのがこの質問の趣旨じゃないかな?

そんな方法ありませんか?
ないです。

このスレにある画像判定Xを使うと、3つの画像判定が1回分の画像判定の処理速度でできたりとかするんですか?
それなら画像をドットにして代用できそうですが?

1022:名無しさん@お腹いっぱい。
16/03/21 19:07:10.29 7t5Ndceu0.net
>>932です。以前、皆様より頂いたアドバイスを元に自分なりにスプリクトを考えてみました。
一応希望通りの動作はしてくれる為、内容としては完成しました。
もしよろしければ「もっとこうしたらいいよ」「こういうやり方もあるよ」等
厳しいお言葉でも結構ですので、アドバイスを頂けると幸いです。
URLリンク(www.dotup.org)
URLリンク(www.dotup.org)

1023:名無しさん@お腹いっぱい。
16/03/21 19:43:31.70 FyEV7Y7F0.net
斬新なインデントですね

1024:名無しさん@お腹いっぱい。
16/03/21 19:49:10.85 WT79cWH60.net
エクセルかこれ…?

まずはまともなテキストエディタを拾ってくるのが先だろ

1025:名無しさん@お腹いっぱい。
16/03/21 19:54:36.21 JOINNpX40.net
やっぱりゲームか・・・

1026:名無しさん@お腹いっぱい。
16/03/21 20:02:44.88 ZoeE04qr0.net
>>967
インデントというか、自分なりに見やすくした結果
こういう分け方になりました・・

1027:名無しさん@お腹いっぱい。
16/03/21 20:09:11.46 ZoeE04qr0.net
>>968
テキストエディタという物の存在自体をしりませんでした・・・。
サクラエディタという物をDLしてみましたが・・・めちゃくちゃ便利ですねこれ・・。

1028:名無しさん@お腹いっぱい。
16/03/21 23:00:19.32 +SrzIg6H0.net
サクラエディタは強調ワードにUWSCスクリプトを指定できるのは過去ログ読めば出てくるしやってるよな?

インデントはこれかな~
URLリンク(ja.wikipedia.org)
URLリンク(www.google.co.jp)

1029:名無しさん@お腹いっぱい。
16/03/21 23:20:08.26 Dl8KMauT0.net
>>966
ゲームマクロはにごせって言われただろ馬鹿

1030:名無しさん@お腹いっぱい。
16/03/22 00:18:54.15 YYqgpZK30.net
>>971
emEditorってのもオススメ
サクラと使い分けるのもいいけど

1031:名無しさん@お腹いっぱい。
16/03/22 04:46:30.63 DDV+vLl80.net
ゲームマクロの質問に答え始めるとド初心者のマクロの話題だらけになるぞ

1032:名無しさん@お腹いっぱい。
16/03/22 07:19:13.62 ey+ZWHj+0.net
インデント難しい
字下げすると見にくくなって自分でよく解らなくなる

1033:名無しさん@お腹いっぱい。
16/03/22 07:41:59.43 GjQDazUb0.net
字下げして見難くなるとか何かがおかしい

1034:名無しさん@お腹いっぱい。
16/03/22 08:10:41


1035:.21 ID:C5ffbueJ0.net



1036:名無しさん@お腹いっぱい。
16/03/22 08:45:39.65 1TlcaC730.net
aaa(){
  // こっちつかう
}
aaa()
{
  // これの人も多い
}

1037:名無しさん@お腹いっぱい。
16/03/22 09:00:46.38 C5ffbueJ0.net
} else { //これが無性に気にくわない

1038:名無しさん@お腹いっぱい。
16/03/22 09:02:54.38 1TlcaC730.net
となると下が一般的なのかな?

1039:名無しさん@お腹いっぱい。
16/03/22 09:35:25.64 S1yVAMwN0.net
ここは幼稚園か
uwscと関係ない話はほどほどにな

1040:名無しさん@お腹いっぱい。
16/03/22 23:47:34.60 Ol86bvxv0.net
少し知恵をお貸し下さい。
通常の画像認識は出来るのですが、少し光を帯びた(点滅)の画像の判定はどのようにするのがセオリーなのでしょうか?
色幅は?と思い、BGR3で試してみましたがうまくいきませんでした

while true
ifb CHKIMG("A.bmp") //A画像認識
x=G_IMG_X  //代入
y=G_IMG_Y  //
BTN(LEFT, CLICK, x+5, y+5, 100) //画像クリック
sleep(2) //待機
endif
wend

お願い致します。

1041:名無しさん@お腹いっぱい。
16/03/23 00:11:32.78 Y8+Uhjvq0.net
ゲームマクロの質問に安易に答えるとこうやって調子こいて次から次へとこういう質問をしてくる

1042:名無しさん@お腹いっぱい。
16/03/23 00:23:26.39 F3sbSHdJ0.net
>>983
スレチ。
特異点を見つけるだけ。

1043:名無しさん@お腹いっぱい。
16/03/23 00:24:03.93 LGiv8vs60.net
>>983=>>920じゃないの
当人だとしても別人だとしてもばかちんにかわりは無いけど

1044:名無しさん@お腹いっぱい。
16/03/23 00:53:32.64 Y8+Uhjvq0.net
どう見ても同一人物

1045:名無しさん@お腹いっぱい。
16/03/23 01:37:19.33 ojrTHT/Q0.net
しょうもない質問で埋まってきたな

1046:名無しさん@お腹いっぱい。
16/03/23 11:51:42.28 CF5/3UwB0.net
同一人物じゃねぇだろ。
前のヤツはもう完成したスプリクト張ってたし

1047:名無しさん@お腹いっぱい。
16/03/23 12:00:41.47 CF5/3UwB0.net
>>983
>>945これでいいじゃん。なにが問題なの?

1048:名無しさん@お腹いっぱい。
16/03/23 12:34:28.58 Pb+9aq2M0.net
> スプリクト

1049:名無しさん@お腹いっぱい。
16/03/23 14:20:10.33 LGiv8vs60.net
スプリクトで検索した結果くそわろち


903 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 18:56:09.29 ID:37KGhb4W0 [4/6]
尚、
「①」最初の動作にへ戻る、
又は「③」へ通常移行。
又は「③」をスキップし「④」へ移行

この3パターンは「3個同時で判定」ではなく、
全て「単体」で動作させる事を前提とした場合のスプリクトです。

909 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 20:41:45.76 ID:XTMTGWl20
>>922
元々スプリクトを使わない自動化ソフトを使っており、頭の中で流れの構築は出来ているのですが、
スプリクト上に起こすのがどうしても難しく、、。
頭でイメージ出来ているのに、絵に描けない状態です、、、。

911 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 21:06:54.37 ID:a/2iCbr10 [1/2]
>>921です。
正直センスが無さ過ぎて、見せるのも恥ずかしいのですが・・・。
一応途中まで作ったスプリクトです。
URLリンク(www.dotup.org)

913 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 22:12:44.85 ID:a/2iCbr10 [2/2]
>>926
画像はクリック毎に、前の画像は消えて、
次は必ず決まった画像が一個出ます。

画像判断の所だけ、別の画像が出てくる場合がある為、
この様な条件付き画像判断スプリクトを組み込む必要があります。

1050:名無しさん@お腹いっぱい。
16/03/23 14:21:00.41 LGiv8vs60.net
951 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/21(月) 19:07:10.29 ID:7t5Ndceu0
>>932です。以前、皆様より頂いたアドバイスを元に自分なりにスプリクトを考えてみました。
一応希望通りの動作はしてくれる為、内容としては完成しました。
もしよろしければ「もっとこうしたらいいよ」「こういうやり方もあるよ」等
厳しいお言葉でも結構ですので、アドバイスを頂けると幸いです。
URLリンク(www.dotup.org)
URLリンク(www.dotup.org)

974 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/23(水) 11:51:42.28 ID:CF5/3UwB0 [1/2]
同一人物じゃねぇだろ。
前のヤツはもう完成したスプリクト張ってたし

1051:名無しさん@お腹いっぱい。
16/03/23 14:49:52.58 q+4+2VgZ0.net
www

1052:名無しさん@お腹いっぱい。
16/03/23 14:53:03.90 Y8+Uhjvq0.net
ブラゲクソガキは自演までしてんのか
この共通した無駄な部分がある糞コード見りゃ同じってすぐに分かるのにな

1053:名無しさん@お腹いっぱい。
16/03/23 15:24:33.17 tn83PLJk0.net
>>989
>>989
>>989

1054:名無しさん@お腹いっぱい。
16/03/23 15:24:46.46 NjVpGs9j0.net
最初に突っ込んでやろうかと思ったけどスルーしておいてよかった

1055:名無しさん@お腹いっぱい。
16/03/23 15:29:26.46 iSrnwjTb0.net
975 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/23(水) 12:00:41.47 ID:CF5/3UwB0 [2/2]
>>983
>>945これでいいじゃん。なにが問題なの?


このレスがまた笑えるw

1056:名無しさん@お腹いっぱい。
16/03/23 15:49:32.31 SZmWshPl0.net
画像認識ってゲーム系以外だと主に何に使うの?

1057:名無しさん@お腹いっぱい。
16/03/23 16:32:45.56 U9esxu690.net
スプリクト

1058:名無しさん@お腹いっぱい。
16/03/23 18:53:42.87 2z8VVxvV0.net
スクリプトをスプリクトというのは既出をガイシュツ(何故か変換できない)みたいなもんだろ。
動きのある画像判定は工夫次第、方法を自分で編み出して秘密にしておかなければ広まったら対策されるだけ。
ヒントとしては状況を特定するための手段


1059:なのであれば、その状況を確定できる動きのない不透過部分がないか探すのが第一。 直接だけではなく対象のソフト上でサブメニュー出してみたり何なりの間接的な手段も併用する。 動きのある画像しかなければ、その動きが一番遅くなる時の1コマの画像を使い、 動きがループして最初に戻るまでの間、継続的に判定し続ける。当然処理は遅く重くなる。



1060:名無しさん@お腹いっぱい。
16/03/23 19:01:18.76 VyfxdPXZ0.net
すぷりくと という間違いがバカにされてるわけじゃないんだよ?

1061:名無しさん@お腹いっぱい。
16/03/23 19:24:36.03 qNW8EAYN0.net
>>1001
すぐに誤字や変換ミスを指摘するのは病んでるよ
もっと余裕持たないと顔に出ちゃうよ

1062:名無しさん@お腹いっぱい。
16/03/23 19:33:23.63 OFvmjkT/0.net
ゲシュタルト崩壊してきた

1063:名無しさん@お腹いっぱい。
16/03/23 19:56:05.50 NgjE2cjv0.net
現在タイマー設定の式による設定で
(9<=HH AND HH<18) AND ((YMDNN mod 25) = 0)
として9時から18時までプログラムを実行させているのです。
これをもう少し細かく8時40分から17時55分までにしたいのですが、
どのように設定したらよいでしょうか?

1064:名無しさん@お腹いっぱい。
16/03/23 20:06:18.89 vA7M7au70.net
>>1005=ID:kLHNktmf0
だからここは拾ったスクリプトの改造法を聞くとこじゃない

1065:名無しさん@お腹いっぱい。
16/03/23 20:12:20.70 LGiv8vs60.net
>>1001
これ以上わらかさないで


次スレいってくる

1066:名無しさん@お腹いっぱい。
16/03/23 20:14:26.73 LGiv8vs60.net
スレリンク(software板)l50

はい

1067:991
16/03/23 20:18:27.14 vA7M7au70.net
>>1005
と思ったら、これってUWSC本体のスケジュール設定のことか。失礼。
こんな機能は自分でスクリプトに組み込んだ方が楽だから、使う人少ないと思う。

1068:名無しさん@お腹いっぱい。
16/03/23 20:30:41.58 vA7M7au70.net
>>1005
こんな感じ、かなぁ?
((9<=HH AND HH<17) or (HH=8 and NN>=40) or (HH=17 and NN<=55)) AND ((YMDNN mod 25) = 0)

1069:名無しさん@お腹いっぱい。
16/03/23 21:21:44.74 xEMVsYD30.net
>>1005
時間を分に直せばいいんじゃない?

1070:名無しさん@お腹いっぱい。
16/03/23 21:43:13.06 OPsOkY1U6
>>1005
スケジュール設定->タイマー設定->式による設定 8時40分から17時55分まで25分間隔で実行
(840<=HHNN AND HHNN<1755) AND (YMDNN mod 25) = 0

1071:名無しさん@お腹いっぱい。
16/03/24 00:46:59.95 WL420SBN0.net
>>1010
ありがとうございました

1072:名無しさん@お腹いっぱい。
16/03/24 06:03:20.37 IqeVqZIs0.net
> YMDNN mod 25) = 0)
これって日によって起動時間が変わると思うけどそれでいいの?

1073:名無しさん@お腹いっぱい。
16/03/24 12:03:56.76 WL420SBN0.net
>>1014
確認してみたら日によって起動時間変わっちゃってました
毎日8時40分から17時55分まで25分おきに実行させたいのですが…
分に直して
(520<=NN AND NN<1075) AND ((YMDNN mod 25) = 0)
と入力すると「1年以内での実行はなし」と出てしまいました

1074:名無しさん@お腹いっぱい。
16/03/24 12:43:37.75 LgRlES+x0.net
>>1015
HHを分に直せよ・・・

1075:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 133日 22時間 58分 9秒

1076:1002
Over 1000 Thread.net
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


──────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
──────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
URLリンク(premium.2ch.net)
URLリンク(pink-chan-store.myshopify.com)


1077:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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