1 名前:名無しさん@お腹いっぱい。 [2015/11/11(水) 13:45:28.80 ID:+oPzgSay0.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使いよ集まれ15 anago.2ch.net/test/read.cgi/software/1436671958/
2 名前:名無しさん@お腹いっぱい。 [2015/11/11(水) 13:46:14.33 ID:+oPzgSay0.net] Q.シェアウェア版で「L20が存在しません」「L22が存在しません」とエラーが出て一部機能が動作しない A.割れシリアルを使った時に出
3 名前:驕Aささやかな割れ対策 Q.購入したのに上記エラーが出る A.ライセンスキーが正しいか確認(ベクターで購入した場合、登録するのは 伝票番号の xxxxxxxxx ではありません) UWSCをアンインストール後、再インストールして正しい17桁のライセンスキーを入力してください。 ●Pro版の追加機能 EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます) IE(Web)用記録ツールが付属しています。(Web上の動作をUWSCのスクリプトとして記録する事ができます) HTMLを利用した画面関数が使えます。 EXCELシート用関数が使えます。(OpenOffice.org/LibreOfficeの表計算(Calc)に対しても可) デバッガが付属しています。 ●質問したい方へ 「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」 「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる 「○○作って下さい」→ 依頼スレじゃありません。 過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。 自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。 備考:PRI NT文を利用してデバッグする。管理者権限で起動してみる。AEROを切る。fcuc.uwsを走らせてみる。 ●スクリプトを晒す上での注意 他人が読みやすいようにインデントを付けるように。解らない人はググレ。 (タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし) 言いたい事に関係無い部分は 〜○○の処理〜 や 処理A 等のようにし、 必要な部分を晒すようにする。 ●他人の書いたスクリプトを安易に実行しないように。 ハードディスクをフォーマットされたりしても、自己責任。 [] [ここ壊れてます]
4 名前:名無しさん@お腹いっぱい。 [2015/11/11(水) 13:46:50.79 ID:+oPzgSay0.net] 画像認識関数 ChkImgX-ver1.2.1(2015/02/03) https://googledrive.com/host/0B83tioTzFacPQkFKWm52dVhsaXc/ChkImgX-ver1.2.1.zip anago.2ch.net/test/read.cgi/software/1413600379/673 UWSC向け画像認識関数です。CHKIMGは(ほぼ)一致画像しか探すことができませんが、 CHKIMGXは似た画像の検出が可能です。使い方は中身のsample.uws や ChkImgX.uws を見てください。
5 名前: 【だん吉】 mailto:sage [2015/11/11(水) 13:54:22.45 ID:k95kaPQv0.net] _ |O\ | \ キリキリ ∧|∧ \ キリキリ ググゥ>(;⌒ヽ \ ∪ | (~) ∪∪ γ´⌒`ヽ ) ) {i:i:i:i:i:i:i:i:} ( ( ( ´・ω・)、>>1 乙 (O ⌒ )O ⊂_)∪
6 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 15:15:54.45 ID:QGUfCker0.net] >>前スレ1000 >そんな当たり前の事一々指摘せんでもいいわw >UWSC単独で出来ないのが残念って言ってるだけだろ え、UWSC単独でできるよね・・・何言っ・・え?
7 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 15:40:01.62 ID:DWR2WWEp0.net] 当たり前の事指摘されたくなかったら条件や情報を後出しにしないことだな コードまで貼って教えてくれた丁寧な回答者に対する態度じゃないだろ二度と来るな
8 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 16:00:51.36 ID:uAtR0Bu+0.net] 知識のないぼくちゃんは別プロセスで常時表示させてるslctboxとかinputでWriteiniして threadでReadiniして無理矢理変更してたわ 前スレのやり方も試してみようかな
9 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 16:28:56.45 ID:MrsBdBBf0.net] シェアウェア版に付いて来るデバッガで、変数の書き換えとか出来るといいね。知らんけど
10 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 17:06:46.18 ID:rpEewyDo0.net] 実行中の UWSC の挙動をGUIで変えるために、 AutoIt3 + KODA FormDesigner で .ini ファイルを編集するGUIアプリ作って UWSC からは、必要に応じて .ini を読み直すという構成にしたよ。
11 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 17:07:15.29 ID:oN5GYFPP0.net] そもそもoleevent使えばcreateformだろうが 非シェアのIEを使った擬似createformだろうが イベントドリブンなスクリプト作れるしなぁ まぁ其処までする位ならGUI構築、連動できる言語の出番って考え方もあるけれどね (自分はどちらかと言うとそっち派)
12 名前:名無しさん@お腹いっぱい。 [2015/11/11(水) 17:26:50.51 ID:jGEVW+4x6] 過去ログ 自動化ツールUWSC使いよ集まれ15anago.2ch.sc/test/read.cgi/software/1436671958/ 自動化ツールUWSC使いよ集まれ14anago.2ch.sc/test/read.cgi/software/1425741537/ 自動化ツールUWSC使いよ集まれ13anago.2ch.sc/test/read.cgi/software/1413600379/ 自動化ツールUWSC使いよ集まれ12anago.2ch.sc/test/read.cgi/software/1405162342/ 自動化ツールUWSC使いよ集まれ11anago.2ch.sc/test/read.cgi/software/1389240960/ 10 anago.2ch.net/test/read.cgi/software/1367340336/ 9 anago.2ch.net/test/read.cgi/software/1350040751/ 8 anago.2ch.net/test/read.cgi/software/1333915056/ 7 anago.2ch.net/test/read.cgi/software/1312390804/ 6 hibari.2ch.net/test/read.cgi/software/1291347103/ 5 hibari.2ch.net/test/read.cgi/software/1260304053/ 4 pc12.2ch.net/test/read.cgi/software/1235990960/ 3 pc11.2ch.net/test/read.cgi/software/1176677869/ 2 pc11.2ch.net/test/read.cgi/software/1156416884/ 1 pc7.2ch.net/test/read.cgi/software/1107738590/
13 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/11(水) 20:30:11.22 ID:mvp9IgBe0.net] UWSCでシェアウェアのシリアル入力欄に値を・・・ 3日かかってやっと1つ見つけた
14 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 08:45:57.85 ID:3qksjFX10.net] uwsファイルをexe化したいんですがfree上位版じゃなく何かやり方ありませんか?
15 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 08:54:17.45 ID:Mcz5MFKc0.net] Free上位版て何だ? 金払えよ。その機能は無料じゃねえんだよ
16 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 10:01:53.16 ID:NDAx3tp60.net] >>13 exe化できる人に 金払ってやってもらう。
17 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 15:46:47.76 ID:wNx4EtEV0.net] 自己解凍アーカイブでも作ればいいんじゃないかな
18 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 22:05:27.26 ID:Uo/qbExH0.net] UWSCに備わっているマウスの移動を手動で記録(座標指定や画像指定とか無し) させたものをブラウザゲームにて使いたいのですが運営側に不振な動きとかってばれるものなんでしょうか? 24時間使うとかじゃなく1日数時間程度なのですが、どなたか教えて下さい。
19 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 22:06:59.66 ID:Z3RRarm70.net] 巣に帰れ
20 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 22:13:32.82 ID:b0VOgiyP0.net] UWSCの質問ですらねぇwww
21 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 22:49:34.51 ID:xAhnpw3q0.net] 運営に問い合わせして どう
22 名前:シ [] [ここ壊れてます]
23 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/13(金) 23:13:38.61 ID:b445lS/m0.net] league of legendsってゲームでmouseorg(pvp.net Client, 1) 使うとPVPが定義されてません って出てくるんだけどGETIDでアクティブ取得してPRINTしてやったらpvp.net Clientで間違っては無いんだがなんなのこれ?
24 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 00:17:35.92 ID:FIcKEvAv0.net] 巣に帰れ
25 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 00:18:11.82 ID:mvqgNrFZ0.net] >>21 ""
26 名前:名無しさん@お腹いっぱい。 [2015/11/14(土) 03:37:05.40 ID:BoPLs7GB0.net] ぐぐってみたのですがわからないので教えてください。 UWSC初心者ですが、bluestacks上のアプリを画像認識で無限ループするマクロを作りました。 しかし、アプリがフリーズすると画像が表示されずマクロが止まってしまいます。 そこで、マクロのループ処理が止まった場合、アプリを再起動してループを再開するような例外処理を作りたいのですが良い関数があれば教えてください。 ループ処理の前に時間を設定してもしタイムアウトが発生したら再起動をするといったものを作りたいです。
27 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 03:49:36.32 ID:mvqgNrFZ0.net] >>24 自分がコードを書けるように日本語を変換する 「マクロのループ処理が止まった場合」というのは「画像がなかった場合」のことで大丈夫だろう それ以外で止まるならその条件も加える 「ループ処理の前に時間を設定してもしタイムアウトが発生したら」というのを、 「画像がなかった場合の回数を設定してもしその回数を超えたら」とすればいい
28 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 04:43:03.64 ID:uyToSXci0.net] while chkimg("a.bmp") 〜処理〜 wend みたいに書いてるからループを抜け出して止まってしまうとかいうことなのかな?
29 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 08:59:23.55 ID:IhUc+KMu0.net] 初歩的でスマンが質問させてくれ 去年の12月にDLしたフリー版を使ってたんだがwin10環境で動くのか試したら動かなかった 最新版DLしてもう一回動かしてみたら今度はIF文が閉じてませんみたいな構文エラーが出た UWSC本体のバージョンで構文まで変わっちゃうのか? win10で使おうと思ったらまた組み直さないとダメ?
30 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 09:42:35.18 ID:IpRJAxcj0.net] 破壊的な仕様変更があれば更新履歴にあるさ IF絡みだと 14/02/03 ver4.9c IF文のブロック文にてIFB-ENDIFではなく、IF-ENDIFでも可にした これかな
31 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 09:52:52.41 ID:IhUc+KMu0.net] 使ってた方のバージョン見たらVer 5.0.4.0 2014-12-14ってなってるから多分違うかな でも更新履歴ざっと見てもそれらしいのが見当たらないし、ちょっと弄ってみるか
32 名前:名無しさん@お腹いっぱい。 [2015/11/14(土) 09:56:22.61 ID:tGYrtzLK0.net] 仮想化でwin10使ってるが、win7で組んだ物をそのまま持って行っても動く 特定の構文にバグが起きてる可能性もあるが、勘違いの可能性のほうが大きいだろうな
33 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 10:01:32.40 ID:IhUc+KMu0.net] 最新版をwin7でやってみたらやっぱり今まで使えてたのが構文エラー出たわ 過去のバージョンで大丈夫だったのがダメになってるっぽい
34 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 10:59:52.55 ID:PfOb/o3h0.net] そういうのは大体お前の記述ミスだ
35 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 11:48:55.59 ID:BNINhbNt0.net] >>27 せめて動いたUWSCのバージョンとOS、動かないUWSCのバージョンとOSを教えてあげないと >>29 さんでもエスパーしきれないかもしれない
36 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 13:03:47.71 ID:9wBwsNfQ0.net] 構文エラーが出るソース
37 名前:コードを提示できないってことは そもそも過去に動いてたってのが勘違い、あるいは妄想だろう どうせコードを全行コピーしてなかったとかいうオチだろ [] [ここ壊れてます]
38 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 13:10:52.02 ID:NA9ksDwd0.net] >>31 いいからさっさとコードうpしてみろよ解析好きなおせっかいがいっぱいいるぞ
39 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 13:22:40.54 ID:IIbYKaCR0.net] win7からwin10にしたらスクリプトエラーではなくてフリーズするようになったな そこまで実害はないけどちょっと面倒
40 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 13:22:56.45 ID:GE7AjOYz0.net] 俺も5以上のバージョンのUWSCだと頻繁にフリーズするので未だに4.9c使ってる。 構文エラーだとどこの行がおかしいってすぐにわかるんだが固まるだけなのでわからん。 5000行近くあるのでどこがどうなってるのか調べる気が起きない…
41 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 16:56:44.98 ID:RCUdLg7b0.net] 5000行とか。どんだけ低レベルなコーディングしてんだよ
42 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 17:18:01.21 ID:GE7AjOYz0.net] 流石に1ファイルじゃないよ。 関数は分類して5つほどの別ファイルにして CALLで一まとめにしてるけど、関数のどこがガンなのかわからんし。
43 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 17:58:18.92 ID:IpRJAxcj0.net] ある程度以上の規模になったら デバッグ(トレース)フラグを用意して開発 普段はオフにしつつ運用 何かあったらオンにして診断するでしょ
44 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 18:38:55.24 ID:GE7AjOYz0.net] やたら大きくなってしまって収拾がつかないけど、プログラミング全般において素人で 遊びでやってるもんなので所謂デバッグとかやり方知らない。 触らぬ神にたたりなしって感じでバージョンアップできずにいる
45 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 22:00:21.04 ID:oICue9LH0.net] いつやるの?今でしょ! 書き溜めた無駄に長いコードの整理は考えてる以上に身になる これとないチャンスやで
46 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 01:28:43.76 ID:l+eb1X660.net] おれが300行にまとめてやんよ
47 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 11:15:02.57 ID:De6xOu7/0.net] ちゃんと確認したら11ファイルに267個の関数になってた どの関数がどの関数から呼び出されてるのかちゃんと把握してないし フローチャートとか書いてないし、あんまりコメントも残してないから 我ながら訳が分からん。大体の流れしか把握してない… こっちを書き換えたらあっちでトラブってとか日常茶飯事orz
48 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 11:27:52.84 ID:hnZ7/qL70.net] > ある程度以上の規模になったら > デバッグ(トレース)フラグを用意して開発 > 普段はオフにしつつ運用 > 何かあったらオンにして診断するでしょ フラグだと On/Off しかできないから DebugLevel で制御してる。
49 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 11:29:41.24 ID:tIw6v2Vv0.net] 変更が怖いならバージョン管理導入すればいいよ
50 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 12:10:43.83 ID:wd/6nnII0.net] ちゃんと動いて目的果たしてるなら バージョンアップとかいらなくね
51 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 12:23:24.06 ID:De6xOu7/0.net] それ。 ただ、4.9cではfor-in構文が使えない。使いたいなとは思ってるんだけど。
52 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 13:26:11.73 ID:L+1ycDEI0.net] 言うほど使うか? for to で十分なんだけど
53 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 13:51:26.50 ID:3LQPqe8Y0.net] for inてfor eachと同じ内容?
54 名前:名無しさん@お腹いっぱい。 [2015/11/15(日) 14:11:04.40 ID:yRPypCxb0.net] Dim array[2]; print VARTYPE(array); 上記を実行すると、以下のエラーがでます。 なぜなのでしょうか。(uwscのverは5.2.0) 変数:ARRAY 次元
55 名前:数が合いません 2行目:PRINT VARTYPE(ARRAY); [] [ここ壊れてます]
56 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 14:44:31.81 ID:3LQPqe8Y0.net] >>51 引数の配列に添字追加
57 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 17:30:57.89 ID:Xc7Hv4el0.net] SafeArray()で取った配列ならVAR_ARRAYが返るのに DIMの配列だとVAR_ARRAYが返らないどころかエラーになるのは何故?って質問なのでは?
58 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 18:03:21.92 ID:JWUP4/i00.net] 普通の配列はLENGTHかRESIZE使って判断しろって事でしょ 要するにVARTYPEは配列の中身のチェックしか出来ない
59 名前:50 mailto:sage1 [2015/11/15(日) 18:37:18.45 ID:yRPypCxb0.net] >>53 さんが書いてくれている通りの疑問です。
60 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 20:41:38.88 ID:YS+SiHiA0.net] >>55 作者がそう作ったからそうなのであって、作者以外の誰がその疑問に答えられると思ったの?
61 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 23:16:55.13 ID:UTZQ0cqw0.net] Dimで0〜9を定義した配列から最後の数字(9)を取り除くにはどうしたらいいでょうか。 再定義するとエラーになり、SETCLEAR、RESIZEはうまく扱うことができませんでした・・・。 現在定義した数をシャッフルしていて、その結果から9を省きたいのです。 単純に任意の配列を削除、或いは再定義できればいいのですが・・・。 初心者のため発想が貧弱でして手詰まりです・・・アドバイスお願いします! シャッフルはこんな感じのをCallで呼び出してます。 Procedure shuffle(var CarSel[]) Dim n = length(CarSel) Dim i, r, tmp for i = 0 to n -1 r = random(n) tmp = CarSel[r] CarSel[r] = CarSel[i] CarSel[i] = tmp next Fend
62 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 23:44:35.20 ID:De6xOu7/0.net] 普通にRESIZEすればいいだけの話では? RESIZE(CarSel, 8)
63 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 23:45:03.04 ID:YS+SiHiA0.net] >>57 本当に配列のサイズを変更して最後を取り除くことができないなら、 扱う配列の長さをlengthで取るのではなく、 別の変数や配列の頭に入れるなりして管理すればいいのでは? ちなみに DIM CarSel[]=1,2,3,4,5,6,7,8,9 print length(CarSel) + ":" + JOIN(CarSel,",") RESIZE( CarSel, length(CarSel)-2 ) print length(CarSel) + ":" + JOIN(CarSel,",") を実行したら 9:1,2,3,4,5,6,7,8,9 8:1,2,3,4,5,6,7,8 となる
64 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 11:34:56.95 ID:kzKcDPQp0.net] シャッフルで混ぜてるせいかうまくいかないですね・・・ ttp://i.imgur.com/4XcV618.png Dim n = length(CarSel) を毎回変化させられればResizeと合わせて実現できるっぽいんですが、 引数で変化させようとCALL ShuffleNumbers.uws(10) として Dim n = PARAM_STR[0]にするとエラー、 Resizeのあとに手動で Dim n = 9 と 記述しても再定義でエラーになってしまいます。 多分Procedureで10桁用、9桁用みたいにそれぞれ作ればいいんでしょうが できればシンプルなコードで柔軟に使っていけたらいいなと思っております・・・
65 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 12:07:44.32 ID:Xu2hTlmU0.net] >>60 shuffle関数に要素数の引数追加してみたら?
66 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 12:45:32.71 ID:9wFZf3al0.net] >>60 再定義でエラーってことは、nを2回定義してるんじゃないの?
67 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 14:40:41.84 ID:W0rLrKGS0.net] >>60 期待値が良くわからないけど、こういうこと? Dim Original[] =0,1,2,3,4,5,6,7,8,9 Dim CarSel[0] copyArray(Original, CarSel) shuffle(CarSel) print Length(CarSel) +":"+Join(CarSel,",") copyArray(Original, CarSel) Resize(CarSel,8) shuffle(CarSel) print Length(CarSel) +":"+Join(CarSel,",") Function copyArray(var src[], var dst[]) for i=0 to Length(src)-1 Resize(dst, i) dst[i] =src[i] next Result =i Fend
68 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 15:44:23.25 ID:9tIhQjLx0.net] 再定義でエラーになってるってことはその言葉通り定義が再び行われてるからエラーになってるんであって… 定義している部分を見れば一目瞭然なんでは? 既に定義された変数に値を代入するなら定義をする必要ないんだから その部分のDIM外せばいいだけなんじゃ…
69 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 15:55:39.20 ID:9tIhQjLx0.net] 今まで何を問題としてるかわからなかったけど、もしかして問題となってるのはここ? > //結果(9通り最大8) > 9: 9,1,4,6,8,5,7,3 2回目のシャッフル結果に9が入ってて最大が8ではないのは 1回目にシャッフルされた配列を入力してるから当然の話だよ。 resizeでは配列の最後を切り飛ばすだけで、内容の最大値を定義するなんて機能は無いから 1回目の結果の最後が9で無ければ2回目の結果に9が入る。
70 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 16:32:44.46 ID:NGCV+QQo0.net] 「0-9の数字をランダムに使用するが、ある条件下で0-8、0-7のように振れ幅が変わる」 というような挙動をするものが必要だったのですが、>>63 さんのコードで実現できました。 エラーになってる原因はわかるが、それに対する解決法がわからないため質問してました。 引数で渡すのはA = PARAM_STR[0]として、Aを関数に代入しても「Aが定義されてない」といわれよく分からず… とりあえず自分が配列や要素について基本的な理解が足りていないことがよくわかりました。 引数の扱いやFunctionとProcedureの使い分けなど、皆さんのアドバイスを基に研究したいと思います。 ありがとうございました・・・
71 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 17:41:55.59 ID:U7RMM+Pu0.net] 少し前に重複しない乱数を希望した数だけ予め用意したいって質問していた人かな? その実装方法だと関数を呼ぶ側と呼ばれる側の連携密度が高すぎると思うよ こんな感じで乱数配列が欲しい時に一度作成したらそれは捨てる位の方が疎結合になって保守性が上がると思う For item In GetRandomArray(10) print item Next Function GetRandomArray(value) result = SAFEARRAY(0, value - 1) For i = 0 To value - 1 result[i] = i Next For i = 0 To value - 1 r = Random(value - 1) swapValue = result[i] result[r] = result[i] result[i] = swapValue Next Fend
72 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 17:47:31.69 ID:U7RMM+Pu0.net] 繰り返しテストしてみたらこれ入替えでバグってるねw すまん
73 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 17:50:15.00 ID:U7RMM+Pu0.net] 入替え部分の添字だけ差し替え r = Random(value - 1) swapValue = result[i] result[i] = result[r] result[r] = swapValue
74 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 22:57:57.42 ID:NGCV+QQo0.net] >>67-69 おぉ、参考にさせていただきます! そうです前スレの終わり頃に質問した者です。 運用することを考えたら独立させたほうが柔軟になると…なるほど 関数やSafeArray等ちゃんと理解して使えるよう頑張ってみます、ありがとうございました
75 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 00:19:41.16 ID:r3ygr5190.net] IE = GETACTIVEOLEOBJ("InternetExplorer.Application") IE.document.querySelector("#hogehoge").click() このようなスクリプトで、querySelectorで実際には無いセレクタを指定した時 COMエラーで落ちるのですが、存在しない場合にエラー無しでスルーするような方法は try-exceptを使ったり、あらかじめ存在確認してからクリック if IE.document.querySelector("#hogehoge")&l
76 名前:t;>NULL then IE.document.querySelector("#hogehoge").click() というような方法しかないのでしょうか? スクリプト実行中にページの内容が書き換わって目標とするセレクタが消えて COMエラーで落ちるというパターンが時々あって困っています。 [] [ここ壊れてます]
77 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 01:11:47.62 ID:EmLKpCk20.net] // COMエラーメッセージの抑止 COM_ERR_IGN // 何等かのCOM処理 COM_ERR_RET でどうですか
78 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 02:35:05.29 ID:X+X/Girc0.net] ハンゲのリングドリーム(Flashゲーム)でマクロを組んでるんだけど、MOUSEORGをMORG_DIRECTにするとフラッシュ上の ボタンをうまく押せない(当該ボタン上にカーソルを合わせると押そうとしているような挙動はするんだけど実際には押せていない) 状態になってMORG_CLIENTを指定するとしっかりボタンを押せるんだけど、これってどうにかMORG_DIRECTでボタンを押せるよう にすることは出来ないのかな?
79 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 08:30:36.92 ID:r3ygr5190.net] >>72 こんな機能あったんですね。ありがとうございます。
80 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 15:14:10.19 ID:r3ygr5190.net] > CALL UWSファイル名.uws(xxx, xxx, ...) // 引数を付けた場合に値は PARAM_STR[] 変数に入る CALLでスクリプトを呼んだ時のように、不定個の引数を受け取って 内部で配列として扱う関数を作りたいのですが、どうしたら出来るでしょうか?
81 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 16:20:50.27 ID:t2yi2j7b0.net] SafeArry使いなよ
82 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 16:58:26.39 ID:r3ygr5190.net] SafeArrayを使うとは具体的には? 引数が不定数だと、実行時に引数の数が違うと怒られてしまうんですが。 配列を作る関数が欲しいのですが、順序が逆の 先に配列を作ってから関数に入れる事しか思いつかないです。
83 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 19:35:50.10 ID:kvx4k+FL0.net] pram[] が使える言語も受け側は配列として処理するだけの糖衣構文 あると便利な機能だけど無いとコレが出来ないって事はない 結果に加工した配列が欲しい場合はSafeArray使えって話でしょ UWSCはpram[] は使えないので配列長なしの配列を引数に使うしか無いので こんな感じで引数用の配列を用意する必要があるのは仕方ない Dim a[] = 1,2,3 Dim b[] = 5,10 Print JOIN(test(a), ",") Print JOIN(test(b), ",") Function Test(value[]) Dim iMax = Length(value) - 1 result = SAFEARRAY(0, iMax) For i = 0 To iMax result[i] = value[i] * 2 //2倍に加工 Next Fend //実行結果 //2,4,6 //10,20
84 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 23:27:48.86 ID:3Sfs5iCK0.net] 引数を多目に書いておいて関数内で処理するんはダメなのか?
85 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 00:57:58.26 ID:DCQo+QOr0.net] 要するに不特定の因数を受け取って配列を吐き出したいんだろ? 関数内で配列を作るか関数外で用意しておいたところに入れるかの差はあるが 関数内で配列を作って外に放り出すにはSafeArrayしかないし 関数外であらかじめ用意しておくなら配列数でリサイズすればいいだけじゃないっていう話 関数に不特定の因数を渡す際には セパレータ記号を付けて一つの因数にしておいて、関数内で分解すればよろし dim array = test(a+"#"+b+"#"+c+"#"+d+"#"+e) function test(param) testarray = safearray(0, 0); testarray[0] = token("#", param) while pos("#", param); testarray[resize(testarray, resize(testarray)+1)] = token("#", param); wend result = testarray; fend
86 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 10:58:24.63 ID:R9oruk2c0.net] UWSC初心者です。つまづいてしまったのでどなたかお教えください。 Bluestacks上でアプリを起動してマウス操作などの自動化を行いたいのですが記録されても再生するとマウスがBluestacks上動いたりクリックしたりしません。PCゲーでは今まで動いていたのですが‥ なぜでしょう?どなたかお
87 名前:願いします。 [] [ここ壊れてます]
88 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:08:48.43 ID:6gzLq2020.net] >>80 内部で配列として扱いたいだけで、出力は配列というわけではないのです。 結局のところ、不特定数の引数を受け取りたいだけなんですが、 そのままの入力はどうやら無理のようですね。 素直に配列作って渡すことにします。 無名配列でも作れたらよかったのですが。 ありがとうございました。
89 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:24:54.22 ID:zICgyZ9/0.net] >>82 単純に受け側でsplitで良いような…
90 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:37:45.83 ID:6gzLq2020.net] 受け取る変数も不特定なのでセパレータが被る恐れがあります
91 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 14:17:53.45 ID:95T98vMj0.net] 特定の画像が出た時に直前の作業をもう一度起こす事で安定性を上げたいです a→b→cと処理勧めてきて while if checking 処理dに進む break elseif checkingエラー画面 call b→c処理を書いた別ファイル endif wend みたいな形でなんとか動かせてはいるんですけど修正の作業とかが面倒なので別のアイデア無いでしょうか
92 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:02:48.84 ID:WUTAg8ze0.net] >>85 b→cを別ファイルにするだけではあかんの? a→ call b→c処理を書いた別ファイル while if checking 処理dに進む break elseif checkingエラー画面 call b→c処理を書いた別ファイル endif wend
93 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:07:24.77 ID:WUTAg8ze0.net] 安定性を上げる手段としては、状態判定と処理をループにしておくという手も。 while true 状態判定 a →処理 a 状態判定 b →処理 b 状態判定 c →処理 c 状態判定 d →ループ抜ける wend 処理 d
94 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:15:35.51 ID:gRViVlbY0.net] >>84 分ってるかもだけれど セパレータは2文字でも3文字でもOK
95 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:38:20.45 ID:bJyAh8OV0.net] >>88 自前でセパレータを仕込むのなら もう自分で配列造るのと何も変わらないさ
96 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 16:34:39.80 ID:95T98vMj0.net] >>87 なるほど 手探りで一本で書いて後から必要な部分だけ別ファイル用意してcall・・・みたいな事してぐちゃぐちゃになってしまったんですが最初かは処理毎に作っておいて判定してcallする形にすればあちこち修正しなくても済みそうですね その方向で整理してみます ありがとうございました
97 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 16:56:34.30 ID:nYaQHfF60.net] >>90 お前は次に、長時間動作させているとエラーでUWSCが落ちる、と書き込む
98 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 17:20:08.96 ID:bJyAh8OV0.net] そして私はスタックオーバーフローしないようにCALLは出来るだけ最初に1回 CALL先のスクリプトは関数化して本処理ではその関数を呼ぶと安定するよとFAQなアドバイスしておくのだった CALLをループ内に仕込むのは展開された動作を把握しきっていないと 資源の衝突や初期化周りで予期しない動作が発生するトラブルの原因のトップランカーさんです
99 名前:名無しさん@お腹いっぱい。 [2015/11/18(水) 20:34:52.95 ID:ya19mM+o0.net] 下記のように画像判定を使ってループを処理した際に repeat 状態判定a →処理a 状態判定b →処理b until chkimg(処理abが実行された後の画像) ループ中にエラー(Flashがクラッシュするなど)が発生した際にどのように対処すればいいでしょうか。 現在苦肉の策としてFlashがクラッシュした際に出る画像を判定するプロシージャをThreadで走らせておいて エラー画像を検出したらエラーフラグ(Publicなエラーフラグ変数)をTrueにして各repeat内でフラグが立っていたら breakするように記述しているのですが、repeatすべてにこの処理を導入しているため大変見苦しいコードとなって しまっているので何かいい方法はないかと・・・
100 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 20:52:19.47 ID:bJyAh8OV0.net] エラー画像を発見したら終わらせるだけなら 寧ろメインループをそっちにして 別スレッドで他の処理すると