- 1 名前:名無しさん@お腹いっぱい。 [2016/07/30(土) 17:17:29.59 ID:EHKbGb0r0.net]
- Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある ttp://www.uwsc.info/download.html ●UWSC 掲示板(※作成依頼掲示版ではありません) 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫 www3.rocketbbs.com/13/bbs.cgi?id=umiumi www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=past ●UWSC - Wikipedia ja.wikipedia.org/wiki/UWSC ●使い方・基礎解説学習サイト uwsc.g.hatena.ne.jp/cx20/20100131/1264938584 www.confrage.com/uwsc/ necro.jp/dev/uwsc/ park14.wakwak.com/~simizu/uwsc/fruwsc.html canal22.org/ big.tm.land.to/handbook/uwsc.htm www.game-rev.com/review/gameut/uwsc.html ●スクリプトテンプレサイト izagne.com/uwsc/ scripts.web.fc2.com/ www.nagomi-jp.net/~liners/ nem.symphonic-net.com/uwsct/0610uwsct.html siromasa.digi2.jp/uwsc/ iriyak.adam.ne.jp/uwsc.html 前スレ 自動化ツールUWSC使いよ集まれ17 potato.2ch.net/test/read.cgi/software/1458731603/
- 201 名前:186 mailto:sage [2016/09/04(日) 05:58:27.19 ID:OH48HiEN0.net]
- うーん、続きを書こうとして今度は完全にbanされてしまいました。
IPではなく書こうとしてる文章で弾かれてる感じですね。
- 202 名前:186 mailto:sage [2016/09/04(日) 06:01:43.57 ID:OH48HiEN0.net]
- 自分なりの解決策として7の時はスリープ(0.1)を繰り返したのですが、10では1秒間の待機にしてスリープ(1)の繰り返しにし、それでもダメなときは同じ待機のリピートを更に何回か繰り返すという風にしました。
結果としてはそこそこエラーの出ない処理ができるようになったのですが、それでもブラウザを立ち上げ中とかにやると重くてエラーがでやすくなります(これは7のときも同様)。 それは我慢するとして、リピート関数の多用でとても長ったらしいスクリプトになってしまったのでこれをどうにかできたらなということと、できれば更に処理の確度を高めたいです。 当方、プログラミングの知識など全くなくネットを見よう見まねで試行錯誤しながらやっています。長文すいません。どなたかアドバイスを頂けたら幸いです。
- 203 名前:186 mailto:sage [2016/09/04(日) 06:02:39.74 ID:OH48HiEN0.net]
- スリープをカタカナにしたら書けました。スレ汚しで本当にすみません。
- 204 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 06:54:35.62 ID:9nXfkv660.net]
- そもそも、「busyの間」って何?
- 205 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 07:53:26.21 ID:ix4FK1aB0.net]
- タクス周りの改善でアプリの応答待ち状態が頻繁に出されるようになったか、
現実に即した「処理中」を監視するようになったのか、 詳しい事は分からないけど以前よりBUZY状態になることが多くなってそれを監視するループが抜けにくくなったという事だね
- 206 名前:186 mailto:sage [2016/09/04(日) 08:01:34.75 ID:OH48HiEN0.net]
- >>195
このことです C_ID = GETID("ウィンドウの名前") B=STATUS(C_ID,ST_BUSY) repeat スリープ(1) until (B < 1)
- 207 名前:186 mailto:sage [2016/09/04(日) 08:20:45.58 ID:OH48HiEN0.net]
- >>196
なぜ「ビジー状態の間の待機」でエラーが出るのか素人なりに推測したんですが・・・ ・7の時から共通の現象で、ビジー状態の途中に「ビジー状態でない」と判定される瞬間が何回かくる。 → そのため「ビジー状態の間の待機」の繰り返しが有効。 ・10では使用感を軽くするため裏で処理の分散とか今までよりも複雑にやっている。 → そのためUWSCで重い処理をするとエラーが出やすい。 あくまでも自分なりの推測です。
- 208 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 08:52:53.41 ID:j+4pbG5P0.net]
- つまり現時点ではwin10はまだ微妙ということっすかね?
- 209 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 09:08:47.03 ID:GjLRZWLd0.net]
- ブラウザのbusy判定についてもう少し調べてから言えばいいのに
いや、むしろbusy状態が何かをまず調べた方がいい 素人の推測が本当に素人考えで呆れる
- 210 名前:186 mailto:sage [2016/09/04(日) 09:23:24.41 ID:OH48HiEN0.net]
- >>200
まさにおっしゃるとおりの素人考えです。 自分がどのように考え違いをしているのかアドバイスをいただけたらと思って晒したまでです。 自分でもっと勉強するべきだというご指摘もそのとおりだと思ってます。
- 211 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 09:27:00.05 ID:StefP7XA0.net]
- >>197
そのループ絶対抜けないように見えるけど… #UWSCってvolatileな変数ってあったっけ? こうすべきじゃないか C_ID
- 212 名前:=@GETID(”ウィンドウの名前”)
repeat SLEEP(0.1) B=STATUS(C_ID,ST_BUSY) until B もっと簡潔にはこう while STATUS(GETID(”ウィンドウの名前”), ST_BUSY) sleep(0.1) wend ひっかかってめんどくさいんで全部全角にした [] - [ここ壊れてます]
- 213 名前:186 mailto:sage [2016/09/04(日) 09:39:12.23 ID:OH48HiEN0.net]
- >>202
>>そのループ絶対抜けないように見えるけど… ですが、90%くらいはだいたいうまくいっていてたまに無限ループになるのです。 >>こうすべきじゃないか >>もっと簡潔にはこう ありがとうございます。試させていただきます。
- 214 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 09:53:08.40 ID:9nXfkv660.net]
- >>203
あのさ、これじゃBの値は最初に代入されたまま一生変わらないよ? B=STATUS(C_ID,ST_BUSY) repeat スリープ(1) until (B < 1)
- 215 名前:186 mailto:sage [2016/09/04(日) 10:01:59.69 ID:OH48HiEN0.net]
- >>204
ありがとうございます。 いままで無限ループにならずにだいたいはうまくいっていたのは見せかけで、実は機能していなかったのでしょうかね・・・
- 216 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 10:18:35.79 ID:ApRsdKxw0.net]
- ループの中で条件に使ってる変数の値を更新しないと意味ないな
あとwhileやrepeatは極力使わず forで実現するといい 要はカウンタで最大ループ数を決めて 全てのループ処理にタイムアウトを付ける どんなに長く待っても10秒までとか ループ後に処理続行できない状態を確認して ダメならやり直し、リブートなどの処理を組むと動作が安定する
- 217 名前:186 mailto:sage [2016/09/04(日) 11:18:13.73 ID:OH48HiEN0.net]
- >>206
スクリプト全体でforを使って画像の名前に連番を付けていて、強引に入れ子状にその中にfor構文を持ってきたことがあったのですが、連番の方に影響が出てしまってダメでした。 ごく簡単に書くと、 FOR I = 1 TO 50 処理1(連番を付けて画像を保存) for I = 1 to 4 ビジー状態の間の待機 next 処理2 Next これだと画像の名前が1から4が保存されずに5が保存され次は5の繰り返し(上書き保存を聞かれて中断)でした。 うまいやり方はないかもっと研究してみます。
- 218 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 11:37:06.05 ID:9nXfkv660.net]
- >>207
変数とは何か?ってのを根本的に理解してないんじゃね? FOR I = 1 TO 50 に for I = 1 to 4 を重ねてるじゃん。 適宜PRINT文突っ込んでIを表示させてみる、なんてこともしてないよね。 コード見て考えるだけじゃなく、自分の思ったように動いてるのかPRINT文で目視するのもデバッグだよ。 処理1・2の前後に画像ナンバーたるIを表示させれば処理2の前では必ず5になるのが分かる。 そこで、なんで5にしかならんの?ってのを頭で考える。
- 219 名前:186 mailto:sage [2016/09/04(日) 11:49:51.96 ID:OH48HiEN0.net]
- >>208
Iを違う文字に変えないとダメですね。指摘されて気づきました。 FOR I = というのを定型文のように使っていたので、Iが変数だということの意識がどうやら希薄でした。
- 220 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 12:00:16.03 ID:fewUqw8g0.net]
- iはindexの略?としてよく使われるだけでaでもxでもhogeでもなんでもいい
- 221 名前:名無しさん@お腹いっぱい。 [2016/09/04(日) 12:59:32.75 ID:mzGRGMDO0.net]
- integer→int→i
- 222 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 14:02:23.89 ID:3roQ8uHb0.net]
- どうでもいいけど
FORTRANだと、I,J,Kあたりは宣言しなくてもintegerというローカルルールがあった
- 223 名前:186 mailto:sage [2016/09/04(日) 15:22:35.62 ID:OH48HiEN0.net]
- >>>>210
一文字でなくてもいいんですね。勉強になります。
- 224 名前:186 mailto:sage [2016/09/04(日) 16:08:58.35 ID:OH48HiEN0.net]
- 以下のスクリプトで解決しました。動きに無駄が全くなくキビキビとしてえらく速くて正確でいいものができたと感激しています。
みなさん、本当にありがとうございました! FOR I = 1 TO 50 処理1(連番を付けて画像を保存) For A
- 225 名前: = 1 To 100
C_ID = GETID("ウィンドウの名前") B=STATUS(C_ID,ST_BUSY) ifb B >0 then スリープ(0.1) endif Next 処理2 Next [] - [ここ壊れてます]
- 226 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 16:24:44.55 ID:StefP7XA0.net]
- >>206が言ってた最後の部分が入ってないんじゃないかな
処理2に含まれてる? 「ループ後に処理続行できない状態を確認して ダメならやり直し、リブートなどの処理を組む」
- 227 名前:186 mailto:sage [2016/09/04(日) 16:35:31.36 ID:OH48HiEN0.net]
- >>215
処理2は画面範囲の移動であって含まれていません。 試しに動かしてみたらすごくよかったので、処理続行できない可能性への配慮が抜けていました。 >>「ループ後に処理続行できない状態を確認して ダメならやり直し、リブートなどの処理を組む」 このやり方が全く分からないので時間を見つけて勉強します。
- 228 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 18:55:44.50 ID:9nXfkv660.net]
- >>214
そのfor文の中身、ロジックとして間違ってるよ。 何が間違ってるかは書かない。行右側に何をやっているのか逐次コメント書いて自分で整理してみよう。
- 229 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:03:50.31 ID:fewUqw8g0.net]
- 変な事をしてるが、動くのは動くだろう
- 230 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:08:52.87 ID:Ted+EPXc0.net]
- 同じ名前の別のウインドウが次々に、という可能性も
- 231 名前:186 mailto:sage [2016/09/04(日) 19:34:31.38 ID:OH48HiEN0.net]
- >>217-219
今のところ全く正常に動くので意外ですね。そう言えば、元々自分が書いた >>197 もだいたいは曲りなりに動いていたので、結果的に正しく動いているように見えてもロジックが正しいとは限らないのですね。
- 232 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:35:54.52 ID:ix4FK1aB0.net]
- >>214
これに入れ替えろ 絶対こっちのほうが良い C_ID = GETID("ウィンドウの名前") Repeat For A = 1 To 100 If A = 100 Then Break2 S L E E P(0.1) Next Until STATUS(C_ID,ST_BUSY)
- 233 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 19:48:00.60 ID:tDhfFiCO0.net]
- >>221
それはスリープ入り過ぎるんじゃないの
- 234 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 20:01:47.14 ID:9nXfkv660.net]
- >>221
そのFOR文は、 SLEEP(10) BREAK と変わらんよw
- 235 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 21:10:15.72 ID:fewUqw8g0.net]
- >>221
よくこんな糞スクリプト晒す気になるな
- 236 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 22:09:50.51 ID:w21PKIKQ0.net]
- Webでも結構凄い酷いスクリプトを晒してる人がいるけど
ここまで酷いのは早々ないなぁ
- 237 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/04(日) 22:25:56.08 ID:5yK+yEjn0.net]
- 懇親のギャグが全力否定されててワロタ
- 238 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 08:39:45.04 ID:Jnhm+/T10.net]
- >>220
改善点は2つ getidの外出しと、sleepいらなくなった時点でbreak getidは重いけどsleepするような場所だから気にする必要ないし breakしてなくても差は1ミリ秒もないだろうけど
- 239 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 08:48:15.28 ID:Jnhm+/T10.net]
- あ〜処理1の後、待ってる間にウインドウが立ち上がるなら
getidを毎回する必要があるな…
- 240 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 09:15:05.72 ID:qzsh+D0w0.net]
- その場合は、busy明け待ちループの前に
ウィンドウ起動待ちループを入れるべきかな
- 241 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 09:26:38.36 ID:Jnhm+/T10.net]
- そうか、ステータスbusyじゃないかも知れないか
そもそもそれはなさそうだね
- 242 名前:186 mailto:sage [2016/09/05(月) 22:48:48.41 ID:JhvlyivF0.net]
- >>227
ありがとうございます。 余計なウィンドウは立ち上がりません。 2つの改善点を試させていただきます。
- 243 名前:186 mailto:sage [2016/09/05(月) 23:21:20.58 ID:JhvlyivF0.net]
- 以下のように改善しました。
これも問題なく動きます。 FOR I = 1 TO 50 処理1(連番を付けて画像を保存) C_ID = GETID("ウィンドウの名前") B=STATUS(C_ID,ST_BUSY) For A = 1 To 100 ifb B < 0 break スリープ(0.1) endif Next 処理2(画面範囲の移動) Next
- 244 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 23:26:45.52 ID:GYAkD0hj0.net]
- インデントが無いと超見にくい
- 245 名前:186 mailto:sage [2016/09/05(月) 23:29:34.56 ID:JhvlyivF0.net]
- あと他の方々からもご指摘をいくつか受けていますが、今の知識レベルではすぐに実装できそうもないので、勉強して実現できるようにしようと思います。
- 246 名前:186 mailto:sage [2016/09/05(月) 23:32:24.68 ID:JhvlyivF0.net]
- >>233
すいません。 >>207 でインデントをつけたらずれて表示されたのでとってしまいました。
- 247 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 23:33:05.13 ID:GYAkD0hj0.net]
- そもそもST_BUSYの値はtrue(1)とfalse(0)しかないわけで、Bが負の値なんか取らないから
スクリプト作り始めた当初からifb B<0のブロックは1度も実行されたことは無いわけで… それで動いてるってのはそのスリープって意味無いってことでしょ。 FOR I = 1 TO 50 処理1(連番を付けて画像を保存) 処理2(画面範囲の移動) Next はっきり言ってこれと一緒。 しかもこれで動いてるんならこれだけでいいんじゃねって話だが
- 248 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/05(月) 23:38:13.06 ID:GYAkD0hj0.net]
- 常時存在はしない類のウィンドウの場合はgetidの部分は必要か
- 249 名前:186 mailto:sage [2016/09/06(火) 00:22:49.19 ID:GORNl5yn0.net]
- >>236
おっしゃるとおりで意味なかったですね。 さっきはなぜかうまくいきましたが、その後の検証で途中を飛ばして進行するエラーが出てしまいました。 fb B = 0 に変えて明日にでも検証し直してみます。 FOR I = 1 TO 50 処理1(連番を付けて画像を保存) C_ID = GETID("ウィンドウの名前") B=STATUS(C_ID,ST_BUSY) For A = 1 To 100 ifb B = 0 break スリープ(0.1) endif Next 処理2(画面範囲の移動) Next
- 250 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 01:30:20.48 ID:EDkA9XJ70.net]
- なんかぐちゃぐちゃになってきてるな…
- 251 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 03:38:22.22 ID:RJZSaZSo0.net]
- ロジックおかしいと指摘されてるのに全く改善されてないw
- 252 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 04:41:11.80 ID:EebF0GKj0.net]
- >>238
B=STATUS(C_ID,ST_BUSY)をFor A = 1 To 100のループに含めないとBが更新されない Printで変数を出力するなどしてどういう順番で実行されてるのかよく見てくれ
- 253 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 04:46:04.52 ID:gaZYHcVe0.net]
- >>214の方がよかったんじゃないの
- 254 名前:186 mailto:sage [2016/09/06(火) 05:29:00.58 ID:GORNl5yn0.net]
- >>242
はい。 さらに並び順を変えてみましたが、やはりエラーが出てしまいます。 一方、 >>214 の方は全くエラーが出ません。 C_ID = GETID("Demo Account") For A = 1 To 100 B=STATUS(C_ID,ST_BUSY) ifb B = 0 break sleep(0.1) endif Next >>240 >>241 はい。ここら辺も自分の知識レベルでは課題になってしまってます。 とりあえずログを出せるように今調べています。
- 255 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 07:28:39.15 ID:n3q2+nF20.net]
- 理解が追いついてないのに、いろいろ言われて焦っちゃってるんだろ
printでログ出すとか、コメント書いて理解しやすくするとかの助言もあるように ちょっと落ち着いて それぞれの行がどういう意味で、実際どう動いてるのかじっくり考えてみよう STATUS(ID, ST_BUSY)の結果はTrueかFalseだよ 0と比較するのは間違いの元
- 256 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 09:41:17.43 ID:DlecHJrG0.net]
- ここいつから手取り足取り教えるスレになったんだ
- 257 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 09:54:23.88 ID:DLHypvCd0.net]
- ケースバイケース
- 258 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 12:16:15.16 ID:EDkA9XJ70.net]
- 簡単な処理 かつ 丁寧な質問なら親切に回答する人は多い
- 259 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/06(火) 16:57:17.34 ID:wMHcypv30.net]
- 何だかんだ言って皆ツンデレだからな
以前もソシャゲのマクロ組みたいって食い下がってた奴に 結局「キャプ画像よこせば作ってやるっつってんだろ!」ってキレてたし
- 260 名前:186 mailto:sage [2016/09/07(水) 07:04:29.79 ID:E8VMTRpp0.net]
- >>244
自分の知識があまりにも付け焼刃なので焦りました。 しばらくは新しいことを試してみるよりも意味を理解することに集中しようと思います。
- 261 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/07(水) 20:04:41.77 ID:SdsqLHe+0.net]
- 公式見てもソレらしきことは書いてないのですが5.2.2でsleepかwait関係に変更あったのでしょうか?
5.2.1から5.2.2に更新したら何をするにもイチテンポ遅れて使いものにならないので戻して解決したのですが ぐぐっても少数の人がそれっぽい事言ってるだけなので気になって・・・
- 262 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 16:29:30.33 ID:x9o3zSBW0.net]
- 未だにプレイ中のとあるソシャゲなんだけど、最初は手動で頑張ってやって
- 263 名前:スんだけど、途中から
自動化できないかなって思って、PGM初心者の俺は頑張ってマクロ組んだんだよね…。UWSCで。 最初はすべてIF文で組んでさ、ボタンクリックするのもCHKIMGで。 初めて動いたときは感動したよ、ほんと。 多大な時間費やして組んだCHKIMGのマクロも、次イベになると動かない。 画像が変わるから当たり前。 一生懸命ネットで調べて、どのパソコンでも動いてコード少し修正するだけで 使い回しできるような組み方まで辿り着いた。 だけど、ここ見てるとまだまだなんだって気づかされる。 自分の組んだコードでも、上級者だとどういうロジックにするのかとか思います。 [] - [ここ壊れてます]
- 264 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 16:48:59.61 ID:sS1G6qcQ0.net]
- >>250
5.1.1.0だけど KBD(VK_Left, Click) という命令をループで回すと動きが遅いんだけど なぜかJaneかTCPmonitorPlusを起動しているときは瞬速になる不思議
- 265 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 17:07:16.46 ID:jDZ2jzKo0.net]
- 俺も制御文とか関数とかだいたいわかってきたけど、
これ以上プログラミングについての学習を深めるにはどうしたらいいのかわからん 「やりたいこと」があると必要な知識を調べていけばいいからある程度はいけるんだけどね でも「やりたいこと」への具体的な道筋が立たなかったり、調べても他のソフトウェアなどの知識が必要で理解できなかったり、 そもそも「やりたいこと」がなくなってきたりとかで足踏み状態 いっそ他のプログラミング言語学ぶの良さそうだけど、 そうなると何を学ぶのか考えなきゃならなかったり、環境揃えなきゃならなかったりでハードルが高い 一応paizaとかのウェブサービスで基本的な部分は学んだけど、自分であちこち弄って動かしてるわけじゃないから どうも達成感というか、理解が深まってる気がしないし
- 266 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 19:38:35.71 ID:+A+VKkXW0.net]
- プログラミングは所詮道具・手段なんだからやりたいことが実現できているなら充分でしょ
- 267 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 21:06:32.66 ID:Vckwy7B40.net]
- ここは製品を作るような職業プログラマは居ないからその考えの人が多いね
uwscも手段に過ぎずuwsc以外のほうが都合良いなら使うべきだ
- 268 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 21:21:26.96 ID:LmhaStCC0.net]
- uwscはその目的のためにごてごてと進化してきたモノで
洗練された言語とは到底言いがたい まあ「やりたいこと」が「こういうこと」なら、 そのためには道具としてuwscは向いてるのは確かだが その道具を使うためにも プログラミングの基礎的な考え方は他のちゃんとした言語で身につけてきた方がいいなあ
- 269 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/08(木) 22:12:35.20 ID:PCgIOrbg0.net]
- 初心者はExcelVBAでええやろ
これである程度出来てから色々贅沢言え屋
- 270 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 01:50:17.80 ID:cUWx32Mb0.net]
- ここの初心者さんって画像認識+αくらいしかやってないから、VBAもハードル高すぎだよねw
>>251なんかはそこから脱出できたんだろうけど。
- 271 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 02:30:40.69 ID:FxImwqQY0.net]
- 5年以上前にブラウザゲーでuwsc始めて基本的なことやってからchrome拡張でjs始めた
やりたいことが自分のできる範囲内でできる間は新しいことは身につかなかったけど 何か障害があったり新しい機能実装したいって思う度に身についたな
- 272 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 02:35:03.82 ID:uwxQkhgc0.net]
- いいのがないから作ればいいかって自分用しか作ってないから、とても人様には見せられない
てか自分の環境でないと使えないようなシロモノばかり
- 273 名前:名無しさん@お腹いっぱい。 [2016/09/09(金) 10:25:57.93 ID:sIR
]
- [ここ壊れてます]
- 274 名前:xPcJE0.net mailto: CHKIMGの曖昧検索機能が欲しい…
[上下左右の矢印] × [順不同] × [6〜7色] しかも色ごとにどうやら微妙にピクセル配置が異なる模様。。 矢印形状だけで判定出来たらどれだけラクか。。 [] - [ここ壊れてます]
- 275 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 10:32:59.88 ID:jJNmDM/u0.net]
- chkimgxだっけ?それ使えばええやん
- 276 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 11:19:01.95 ID:EpTiQn460.net]
- どなたか分かる方たすけて下さい。
FireFoxにSENDSTRで文字列を送る処理があるのですが、今まで問題無く使用出来ていたにも関わらず 突然SENDSTRに時間がかかる(おおよそ10秒程度)様になってしまいました。 過去にも同様の現象が発生したのですが、数日後再度実行したところ何故か問題無くSENDSTRが実行出来ました。 他のブラウザではSENDSTRの問題は発生しないので、FireFoxとUWSCとの問題だと思うのですが何が考えられますでしょうか? 環境 Windows7 Pro 64bit FireFox 48.0.2 UWSC Free 5.2.20 やった事 FireFoxのプラグイン全無効化⇒効果なし FireFoxのリフレッシュ⇒効果なし FireFoxの再インストール⇒効果なし
- 277 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 11:21:46.99 ID:vu9gp1Nj0.net]
- >>263
5.2.2の動作が遅くなるって事案がちょくちょく上がってるけどソレではない?
- 278 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 12:59:25.05 ID:jJNmDM/u0.net]
- >>263
sendstrの前のgetidとかは大丈夫? 部分一致とかだと微妙に遅くなったりするし recとかで完全一致なタイトルとクラスをとってきてそれ入れてみるとか ブラウザ起因ならsendstrでクリップボードに入れてsckeyだっけ?で貼り付けるように変えてみるとか 基本的にsendstrでキー送信うまくいかないことが多いから俺は信用してない
- 279 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 17:50:11.85 ID:EpTiQn460.net]
- >>264
回答ありがとうございます。 5.2.1 5.2.0 5.1.2 上記3バージョン試しましたが、解消しませんでした。 >>265 回答ありがとうございます。 SNDSTRで処理していた箇所をクリップボードに文字列を入れSCKEYでペーストする様に修正したところ問題無く動作する様になりました。 確かにSNDSTRは何だか怪しいみたいですね 勉強になりました。
- 280 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 18:31:36.60 ID:DZ8vx9tr0.net]
- data = "AAA-x-CCC/AAA-1-BBB/AAA-x-DDD/AAA-2-BBB/AAA-3-BBB/AAA-4-BBB/AAA-5-BBB/"
for i=1 to 5 hoge = BETWEENSTR(data,"AAA-" ,"-BBB",i) print hoge next BETWEENSTRについて質問です。 例えば、上記のようなdataがあって 「AAA-」「-BBB」に挟まれた数字のみを 1〜5の順で抽出したいんですけど上手くいきません。 BETWEENSTR内のiを、i*(-1)にして後ろからサーチにすると 5〜1の順で抽出されてしまいます。 最初に「-BBB」を探してから、一番近い「AAA-」を 逆戻りで探して抽出って動作は出来ないんでしょうか? XPsp3 Free版 5.2.1.0
- 281 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 18:36:03.03 ID:xyBWEwKb0.net]
- 怪しいというより
もともとイベントを利用する命令は確実に届く保証はないと覚えておこう ちなみにそれはSCKEYも一緒 結局のところ処理の継続が可能であるか自分で調べて次の処理を行う事が大事
- 282 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 18:54:38.10 ID:78gUVOOB0.net]
- >>267
dataのデリミターが / なんだったら一旦Split()で配列にいれて それぞれに対してBetweenStr()したらいいんじゃないの?
- 283 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 19:18:18.65 ID:IkKdiv+V0.net]
- >>267
こんな感じ? data = "AAA-x-CCC/AAA-1-BBB/AAA-x-DDD/AAA-2-BBB/AAA-3-BBB/AAA-4-BBB/AAA-5-BBB/" for i=1 to 5 hoge = COPY
- 284 名前:(COPY(data,1,POS("-BBB",data,i)-1),POS("AAA-",COPY(data,1,POS("-BBB",data,i)-1),-1)+4)
print hoge next [] - [ここ壊れてます]
- 285 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 22:18:47.55 ID:tCVyAR3l0.net]
- >>267
betweenstr(XXX, "AAA-",,) betweenstr(YYY, , "-BBB") を繰り返せばいいんじゃないの?
- 286 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/09(金) 23:13:51.25 ID:R1aNxXgf0.net]
- split(data, "/") で配列にするか正規表現のサブマッチでやるな
- 287 名前:名無しさん@お腹いっぱい。 [2016/09/10(土) 00:07:36.26 ID:Ns7LgcYx0.net]
- >>267
数が5個とわかってるなら for i = -5 to -1 でも動く まぁ俺もこのデータならsplitするけどな
- 288 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/10(土) 00:35:10.21 ID:+Re42ym20.net]
- 俺なら正規表現だな
- 289 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/10(土) 07:46:16.83 ID:m4YcOpFr0.net]
- printの結果も載せとけばいいのに。問題点が一目瞭然
x-CCC/AAA-1 x-DDD/AAA-2 3 4 5
- 290 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/10(土) 07:53:32.47 ID:m4YcOpFr0.net]
- って加味した上の指摘済み多数だったか。
data = "AAA-x-CCC/AAA-1-BBB/AAA-x-DDD/AAA-2-BBB/AAA-3-BBB/AAA-4-BBB/AAA-5-BBB/" re=CreateOleObj("VBScript.RegExp") re.pattern = "AAA-[0-9]+-BBB" //正規表現パターン。1と5の間の文字を取り出す。 re.Global = True //文字列全体を検索。trueでする(規定)、falseでしない(マッチしたらそこで終了)。 re.IgnoreCase = True //大文字・小文字を区別。trueでしない(規定)、falseでする。 match = re.Execute(data) //マッチしたものをすべて出力 for i = 0 To match.Count-1 print BETWEENSTR(match.Item(i).Value,"AAA-" ,"-BBB") next UWSC 正規表現 で検索した筆頭を拾ってきたのを変更してコピペ
- 291 名前:名無しさん@お腹いっぱい。 [2016/09/10(土) 15:35:10.86 ID:kSIOwjhA0.net]
- VBSの正規表現モジュールはスレッドで動かしたり負荷が高かったりすると異常動作するから
ビルトイン命令で実現できるならそれに越したことはないと思う
- 292 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/10(土) 15:40:44.21 ID:67NBf1Q/0.net]
- >>277
そうなん?初めて知った。 UWSCの文字列関連の関数はかなり遅くて大量に使うと明らかな時間差が出てくるんだが
- 293 名前:名無しさん@お腹いっぱい。 [2016/09/11(日) 12:59:41.51 ID:Q3TesiaZ0.net]
- 正規表現で異常動作?そんな話聞いたことないな
どこ情報?
- 294 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/11(日) 13:30:44.61 ID:efWLx+5E0.net]
- PCをロックするとUWSCプログラムが作動しなくなる現象は改善した?
- 295 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/11(日) 20:17:22.41 ID:txudaq7L0.net]
- UWSC自体は別に止まらない
ロックで正常に動作しなくなるスクリプトは ロック状態になると画面更新が止まるソフトを自動操作したいという 無茶振りな欲望だから素直にロックしないでやれ
- 296 名前:名無しさん@お腹いっぱい。 [2016/09/11(日) 20:35:27.57 ID:rSVOiQRw0.net]
- >>261 です
・中心に表示される図形は4パターンのうちどれか ・図形の色は都度変化する ・背景は刻々と変化する これをCHKIMGXを使って判定しようとしているのですが、 この時有効な検出元画像(CHKIMGXの1つ目の引数)ってどんなものでしょうか。 ・中心図形+背景の平均色で塗りつぶしたもの(黒〜水色の中間くらいの色) ・中心図形+背景は透過させたもの ・中心図形+背景真っ黒 →いずれも「着目する色」は-1を指定 色無視、を効果的に使えていない気がしてまして。。 説明がヘタクソですみません。
- 297 名前:名無しさん@お腹いっぱい。 [2016/09/11(日) 20:57:12.87 ID:rSVOiQRw0.net]
- 判定したい形状+背景透過のPNGファイルを作成し、
そのときの図形の色をPeekColorを使ってスポイト取得しCHKIMGXの「着目する色」に代入 なんてことが出来れば
- 298 名前:良いんですが。 []
- [ここ壊れてます]
- 299 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/11(日) 21:13:28.71 ID:4TCowwd+0.net]
- 説明が分かりにく過ぎる上に
ゲーム用マクロ作成に手を貸す気にはなれんよ IMG_MSK_BGRXで頑張れ 問題のシーンの動画くらい用意しないと外野には何もワカラン
- 300 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/09/11(日) 22:30:26.89 ID:ajg0/kUQ0.net]
- 何秒以上次の動作に移らない時(ループで結構な条件を入れていてどれにも当てはまらない)にループを抜けて再起動させたいのですが...どうしたらいいでしょうか??
|
|