■ このスレッドは過去ログ倉庫に格納されています
自動化ツールUWSC使いよ集まれ16
- 1 :名無しさん@お腹いっぱい。:2015/11/11(水) 13:45:28.80 ID:+oPzgSay0.net
- Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある
ttp://www.uwsc.info/download.html
●UWSC 掲示板(※作成依頼掲示版ではありません)
質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること
上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫
http://www3.rocketbbs.com/13/bbs.cgi?id=umiumi
http://www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=past
●UWSC - Wikipedia
http://ja.wikipedia.org/wiki/UWSC
●使い方・基礎解説学習サイト
http://uwsc.g.hatena.ne.jp/cx20/20100131/1264938584
http://www.confrage.com/uwsc/
http://necro.jp/dev/uwsc/
http://park14.wakwak.com/~simizu/uwsc/fruwsc.html
http://canal22.org/
http://big.tm.land.to/handbook/uwsc.htm
http://www.game-rev.com/review/gameut/uwsc.html
●スクリプトテンプレサイト
http://izagne.com/uwsc/
http://scripts.web.fc2.com/
http://www.nagomi-jp.net/~liners/
http://nem.symphonic-net.com/uwsct/0610uwsct.html
http://siromasa.digi2.jp/uwsc/
http://iriyak.adam.ne.jp/uwsc.html
前スレ 自動化ツールUWSC使いよ集まれ15
http://anago.2ch.net/test/read.cgi/software/1436671958/
- 2 :名無しさん@お腹いっぱい。:2015/11/11(水) 13:46:14.33 ID:+oPzgSay0.net
- Q.シェアウェア版で「L20が存在しません」「L22が存在しません」とエラーが出て一部機能が動作しない
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 等のようにし、
必要な部分を晒すようにする。
●他人の書いたスクリプトを安易に実行しないように。
ハードディスクをフォーマットされたりしても、自己責任。
- 3 :名無しさん@お腹いっぱい。: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
http://anago.2ch.net/test/read.cgi/software/1413600379/673
UWSC向け画像認識関数です。CHKIMGは(ほぼ)一致画像しか探すことができませんが、
CHKIMGXは似た画像の検出が可能です。使い方は中身のsample.uws や ChkImgX.uws を見てください。
- 4 : 【だん吉】 :2015/11/11(水) 13:54:22.45 ID:k95kaPQv0.net
- _
|O\
| \ キリキリ
∧|∧ \ キリキリ
ググゥ>(;⌒ヽ \
∪ | (~)
∪∪ γ´⌒`ヽ
) ) {i:i:i:i:i:i:i:i:}
( ( ( ´・ω・)、>>1乙
(O ⌒ )O
⊂_)∪
- 5 :名無しさん@お腹いっぱい。:2015/11/11(水) 15:15:54.45 ID:QGUfCker0.net
- >>前スレ1000
>そんな当たり前の事一々指摘せんでもいいわw
>UWSC単独で出来ないのが残念って言ってるだけだろ
え、UWSC単独でできるよね・・・何言っ・・え?
- 6 :名無しさん@お腹いっぱい。:2015/11/11(水) 15:40:01.62 ID:DWR2WWEp0.net
- 当たり前の事指摘されたくなかったら条件や情報を後出しにしないことだな
コードまで貼って教えてくれた丁寧な回答者に対する態度じゃないだろ二度と来るな
- 7 :名無しさん@お腹いっぱい。:2015/11/11(水) 16:00:51.36 ID:uAtR0Bu+0.net
- 知識のないぼくちゃんは別プロセスで常時表示させてるslctboxとかinputでWriteiniして
threadでReadiniして無理矢理変更してたわ
前スレのやり方も試してみようかな
- 8 :名無しさん@お腹いっぱい。:2015/11/11(水) 16:28:56.45 ID:MrsBdBBf0.net
- シェアウェア版に付いて来るデバッガで、変数の書き換えとか出来るといいね。知らんけど
- 9 :名無しさん@お腹いっぱい。:2015/11/11(水) 17:06:46.18 ID:rpEewyDo0.net
- 実行中の UWSC の挙動をGUIで変えるために、
AutoIt3 + KODA FormDesigner で .ini ファイルを編集するGUIアプリ作って
UWSC からは、必要に応じて .ini を読み直すという構成にしたよ。
- 10 :名無しさん@お腹いっぱい。:2015/11/11(水) 17:07:15.29 ID:oN5GYFPP0.net
- そもそもoleevent使えばcreateformだろうが
非シェアのIEを使った擬似createformだろうが
イベントドリブンなスクリプト作れるしなぁ
まぁ其処までする位ならGUI構築、連動できる言語の出番って考え方もあるけれどね
(自分はどちらかと言うとそっち派)
- 11 :名無しさん@お腹いっぱい。:2015/11/11(水) 17:26:50.51 ID:jGEVW+4x6
- 過去ログ
自動化ツールUWSC使いよ集まれ15
http://anago.2ch.sc/test/read.cgi/software/1436671958/
自動化ツールUWSC使いよ集まれ14
http://anago.2ch.sc/test/read.cgi/software/1425741537/
自動化ツールUWSC使いよ集まれ13
http://anago.2ch.sc/test/read.cgi/software/1413600379/
自動化ツールUWSC使いよ集まれ12
http://anago.2ch.sc/test/read.cgi/software/1405162342/
自動化ツールUWSC使いよ集まれ11
http://anago.2ch.sc/test/read.cgi/software/1389240960/
10 http://anago.2ch.net/test/read.cgi/software/1367340336/
9 http://anago.2ch.net/test/read.cgi/software/1350040751/
8 http://anago.2ch.net/test/read.cgi/software/1333915056/
7 http://anago.2ch.net/test/read.cgi/software/1312390804/
6 http://hibari.2ch.net/test/read.cgi/software/1291347103/
5 http://hibari.2ch.net/test/read.cgi/software/1260304053/
4 http://pc12.2ch.net/test/read.cgi/software/1235990960/
3 http://pc11.2ch.net/test/read.cgi/software/1176677869/
2 http://pc11.2ch.net/test/read.cgi/software/1156416884/
1 http://pc7.2ch.net/test/read.cgi/software/1107738590/
- 12 :名無しさん@お腹いっぱい。:2015/11/11(水) 20:30:11.22 ID:mvp9IgBe0.net
- UWSCでシェアウェアのシリアル入力欄に値を・・・
3日かかってやっと1つ見つけた
- 13 :名無しさん@お腹いっぱい。:2015/11/13(金) 08:45:57.85 ID:3qksjFX10.net
- uwsファイルをexe化したいんですがfree上位版じゃなく何かやり方ありませんか?
- 14 :名無しさん@お腹いっぱい。:2015/11/13(金) 08:54:17.45 ID:Mcz5MFKc0.net
- Free上位版て何だ? 金払えよ。その機能は無料じゃねえんだよ
- 15 :名無しさん@お腹いっぱい。:2015/11/13(金) 10:01:53.16 ID:NDAx3tp60.net
- >>13
exe化できる人に 金払ってやってもらう。
- 16 :名無しさん@お腹いっぱい。:2015/11/13(金) 15:46:47.76 ID:wNx4EtEV0.net
- 自己解凍アーカイブでも作ればいいんじゃないかな
- 17 :名無しさん@お腹いっぱい。:2015/11/13(金) 22:05:27.26 ID:Uo/qbExH0.net
- UWSCに備わっているマウスの移動を手動で記録(座標指定や画像指定とか無し)
させたものをブラウザゲームにて使いたいのですが運営側に不振な動きとかってばれるものなんでしょうか?
24時間使うとかじゃなく1日数時間程度なのですが、どなたか教えて下さい。
- 18 :名無しさん@お腹いっぱい。:2015/11/13(金) 22:06:59.66 ID:Z3RRarm70.net
- 巣に帰れ
- 19 :名無しさん@お腹いっぱい。:2015/11/13(金) 22:13:32.82 ID:b0VOgiyP0.net
- UWSCの質問ですらねぇwww
- 20 :名無しさん@お腹いっぱい。:2015/11/13(金) 22:49:34.51 ID:xAhnpw3q0.net
- 運営に問い合わせして どうぞ
- 21 :名無しさん@お腹いっぱい。: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で間違っては無いんだがなんなのこれ?
- 22 :名無しさん@お腹いっぱい。:2015/11/14(土) 00:17:35.92 ID:FIcKEvAv0.net
- 巣に帰れ
- 23 :名無しさん@お腹いっぱい。:2015/11/14(土) 00:18:11.82 ID:mvqgNrFZ0.net
- >>21
""
- 24 :名無しさん@お腹いっぱい。:2015/11/14(土) 03:37:05.40 ID:BoPLs7GB0.net
- ぐぐってみたのですがわからないので教えてください。
UWSC初心者ですが、bluestacks上のアプリを画像認識で無限ループするマクロを作りました。
しかし、アプリがフリーズすると画像が表示されずマクロが止まってしまいます。
そこで、マクロのループ処理が止まった場合、アプリを再起動してループを再開するような例外処理を作りたいのですが良い関数があれば教えてください。
ループ処理の前に時間を設定してもしタイムアウトが発生したら再起動をするといったものを作りたいです。
- 25 :名無しさん@お腹いっぱい。:2015/11/14(土) 03:49:36.32 ID:mvqgNrFZ0.net
- >>24
自分がコードを書けるように日本語を変換する
「マクロのループ処理が止まった場合」というのは「画像がなかった場合」のことで大丈夫だろう
それ以外で止まるならその条件も加える
「ループ処理の前に時間を設定してもしタイムアウトが発生したら」というのを、
「画像がなかった場合の回数を設定してもしその回数を超えたら」とすればいい
- 26 :名無しさん@お腹いっぱい。:2015/11/14(土) 04:43:03.64 ID:uyToSXci0.net
- while chkimg("a.bmp")
〜処理〜
wend
みたいに書いてるからループを抜け出して止まってしまうとかいうことなのかな?
- 27 :名無しさん@お腹いっぱい。:2015/11/14(土) 08:59:23.55 ID:IhUc+KMu0.net
- 初歩的でスマンが質問させてくれ
去年の12月にDLしたフリー版を使ってたんだがwin10環境で動くのか試したら動かなかった
最新版DLしてもう一回動かしてみたら今度はIF文が閉じてませんみたいな構文エラーが出た
UWSC本体のバージョンで構文まで変わっちゃうのか?
win10で使おうと思ったらまた組み直さないとダメ?
- 28 :名無しさん@お腹いっぱい。:2015/11/14(土) 09:42:35.18 ID:IpRJAxcj0.net
- 破壊的な仕様変更があれば更新履歴にあるさ
IF絡みだと
14/02/03 ver4.9c IF文のブロック文にてIFB-ENDIFではなく、IF-ENDIFでも可にした
これかな
- 29 :名無しさん@お腹いっぱい。:2015/11/14(土) 09:52:52.41 ID:IhUc+KMu0.net
- 使ってた方のバージョン見たらVer 5.0.4.0 2014-12-14ってなってるから多分違うかな
でも更新履歴ざっと見てもそれらしいのが見当たらないし、ちょっと弄ってみるか
- 30 :名無しさん@お腹いっぱい。:2015/11/14(土) 09:56:22.61 ID:tGYrtzLK0.net
- 仮想化でwin10使ってるが、win7で組んだ物をそのまま持って行っても動く
特定の構文にバグが起きてる可能性もあるが、勘違いの可能性のほうが大きいだろうな
- 31 :名無しさん@お腹いっぱい。:2015/11/14(土) 10:01:32.40 ID:IhUc+KMu0.net
- 最新版をwin7でやってみたらやっぱり今まで使えてたのが構文エラー出たわ
過去のバージョンで大丈夫だったのがダメになってるっぽい
- 32 :名無しさん@お腹いっぱい。:2015/11/14(土) 10:59:52.55 ID:PfOb/o3h0.net
- そういうのは大体お前の記述ミスだ
- 33 :名無しさん@お腹いっぱい。:2015/11/14(土) 11:48:55.59 ID:BNINhbNt0.net
- >>27
せめて動いたUWSCのバージョンとOS、動かないUWSCのバージョンとOSを教えてあげないと
>>29さんでもエスパーしきれないかもしれない
- 34 :名無しさん@お腹いっぱい。:2015/11/14(土) 13:03:47.71 ID:9wBwsNfQ0.net
- 構文エラーが出るソースコードを提示できないってことは
そもそも過去に動いてたってのが勘違い、あるいは妄想だろう
どうせコードを全行コピーしてなかったとかいうオチだろ
- 35 :名無しさん@お腹いっぱい。:2015/11/14(土) 13:10:52.02 ID:NA9ksDwd0.net
- >>31
いいからさっさとコードうpしてみろよ解析好きなおせっかいがいっぱいいるぞ
- 36 :名無しさん@お腹いっぱい。:2015/11/14(土) 13:22:40.54 ID:IIbYKaCR0.net
- win7からwin10にしたらスクリプトエラーではなくてフリーズするようになったな
そこまで実害はないけどちょっと面倒
- 37 :名無しさん@お腹いっぱい。:2015/11/14(土) 13:22:56.45 ID:GE7AjOYz0.net
- 俺も5以上のバージョンのUWSCだと頻繁にフリーズするので未だに4.9c使ってる。
構文エラーだとどこの行がおかしいってすぐにわかるんだが固まるだけなのでわからん。
5000行近くあるのでどこがどうなってるのか調べる気が起きない…
- 38 :名無しさん@お腹いっぱい。:2015/11/14(土) 16:56:44.98 ID:RCUdLg7b0.net
- 5000行とか。どんだけ低レベルなコーディングしてんだよ
- 39 :名無しさん@お腹いっぱい。:2015/11/14(土) 17:18:01.21 ID:GE7AjOYz0.net
- 流石に1ファイルじゃないよ。
関数は分類して5つほどの別ファイルにして
CALLで一まとめにしてるけど、関数のどこがガンなのかわからんし。
- 40 :名無しさん@お腹いっぱい。:2015/11/14(土) 17:58:18.92 ID:IpRJAxcj0.net
- ある程度以上の規模になったら
デバッグ(トレース)フラグを用意して開発
普段はオフにしつつ運用
何かあったらオンにして診断するでしょ
- 41 :名無しさん@お腹いっぱい。:2015/11/14(土) 18:38:55.24 ID:GE7AjOYz0.net
- やたら大きくなってしまって収拾がつかないけど、プログラミング全般において素人で
遊びでやってるもんなので所謂デバッグとかやり方知らない。
触らぬ神にたたりなしって感じでバージョンアップできずにいる
- 42 :名無しさん@お腹いっぱい。:2015/11/14(土) 22:00:21.04 ID:oICue9LH0.net
- いつやるの?今でしょ!
書き溜めた無駄に長いコードの整理は考えてる以上に身になる
これとないチャンスやで
- 43 :名無しさん@お腹いっぱい。:2015/11/15(日) 01:28:43.76 ID:l+eb1X660.net
- おれが300行にまとめてやんよ
- 44 :名無しさん@お腹いっぱい。:2015/11/15(日) 11:15:02.57 ID:De6xOu7/0.net
- ちゃんと確認したら11ファイルに267個の関数になってた
どの関数がどの関数から呼び出されてるのかちゃんと把握してないし
フローチャートとか書いてないし、あんまりコメントも残してないから
我ながら訳が分からん。大体の流れしか把握してない…
こっちを書き換えたらあっちでトラブってとか日常茶飯事orz
- 45 :名無しさん@お腹いっぱい。:2015/11/15(日) 11:27:52.84 ID:hnZ7/qL70.net
- > ある程度以上の規模になったら
> デバッグ(トレース)フラグを用意して開発
> 普段はオフにしつつ運用
> 何かあったらオンにして診断するでしょ
フラグだと On/Off しかできないから DebugLevel で制御してる。
- 46 :名無しさん@お腹いっぱい。:2015/11/15(日) 11:29:41.24 ID:tIw6v2Vv0.net
- 変更が怖いならバージョン管理導入すればいいよ
- 47 :名無しさん@お腹いっぱい。:2015/11/15(日) 12:10:43.83 ID:wd/6nnII0.net
- ちゃんと動いて目的果たしてるなら
バージョンアップとかいらなくね
- 48 :名無しさん@お腹いっぱい。:2015/11/15(日) 12:23:24.06 ID:De6xOu7/0.net
- それ。
ただ、4.9cではfor-in構文が使えない。使いたいなとは思ってるんだけど。
- 49 :名無しさん@お腹いっぱい。:2015/11/15(日) 13:26:11.73 ID:L+1ycDEI0.net
- 言うほど使うか? for to で十分なんだけど
- 50 :名無しさん@お腹いっぱい。:2015/11/15(日) 13:51:26.50 ID:3LQPqe8Y0.net
- for inてfor eachと同じ内容?
- 51 :名無しさん@お腹いっぱい。:2015/11/15(日) 14:11:04.40 ID:yRPypCxb0.net
- Dim array[2];
print VARTYPE(array);
上記を実行すると、以下のエラーがでます。
なぜなのでしょうか。(uwscのverは5.2.0)
変数:ARRAY 次元数が合いません
2行目:PRINT VARTYPE(ARRAY);
- 52 :名無しさん@お腹いっぱい。:2015/11/15(日) 14:44:31.81 ID:3LQPqe8Y0.net
- >>51
引数の配列に添字追加
- 53 :名無しさん@お腹いっぱい。:2015/11/15(日) 17:30:57.89 ID:Xc7Hv4el0.net
- SafeArray()で取った配列ならVAR_ARRAYが返るのに
DIMの配列だとVAR_ARRAYが返らないどころかエラーになるのは何故?って質問なのでは?
- 54 :名無しさん@お腹いっぱい。:2015/11/15(日) 18:03:21.92 ID:JWUP4/i00.net
- 普通の配列はLENGTHかRESIZE使って判断しろって事でしょ
要するにVARTYPEは配列の中身のチェックしか出来ない
- 55 :50:2015/11/15(日) 18:37:18.45 ID:yRPypCxb0.net
- >>53さんが書いてくれている通りの疑問です。
- 56 :名無しさん@お腹いっぱい。:2015/11/15(日) 20:41:38.88 ID:YS+SiHiA0.net
- >>55
作者がそう作ったからそうなのであって、作者以外の誰がその疑問に答えられると思ったの?
- 57 :名無しさん@お腹いっぱい。: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
- 58 :名無しさん@お腹いっぱい。:2015/11/15(日) 23:44:35.20 ID:De6xOu7/0.net
- 普通にRESIZEすればいいだけの話では?
RESIZE(CarSel, 8)
- 59 :名無しさん@お腹いっぱい。: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
となる
- 60 :名無しさん@お腹いっぱい。: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桁用みたいにそれぞれ作ればいいんでしょうが
できればシンプルなコードで柔軟に使っていけたらいいなと思っております・・・
- 61 :名無しさん@お腹いっぱい。:2015/11/16(月) 12:07:44.32 ID:Xu2hTlmU0.net
- >>60
shuffle関数に要素数の引数追加してみたら?
- 62 :名無しさん@お腹いっぱい。:2015/11/16(月) 12:45:32.71 ID:9wFZf3al0.net
- >>60
再定義でエラーってことは、nを2回定義してるんじゃないの?
- 63 :名無しさん@お腹いっぱい。: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
- 64 :名無しさん@お腹いっぱい。:2015/11/16(月) 15:44:23.25 ID:9tIhQjLx0.net
- 再定義でエラーになってるってことはその言葉通り定義が再び行われてるからエラーになってるんであって…
定義している部分を見れば一目瞭然なんでは?
既に定義された変数に値を代入するなら定義をする必要ないんだから
その部分のDIM外せばいいだけなんじゃ…
- 65 :名無しさん@お腹いっぱい。: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が入る。
- 66 :名無しさん@お腹いっぱい。: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の使い分けなど、皆さんのアドバイスを基に研究したいと思います。
ありがとうございました・・・
- 67 :名無しさん@お腹いっぱい。: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
- 68 :名無しさん@お腹いっぱい。:2015/11/16(月) 17:47:31.69 ID:U7RMM+Pu0.net
- 繰り返しテストしてみたらこれ入替えでバグってるねw
すまん
- 69 :名無しさん@お腹いっぱい。: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
- 70 :名無しさん@お腹いっぱい。:2015/11/16(月) 22:57:57.42 ID:NGCV+QQo0.net
- >>67-69
おぉ、参考にさせていただきます!
そうです前スレの終わり頃に質問した者です。
運用することを考えたら独立させたほうが柔軟になると…なるほど
関数やSafeArray等ちゃんと理解して使えるよう頑張ってみます、ありがとうございました
- 71 :名無しさん@お腹いっぱい。: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")<>NULL then IE.document.querySelector("#hogehoge").click()
というような方法しかないのでしょうか?
スクリプト実行中にページの内容が書き換わって目標とするセレクタが消えて
COMエラーで落ちるというパターンが時々あって困っています。
- 72 :名無しさん@お腹いっぱい。:2015/11/17(火) 01:11:47.62 ID:EmLKpCk20.net
- // COMエラーメッセージの抑止
COM_ERR_IGN
// 何等かのCOM処理
COM_ERR_RET
でどうですか
- 73 :名無しさん@お腹いっぱい。:2015/11/17(火) 02:35:05.29 ID:X+X/Girc0.net
- ハンゲのリングドリーム(Flashゲーム)でマクロを組んでるんだけど、MOUSEORGをMORG_DIRECTにするとフラッシュ上の
ボタンをうまく押せない(当該ボタン上にカーソルを合わせると押そうとしているような挙動はするんだけど実際には押せていない)
状態になってMORG_CLIENTを指定するとしっかりボタンを押せるんだけど、これってどうにかMORG_DIRECTでボタンを押せるよう
にすることは出来ないのかな?
- 74 :名無しさん@お腹いっぱい。:2015/11/17(火) 08:30:36.92 ID:r3ygr5190.net
- >>72
こんな機能あったんですね。ありがとうございます。
- 75 :名無しさん@お腹いっぱい。:2015/11/17(火) 15:14:10.19 ID:r3ygr5190.net
- > CALL UWSファイル名.uws(xxx, xxx, ...) // 引数を付けた場合に値は PARAM_STR[] 変数に入る
CALLでスクリプトを呼んだ時のように、不定個の引数を受け取って
内部で配列として扱う関数を作りたいのですが、どうしたら出来るでしょうか?
- 76 :名無しさん@お腹いっぱい。:2015/11/17(火) 16:20:50.27 ID:t2yi2j7b0.net
- SafeArry使いなよ
- 77 :名無しさん@お腹いっぱい。:2015/11/17(火) 16:58:26.39 ID:r3ygr5190.net
- SafeArrayを使うとは具体的には?
引数が不定数だと、実行時に引数の数が違うと怒られてしまうんですが。
配列を作る関数が欲しいのですが、順序が逆の
先に配列を作ってから関数に入れる事しか思いつかないです。
- 78 :名無しさん@お腹いっぱい。: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
- 79 :名無しさん@お腹いっぱい。:2015/11/17(火) 23:27:48.86 ID:3Sfs5iCK0.net
- 引数を多目に書いておいて関数内で処理するんはダメなのか?
- 80 :名無しさん@お腹いっぱい。: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
- 81 :名無しさん@お腹いっぱい。:2015/11/18(水) 10:58:24.63 ID:R9oruk2c0.net
- UWSC初心者です。つまづいてしまったのでどなたかお教えください。
Bluestacks上でアプリを起動してマウス操作などの自動化を行いたいのですが記録されても再生するとマウスがBluestacks上動いたりクリックしたりしません。PCゲーでは今まで動いていたのですが‥
なぜでしょう?どなたかお願いします。
- 82 :名無しさん@お腹いっぱい。:2015/11/18(水) 11:08:48.43 ID:6gzLq2020.net
- >>80
内部で配列として扱いたいだけで、出力は配列というわけではないのです。
結局のところ、不特定数の引数を受け取りたいだけなんですが、
そのままの入力はどうやら無理のようですね。
素直に配列作って渡すことにします。
無名配列でも作れたらよかったのですが。
ありがとうございました。
- 83 :名無しさん@お腹いっぱい。:2015/11/18(水) 11:24:54.22 ID:zICgyZ9/0.net
- >>82
単純に受け側でsplitで良いような…
- 84 :名無しさん@お腹いっぱい。:2015/11/18(水) 11:37:45.83 ID:6gzLq2020.net
- 受け取る変数も不特定なのでセパレータが被る恐れがあります
- 85 :名無しさん@お腹いっぱい。: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
みたいな形でなんとか動かせてはいるんですけど修正の作業とかが面倒なので別のアイデア無いでしょうか
- 86 :名無しさん@お腹いっぱい。: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
- 87 :名無しさん@お腹いっぱい。:2015/11/18(水) 15:07:24.77 ID:WUTAg8ze0.net
- 安定性を上げる手段としては、状態判定と処理をループにしておくという手も。
while true
状態判定 a →処理 a
状態判定 b →処理 b
状態判定 c →処理 c
状態判定 d →ループ抜ける
wend
処理 d
- 88 :名無しさん@お腹いっぱい。:2015/11/18(水) 15:15:35.51 ID:gRViVlbY0.net
- >>84
分ってるかもだけれど
セパレータは2文字でも3文字でもOK
- 89 :名無しさん@お腹いっぱい。:2015/11/18(水) 15:38:20.45 ID:bJyAh8OV0.net
- >>88
自前でセパレータを仕込むのなら
もう自分で配列造るのと何も変わらないさ
- 90 :名無しさん@お腹いっぱい。:2015/11/18(水) 16:34:39.80 ID:95T98vMj0.net
- >>87
なるほど
手探りで一本で書いて後から必要な部分だけ別ファイル用意してcall・・・みたいな事してぐちゃぐちゃになってしまったんですが最初かは処理毎に作っておいて判定してcallする形にすればあちこち修正しなくても済みそうですね
その方向で整理してみます ありがとうございました
- 91 :名無しさん@お腹いっぱい。:2015/11/18(水) 16:56:34.30 ID:nYaQHfF60.net
- >>90
お前は次に、長時間動作させているとエラーでUWSCが落ちる、と書き込む
- 92 :名無しさん@お腹いっぱい。:2015/11/18(水) 17:20:08.96 ID:bJyAh8OV0.net
- そして私はスタックオーバーフローしないようにCALLは出来るだけ最初に1回
CALL先のスクリプトは関数化して本処理ではその関数を呼ぶと安定するよとFAQなアドバイスしておくのだった
CALLをループ内に仕込むのは展開された動作を把握しきっていないと
資源の衝突や初期化周りで予期しない動作が発生するトラブルの原因のトップランカーさんです
- 93 :名無しさん@お腹いっぱい。: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すべてにこの処理を導入しているため大変見苦しいコードとなって
しまっているので何かいい方法はないかと・・・
- 94 :名無しさん@お腹いっぱい。:2015/11/18(水) 20:52:19.47 ID:bJyAh8OV0.net
- エラー画像を発見したら終わらせるだけなら
寧ろメインループをそっちにして
別スレッドで他の処理すると楽だよ
終わらせたくなったらメインループを抜けるだけで全て終わるからね
処理毎の終了処理が必要なら今の方法しか無いかな
- 95 :名無しさん@お腹いっぱい。:2015/11/18(水) 20:57:06.76 ID:bJyAh8OV0.net
- 但し、デバッガがメインスレッド以外のスレッドのデバッグにマトモに対応していないから
完成した後にそうするか最初からprintデバッグする必要があるけれどね
- 96 :名無しさん@お腹いっぱい。:2015/11/18(水) 20:57:49.77 ID:JQ1Q8izi0.net
- Flashのクラッシュみたいな大きなエラーはもう別プロセス(別UWSC)で監視しちゃえば。
- 97 :名無しさん@お腹いっぱい。:2015/11/18(水) 21:23:51.36 ID:ya19mM+o0.net
- クラッシュを検出したらリロードを行ってまた処理を行うようにしているので
メインループを抜けてしまうのは出来ないです。
別プロセスでエラーを監視した場合、メインプロセスを再起動させて処理を再開するというような感じになるのでしょうかか?
- 98 :名無しさん@お腹いっぱい。:2015/11/18(水) 21:49:32.35 ID:bJyAh8OV0.net
- 終わらせないなら特に楽にならないから今まで通りで良いんじゃないかな
UWSCから他のスレッドを殺す事はやろうと思えば出来るけれど
予めスレッドの起動毎にプロセス番号をグローバルな配列に保存して
それらをゴニョゴニョって感じになるから
今のフラグでループ制御しているのと面倒臭さは大して変わらない
でも一旦終わらせて、それを検知する別スクリプトが再起動させるという考え方もあるんだけれどね
(ログに書き出すとか色々方法はある)
- 99 :名無しさん@お腹いっぱい。:2015/11/18(水) 23:05:59.51 ID:R9oruk2c0.net
- >81です
初歩的な質問すぎて呆れてしまわれましたかね?ごめんなさい
- 100 :名無しさん@お腹いっぱい。:2015/11/18(水) 23:15:08.17 ID:xUeF/cfW0.net
- 失せろカス
- 101 :名無しさん@お腹いっぱい。:2015/11/19(木) 00:52:14.47 ID:d6Osv4Zy0.net
- 誰か教えてやれよ
- 102 :名無しさん@お腹いっぱい。:2015/11/19(木) 19:16:18.41 ID:5LbifL7P0.net
- >>97-98
その辺の実践経験者から言わせてもらうと、
結局は人間が操作するならどういう流れで操作するか、その流れのコード化に尽きる。
処理の区切り区切りの尽くに、クラッシュその他の予期しない自体を検知する処理を行う関数を挟み込む。
何らかの無限ループがあればその内側に必ず挟みこむか、無限ループをやめて回数制限またはタイムアウトを設ける。
クラッシュを検知してリロードして処理を1からやり直すということは、
その1からの部分に何時でも戻れるよう、プログラムの十分な構造化が要求されることは言うまでもない。
関数化、関数化そして関数化だ。関数が出来過ぎてしまうので分類だ。凄まじい数の独自関数群になる。
>>81
使ったことのない対象なので無責任に答えるが、
記録できないだけなのであればキャプチャ画像から割り出した座標をDOWN-UPでゆっくりクリックするのを書いて、
それでも認識されないか否か試してみたら?認識されないのなら不可能だから諦めろってことだ。
- 103 :名無しさん@お腹いっぱい。:2015/11/19(木) 22:29:12.84 ID:ZWZs69JY0.net
- >>81
高レベルではなく低レベル記録する
- 104 :名無しさん@お腹いっぱい。:2015/11/19(木) 22:43:42.91 ID:oG2sQJna0.net
- 仮想OS上のアプリをホスト側から操作しようなんてのは無理
- 105 :名無しさん@お腹いっぱい。:2015/11/20(金) 09:33:31.45 ID:Pd39Iv5K0.net
- フラッシュは、ジョブズが嫌ってた。
firefoxとも相性が悪くてクラッシュしまくりだから大嫌い!
- 106 :名無しさん@お腹いっぱい。:2015/11/21(土) 10:27:37.94 ID:kt2iHckZ0.net
- UWSCのスレッド内からIEの操作を行うと、
アプリケーションは、別のスレッドにマーシャリングされたインターフェースを呼び出しました
ってエラーが出るんですが、回避の方法はありますかね?
IEobj = CREATEOLEOBJ("InternetExplorer.Application")
thread test_thread(IEobj)
msgbox("")
// ここまでmain
procedure test_thread(IE)
PRINT "IE Navigate start"
IE.Navigate("http://www.google.co.jp")
PRINT "IE Navigate end"
wait(IE)
fend
procedure wait(IE)
REPEAT
SLEEP(0.1)
UNTIL !IE.busy AND IE.READYSTATE = 4
fend
- 107 :名無しさん@お腹いっぱい。:2015/11/21(土) 11:26:31.22 ID:B04dZN/C0.net
- そのケースならメインで CREATEOLEOBJ する意味がないと思う
念のため thread test_thread(IEobj) で test_thread はメインとは別スレッドになるけれど
test_threadから wait を呼び出しでも wait は test_thread と同じスレッドだからね
同じ OLEOBJ を複数のスレッドで使いたい場合は
どちらかを GETACTIVEOLEOBJ にしたら良いと思う
- 108 :名無しさん@お腹いっぱい。:2015/11/21(土) 12:11:56.37 ID:kt2iHckZ0.net
- >>107
サンクス
メイン側で生成したオブジェクトをスレッドに渡しても(グローバル変数でも駄目だった)、動かないって事で
すかね。
メインでタブを二つ作ってそれぞれのオブジェクトをスレッドに渡して処理させようとしてたんだけど、タブは
作ったうえでスレッド側でオブジェクトを生成するようにしたら期待する動作になったようです。
- 109 :名無しさん@お腹いっぱい。:2015/11/21(土) 17:03:31.49 ID:+ESe50Z90.net
- UWSCでループを用いないキー入力待ちって作れる?
- 110 :名無しさん@お腹いっぱい。:2015/11/21(土) 17:25:25.61 ID:B04dZN/C0.net
- SETHOTKEYを使えば出来るよ
でも厳密にはこれは待たないからね
イベントドリブンなスクリプトになるイメージ
- 111 :名無しさん@お腹いっぱい。:2015/11/21(土) 18:07:35.61 ID:+ESe50Z90.net
- それってホットキーの入力を待つ時には結局ループ系必要にならない?
- 112 :名無しさん@お腹いっぱい。:2015/11/21(土) 18:24:22.67 ID:valwfeOZ0.net
- ならない
- 113 :名無しさん@お腹いっぱい。:2015/11/21(土) 18:34:12.81 ID:+ESe50Z90.net
- >>110,111
ありがとう
やってみるわ
- 114 :名無しさん@お腹いっぱい。:2015/11/21(土) 18:38:50.90 ID:B04dZN/C0.net
- ホットキーで割り込む隙もなくメイン処理が終わるなら当然終わるよ
キー入力の待機ループが不要なだけさ
- 115 :名無しさん@お腹いっぱい。:2015/11/21(土) 21:26:37.91 ID:+ESe50Z90.net
- >>114
sleep中でも無視して関数呼び出してくれるんだね
これでPCへの負荷が激減した
ありがとう
- 116 :名無しさん@お腹いっぱい。:2015/11/24(火) 17:32:21.47 ID:3BpSGfNj0.net
- test
- 117 :名無しさん@お腹いっぱい。:2015/11/24(火) 22:48:31.92 ID:JF3Q3VkF0.net
- UWSCのウィンドウを出しておいて
右クリックからランチメニューを辿って
スクリプトを実行しようとしたとき
メニューにある「タスクトレイに格納」で
左クリックしてるわけでもないのに
タスクトレイに格納されてしまうことがあるけど
これは仕様なの?
ゆっくりやれば問題ないけど
ササッとやりたいときに
タスクトレイに格納されてしまって萎える
Free版 ver5.2.0
- 118 :名無しさん@お腹いっぱい。:2015/11/24(火) 22:55:07.30 ID:qS8AAPnY0.net
- マウスが古くなっていてチャタリングが発生している可能性はゼロなの?
- 119 :名無しさん@お腹いっぱい。:2015/11/24(火) 23:07:09.04 ID:W5FAQXAx0.net
- 何言ってんだと思ってやってみたらなるほど
右クリックするとメニューが表示されるわけではなく、右ボタンを押下した時点(離す前)でメニューが表示される
そして丁度カーソルの位置にタスクトレイに格納がある。
そのため、メニューを開く時に右クリック(押して離す)をしてしまうと格納されてしまうことがある。
こういうことかな?
それなら右ボタン押してメニューを開いたら、押したままドラッグでランチメニュー→スクリプトの上で離すってやればいいんじゃね
- 120 :名無しさん@お腹いっぱい。:2015/11/24(火) 23:30:20.08 ID:s/LW23zM0.net
- HOTKEYじゃ駄目なの?
- 121 :名無しさん@お腹いっぱい。:2015/11/24(火) 23:32:44.91 ID:JF3Q3VkF0.net
- 右クリックメニュー上で右クリックしても
決定したことになるのか
それは知らなかった
- 122 :名無しさん@お腹いっぱい。:2015/11/24(火) 23:53:35.41 ID:qS8AAPnY0.net
- だからチャタリングが発生するマウスだとコンテキストメニューが誤爆しやすくなってしまうのよね
- 123 :名無しさん@お腹いっぱい。:2015/11/25(水) 11:13:45.29 ID:rJNaTAeQ0.net
- 今Windows8.1を使用しているのですが
外付けHDDが短時間で休止状態になってしまって困っています
UWSCで定期的にアクセスして休止に入らないようなスクリプトは
どうやったらかけるのでしょうか
- 124 :名無しさん@お腹いっぱい。:2015/11/25(水) 12:42:30.98 ID:txG9N8jK0.net
- がんばって調べれば書けるよ
つか、わざわざUWSCでやることでもないだろそれ
- 125 :名無しさん@お腹いっぱい。:2015/11/25(水) 15:20:51.71 ID:S/4vbjYn0.net
- USBかATAコントローラーのドライバ設定かサスペンドの設定だろUWSC関係ねえ
OSがスリープ命令出したらたとえUWSCで自動書き込みさせても電源落ちるぞ
- 126 :名無しさん@お腹いっぱい。:2015/11/25(水) 15:51:54.62 ID:Iap/Z3Jk0.net
- UWSCでやる意味は全くないけど、OSのスリープタイマーをリセットするコマンドがあったような
- 127 :名無しさん@お腹いっぱい。:2015/11/25(水) 17:12:36.18 ID:JO/DUQA90.net
- A、B、C画像いずれかがなければDをクリックし
A、B、Cのいずれかの画像があればループを終了する
と言う感じで組みたい
WHILE (CHKIMG("A.bmp")=FALSE)
WEND
このままではAの画像がでるまでループ
ループ途中にA画像B画像C画像を検索し
なければDをクリック。
頭爆発しそう
- 128 :名無しさん@お腹いっぱい。:2015/11/25(水) 17:19:07.03 ID:rT4L+apC0.net
- ここはお前の日記帳じゃない
- 129 :名無しさん@お腹いっぱい。:2015/11/25(水) 17:29:57.74 ID:y0cJp4zm0.net
- ABCいずれかがなければDで
ABCいずれかあれば終了
どっちも同じ?
A がなければ D だけど
AがなくてもBとCがあるから終了?
でもBとCがあってもAがないからD?
- 130 :名無しさん@お腹いっぱい。:2015/11/25(水) 17:37:42.03 ID:txG9N8jK0.net
- WHILE TRUE
IF Aあり BREAK
IF Bあり BREAK
IF Cあり BREAK
Dクリック
WEND
じゃいかんのか?
- 131 :名無しさん@お腹いっぱい。:2015/11/25(水) 19:31:02.42 ID:JO/DUQA90.net
- >>129
>>130
初歩的な勘違いやった。
申し訳ない
- 132 :名無しさん@お腹いっぱい。:2015/11/27(金) 03:04:57.99 ID:uYW4zJhI0.net
- 初歩的な質問で失礼します
以下のマクロでchkimgを連続実行すると、検索対象のウィンドウの一部が点滅?してしまいます
repeat
SLEEP(0.1)
until GETKEYSTATE(VK_LBUTTON)
PUBLIC id
id = GETID(GET_FROMPOINT_WIN)
MOUSEORG(id, MORG_DIRECT, MORG_BACK)
main()
procedure main()
i=1
repeat
chkimg("test.bmp")
until i=100
fend
chkimgの後にsleepを入れても点滅速度が遅くなるだけで、根本的な解決にはなりませんでした
また点滅箇所はソフト毎に異なるようです(chrome、メモ帳、エクスプローラなどで確認)
UWSCは最新版、OSはWin7 64bitです
デスクトップコンポジションを無効にする以外の解決法はないでしょうか?
- 133 :名無しさん@お腹いっぱい。:2015/11/27(金) 03:10:30.73 ID:6LeH5ZQ60.net
- どうでもいい指摘だけど i が加算されないからそれ延々ループしまくるよね
CPUパワーの可能な限り延々チェックし続けて、そりゃウインドウも点滅するさね
リソース不足じゃない?
- 134 :名無しさん@お腹いっぱい。:2015/11/27(金) 03:24:45.08 ID:uYW4zJhI0.net
- >>133
chkimgの後のi=i+1が抜けてましたね
ご指摘の通り非力なPCを使っているのですが、
タスクマネージャーで確認したところCPU使用率は50%を下回っているようでした
chkimgの後にsleep(1)を入れても点滅するのでパワーの問題じゃないと思ってたのですが…
- 135 :名無しさん@お腹いっぱい。:2015/11/27(金) 04:39:10.35 ID:gIPgqqH30.net
- クリックしたときにその下のウィンドウのID取得してるのにわざわざMORG_BACKを指定してる
理由がよくわからないけど試しにMORG_FOREにしてみたらどうなるかな?
- 136 :名無しさん@お腹いっぱい。:2015/11/27(金) 11:40:45.00 ID:qwTQlhP30.net
- peekcolor・chkimgは実行された瞬間にウィンドウ内にちらつきが走る。
実際にどうなってるのかは一瞬過ぎてわからないが、タイトルバーの明滅からして
ウィンドウがアクティブ→非アクティブ→アクティブというようになっている感じがする。
大量にchkimgすると結構チラチラとして不快に感じる。
- 137 :名無しさん@お腹いっぱい。:2015/11/27(金) 12:27:45.06 ID:AjRZAbKp0.net
- MORG_BACKでやってるとなるよね
バックグラウンドでやる必要ないならFOREでやれば点滅しないはずだけど
- 138 :名無しさん@お腹いっぱい。:2015/11/27(金) 12:32:28.19 ID:wntLhTd20.net
- MORG_BACKでなるなら相手に再描画をお願いするためっぽいね
仕方なかろう
- 139 :名無しさん@お腹いっぱい。:2015/11/27(金) 14:12:30.76 ID:FeZzskVz0.net
- >>134
2コアなら1コアがフルに使ってても50%超えないから
- 140 :名無しさん@お腹いっぱい。:2015/11/27(金) 14:23:32.71 ID:qwTQlhP30.net
- >>137,137
バックグラウンドで動作させてるわけではないんだが、IEだとちらつく。
他のアプリではあまり見ないのでIEだけが問題なのかもしれん。
あとposaccもちらつくな。
使ってる量的にはchkimgよりpeekcolorが、peekcolorよりposaccの方が多いから
原因はposaccかも。
- 141 :名無しさん@お腹いっぱい。:2015/11/27(金) 14:33:55.72 ID:AjRZAbKp0.net
- え、MORG_BACKにする=バックグラウンドだろ
だったらMORG_FOREにしとけよ
- 142 :名無しさん@お腹いっぱい。:2015/11/27(金) 19:20:14.27 ID:qwTQlhP30.net
- 俺と>>132は別人だよ。
最初からバックグラウンドにはしていない。
- 143 :名無しさん@お腹いっぱい。:2015/11/27(金) 21:21:48.29 ID:AjRZAbKp0.net
- おお、すまんな
IEだとFOREでもちらつくのか
- 144 :131:2015/11/27(金) 23:19:54.60 ID:uYW4zJhI0.net
- みなさんありがとうございます
バックグラウンドで動かしたかったんですがMORG_BACKだと仕方ないみたいですね
諦めてちらつきは我慢することにします
- 145 :名無しさん@お腹いっぱい。:2015/11/28(土) 18:17:20.79 ID:FR9Rv/l10.net
- VMwareのゲストOS上で主に、たまにホストOS上で動かすスクリプトがあるんですが
スクリプトからホストかゲストか否かを判定する方法ないですかね?
- 146 :名無しさん@お腹いっぱい。:2015/11/28(土) 20:22:07.03 ID:dldTCCO80.net
- >>145
c:\ほにゃ.txt とか置いといてそん中に Guest or Host って書いておく
起動時にそれを読んで判断じゃダメ?
- 147 :名無しさん@お腹いっぱい。:2015/11/28(土) 20:39:20.97 ID:wN8TzbSm0.net
- レジストリ読めばいいだけじゃん
UWSCじゃなくてバッチでもできることだしこのスレでは特に関係ない話題よね
- 148 :名無しさん@お腹いっぱい。:2015/11/28(土) 20:53:54.86 ID:FR9Rv/l10.net
- >>146
それ単純でいいですね。146さんもありがとうございます。
- 149 :名無しさん@お腹いっぱい。:2015/11/28(土) 21:25:51.53 ID:qtPTFMZU0.net
- >>146
もっと言えば、ほにゃがGuest or Hostで、そのファイルがあるかないかだけで、中まで見なくていいよね
- 150 :名無しさん@お腹いっぱい。:2015/11/28(土) 21:43:33.70 ID:oqtIKp380.net
- GET_APPDATA_DIRでユーザーネームあたりを確認してもいいよね
同じじゃなければだけど
- 151 :名無しさん@お腹いっぱい。:2015/11/28(土) 23:05:00.83 ID:wN8TzbSm0.net
- だからレジストリ見れば一発だろうが
DosCmd("wmic csproduct") の戻り値を参照しろ
VMware Virtual Platform ってのが入るから
- 152 :名無しさん@お腹いっぱい。:2015/11/28(土) 23:25:03.94 ID:FR9Rv/l10.net
- 別に無視してるわけではないですが、ファイル作って判別する方が
仮想か否かだけでなくどのPC/OSかという判別が容易なのでこっち採用です
- 153 :名無しさん@お腹いっぱい。:2015/11/29(日) 00:47:57.33 ID:JUXVZ/4C0.net
- iniファイルで良いような…
- 154 :名無しさん@お腹いっぱい。:2015/11/29(日) 16:45:06.45 ID:D3s05B910.net
- chromeでバックグラウンド動作させたいんですけど
mouseorgでmorg_direct指定してるのにbtnでクリックするとアクティブになってしまいます
何所がいけないんでしょうか?
id = GetId("google chrome")
id = GetCtlHnd(id, "chrome_RenderWidgetHostHWND")
MouseOrg(id, morg_direct, morg_back)
hoge=0
WHILE hoge<20
hoge=hoge+1
btn(left, click, 100, 100)
sleep(0.2)
wend
- 155 :名無しさん@お腹いっぱい。:2015/11/29(日) 22:40:44.71 ID:PLkzB9890.net
- callってどういう時に使えばいいんだろう
少しずつ部品となるプログラムを作って、それを大元のプログラムで呼び出すような作り方をしてるんだけど、
uwscファイルがどんどん増えていって、どんどんわかりにくくなる
・何度も、何行も書かなきゃならない処理を一行で書ける
・変更する場合も呼び出し先のファイルを変更するだけでいい
こういうのが利点なのかな?
- 156 :名無しさん@お腹いっぱい。:2015/11/29(日) 22:51:34.18 ID:Eprjqt/E0.net
- >少しずつ部品となるプログラムを作って、それを大元のプログラムで呼び出すような作り方をしてるんだけど
>uwscファイルがどんどん増えていって、どんどんわかりにくくなる
1処理に1ファイル作ってんの?
関数にして1ファイルにまとめて、callで呼び出すのは最初に1回だけやるんだよ
- 157 :名無しさん@お腹いっぱい。:2015/11/29(日) 23:10:30.89 ID:PLkzB9890.net
- やっぱり自作関数をつくるべきなのか
引数とか処理の流れとかがよくわからんままだったから敬遠してた
- 158 :名無しさん@お腹いっぱい。:2015/11/29(日) 23:16:48.50 ID:Eprjqt/E0.net
- 今だとまんまファイル=処理になってるんだろ?
それぞれ頭にprocedure 処理名、尻にfendつけて1ファイルにまとめるだけや
んでcallしてるところでcallやなしに処理名を書くだけのことや
- 159 :名無しさん@お腹いっぱい。:2015/11/29(日) 23:26:27.99 ID:PLkzB9890.net
- それだけでいいのか
やたら引数とか書いてあるから後回しにしてた
- 160 :名無しさん@お腹いっぱい。:2015/11/30(月) 04:20:23.49 ID:FBOUUxt90.net
- >>81
Androidエミュレータの事なら Win10Pro 64bit だとUWSCを管理者権限で起動したら反応する
逆に管理者権限で立ち上げないと書いてある通り反応しない
- 161 :名無しさん@お腹いっぱい。:2015/11/30(月) 04:40:32.11 ID:FBOUUxt90.net
- >>155
例えばアプリ上でフリック動作を再現したい場合以下ようなコードになるけど100,100をフリックしたいときもあれば200,200をフリックしたい場合もあるから
フリック動作させる度にイチイチ以下のコードを書かないといけない
x=100
Y=100
BTN(Left,DOWN,x,y,125)
FOR i = 0 To 10
tx = x-i*50
ty = y
MMV(tx,ty,10)
NEXT
BTN(Left,UP,tx,ty,10)
- 162 :名無しさん@お腹いっぱい。:2015/11/30(月) 04:43:07.50 ID:FBOUUxt90.net
- >>155
一方関数化して以下のコードを書いたファイルを事前にCALLしておけば
必要な時に必要な値を指定して FlickToLeft(200,200)と一行書いてやるだけで同じ処理が実現できる
PROCEDURE FlickToLeft(x,y)
DIM i =0
DIM tx = 0
DIM ty = 0
BTN(Left,DOWN,x,y,125)
FOR i = 0 To 10
tx = x-i*50
ty = y
MMV(tx,ty,10)
NEXT
BTN(Left,UP,tx,ty,10)
FEND
同じような処理を関数化しておくと可読性と保守性が上がるのが利点かな
- 163 :名無しさん@お腹いっぱい。:2015/12/01(火) 05:54:19.63 ID:CNS9MKt70.net
- ふと思いついて6通りの乱数x2つでの特定の組み合わせが出る確率を求めたんですけど
UWSCの乱数(random(n))に偏りがある?CALCARRAYのCALC_AVRがおかしい?のか
想定していた数値になりませんでした・・・。精査して原因を教えていただけるととても助かります
ttp://pastebin.com/Y1RvsTBN
numcomが乱数を発生させた回数、avgnumは1を回数で割り、パーセンテージでの確率を収納してます
1/36、1/21、1/18が想定の答えなんだけど10%ちょいになっちゃうんです。
たぶん↑の求め方が悪いんだと思うんですけど、なんでなのかわかりません・・・
他に良い確率の求め方・確かめ方があればご教示お願いします
- 164 :名無しさん@お腹いっぱい。:2015/12/01(火) 08:00:28.88 ID:rjvF5ULZ0.net
- 明確に擬似乱数なのを精査する必要性がちょっとわからない
ガチな計算したかったら乱数生成もガチなのを使えば良いと思うな
- 165 :名無しさん@お腹いっぱい。:2015/12/01(火) 08:33:28.18 ID:YKDdYdY80.net
- 計算がおかしい。
「平均値の平均値」みたいなものを求めているから、平均ではなくなっている。
まず基本に戻ってこうに考えろ。
dim bairitu[] = 2,3,4,6,10,20
dim maisu[] = 50,80,100,150,200,500
numcon = 1
n=0
dim num[10000]
repeat
bai = bairitu[random(6)]
mai = maisu[random(6)]
ifb bai = 20 and mai = 500
num[n] = 1
else
num[n] = 0
endif
n = n + 1
until n = 10000
msgbox( "10000回の平均は"+CALCARRAY(num,CALC_AVR)*100+"%でした")
- 166 :名無しさん@お腹いっぱい。:2015/12/01(火) 12:47:54.59 ID:CNS9MKt70.net
- おぉ素晴らしいです、シンプルでわかりやすく動作も軽い!
考え方やCALC_AVRの理解を誤っていたのがようやくわかりました。
ありがとうございます、精進いたします
- 167 :名無しさん@お腹いっぱい。:2015/12/01(火) 13:21:03.45 ID:+tH8B3qd0.net
- >>161-162
遅くなったけどありがとう
勉強になった
おかげで引数とかも理解できるようになったよ
最近は関数の名付けに悩むようになった
- 168 :名無しさん@お腹いっぱい。:2015/12/01(火) 15:00:00.63 ID:zTQCTmEm0.net
- プログラミングのエントリーにはもってこいだなUWSCは。
- 169 :名無しさん@お腹いっぱい。:2015/12/01(火) 15:56:09.32 ID:bENjVUYj0.net
- 基本書レベルの資料が揃ってなさすぎる
さすがに最初はCやったほうがいいと思うぞ
ポインタ云々はいらんけど
- 170 :名無しさん@お腹いっぱい。:2015/12/02(水) 00:17:57.94 ID:bCg1Fbqs0.net
- バックグラウンドでの画面内の認識はしてくれるようになったのですが、ブックマークバーの部分から上の部分が認識してくれなくて悩んでいます。
下の内容のようにMOUSEORGの中を途中からChrome_Render…からChrome_WidgetWin_1へ変えればブックマーク部分も認識してくれるかと思ったのですがだめでした。どなたかブックマークバーの部分も認識出来る用にするためにどのようにすればいいか教えて頂けないでしょうか?
http://i.imgur.com/ceddGuC.jpg
GID = GETCTLHND(GETID("Google Chrome","Chrome_WidgetWin_1"), "Chrome_RenderWidgetHostHWND")
MOUSEORG(GID,2,1)
ID = GETID("Google Chrome")
While true
If GetKeyState(Vk_Esc) Then Break
ifb CHKIMG("イベント.bmp",0) // 画面上に画像があった場合以下へ
MOUSEORG(GETCTLHND(ID,"Chrome_WidgetWin_1"),2,1)
BTN(LEFT, CLICK, G_IMG_X+6+random(5), G_IMG_Y+6+random(5))
MOUSEORG(GID,2,1)
sleep(1.5)
endif
wend
- 171 :名無しさん@お腹いっぱい。:2015/12/02(水) 10:01:53.78 ID:O01c30+40.net
- procedure ie_wait( ie )
repeat
sleep( 0.1 )
until ( ! ie.busy ) and ( ie.readystate = 4 )
sleep( 0.2 )
fend
IEでページの読み込みが終わっているように見えるのに処理が止まってしまうことがたまにあります。
手動で再読み込みすると動き出します。対処法を教えてください。フリー版です。
- 172 :名無しさん@お腹いっぱい。:2015/12/02(水) 11:52:47.22 ID:RVv1vxR+0.net
- x秒でタイムアウト、みたいな処理足したら
- 173 :名無しさん@お腹いっぱい。:2015/12/02(水) 12:03:24.62 ID:ZQB1PLza0.net
- 相手の鯖が遅延ロードしていたり自分のPCのキャッシュにヒットした時とか
ie.busy と ie.readystate はあんまりアテにならない
タイムアウトや移動先のページで必要なエレメントが存在するか確認してループを抜けるのも有りかもね
- 174 :名無しさん@お腹いっぱい。:2015/12/02(水) 13:19:20.31 ID:gtGvaZd80.net
- IEはDOM操作するのが確実
- 175 :名無しさん@お腹いっぱい。:2015/12/02(水) 16:15:25.22 ID:p1ZciKF40.net
- 配列がややこしいな
dim hairetu[2]
↑これは配列の容量、個数の宣言で
hairetu[0] = 10
hairetu[1] = 20
↑これが番号の場所に格納するということなんだろ?
[]の中に数字いれるという書き方が同じだから、
ここでずっと訳わからなくなってた
それで[][]とかいう書き方もあるとか
あと、ここに書いてある
http://canal22.org/kansu/procedure/
DIM PSARRAY[2]
PSARRAY[0] = "This is a cat."
PSARRAY[1] = "That was a desk."
DIMって値の宣言だろ
""でくくれば文字列でもいいのかよ
ややこし
- 176 :名無しさん@お腹いっぱい。:2015/12/02(水) 16:32:53.86 ID:dxnbalsf0.net
- 厳密にはDIM 配列[]って入れ物の場所が書いてあるアドレスを宣言してるだけ
もっとも a = 1 と A = "1" がまったく同じように扱われるUWSCではそんなこと気にするべくもない
自分は配列宣言するときは[0]で使うたびにリサイズしながら入れてるよ
Arry[ReSize(Arry, ReSize(Arry) + 1)] = "1つめ"
Arry[ReSize(Arry, ReSize(Arry) + 1)] = "2つめ"
Arry[ReSize(Arry, ReSize(Arry) + 1)] = "3つめ"
- 177 :名無しさん@お腹いっぱい。:2015/12/02(水) 16:58:13.30 ID:b4w8PdZC0.net
- 数値変数でも文字列入れれば文字列変数に自動で切り替わるってだけだよね
- 178 :名無しさん@お腹いっぱい。:2015/12/02(水) 17:05:43.75 ID:p1ZciKF40.net
- その切り替わるというのは、連想配列と同じになるの?
連想配列が文字列入れることが出来る配列って認識があった
- 179 :名無しさん@お腹いっぱい。:2015/12/02(水) 17:11:34.70 ID:b4w8PdZC0.net
- それはまったく認識が間違ってる。配列は番号付の変数ってだけだよ。
連想配列は添字に文字列が使える配列。
- 180 :名無しさん@お腹いっぱい。:2015/12/02(水) 17:49:37.27 ID:p1ZciKF40.net
- ああ、[]の中に文字が使えるのが連想配列なのか
理解できた
- 181 :名無しさん@お腹いっぱい。:2015/12/03(木) 13:48:27.43 ID:YuHgaOly0.net
- Windows10クリーンインストールしたらIEの操作でエラー出るようになったな
普段非表示だけど確認したいことがあるからIE.Visibleで表示した時とか一時停止して再開しようとした時とかたまに操作を受け付けなくなる
ページを再読込させる処理を入れればまた動き出すけど、数十秒後にUNTIL (! IE.Busy) AND (IE.readyState=4)でエラーが出てるかUWSC自体がフリーズするわ
- 182 :名無しさん@お腹いっぱい。:2015/12/03(木) 14:12:03.56 ID:lFKpQNYb0.net
- >>170
HandleとUWSCのIDは別物
GETCTLHNDで取得できるのはHandleなのでそのままではMOUSEORGのIDに使用することはできない
解決策はHNDTOID関数を使う
GID = HNDTOID(GETCTLHND(....))
これで目的とするコントロールのIDが正しく取れるはずWhile文内のMOUSEORGもおなじ
GETIDで対象のコントロールのIDを取得した後
SAVEIMG(,ID,0,0,,,TRUE)を実行するとクリップボードに対象コントロールのSSが保存されるんで
慣れないうちはペイントに貼り付けるなりして一回一回確認しながらやるといいですよ
- 183 :名無しさん@お腹いっぱい。:2015/12/03(木) 14:27:46.45 ID:lFKpQNYb0.net
- >>170
あ、もちろんGETIDだけじゃなくHNDTOIDで取得したIDからでもSAVEIMGでSS取得できます
- 184 :名無しさん@お腹いっぱい。:2015/12/03(木) 14:34:08.18 ID:KqIB++7Q0.net
- >>182
> GETCTLHNDで取得できるのはHandleなのでそのままではMOUSEORGのIDに使用することはできない
同じようなレスをしようと思ったがヘルプ読み返して止めたのに…
>> MORG_DIRECT (2): 指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送る(第1引数はウィンドウIDでもハンドル値でも可)
- 185 :名無しさん@お腹いっぱい。:2015/12/03(木) 15:57:58.29 ID:lFKpQNYb0.net
- >>184
マジで?って思ってコード書いたらマジでした…orz
>>170
そんで反省してMOUSEORGのヘルプよく読み直したら
MORG_FOREの値は0と明記されてるけどMORG_BACKの値は明記されてなかったので
試しに print MORG_BACKで値確認したら 1ではなく2になってたので
MOUSEORG(ID,2,1)じゃなくてMOUSEORG(ID,2,2)にしたらバックグラウンドでも動作しました
やっぱ面倒でもヘルプ熟読するのと用意された定数はちゃんと使わないとだめね
- 186 :名無しさん@お腹いっぱい。:2015/12/03(木) 16:10:37.72 ID:lFKpQNYb0.net
- http://www.dotup.org/uploda/www.dotup.org636372.zip.html
せっかく書いたんで一応チョロメのブクマのアプリって項目をバックグラウンドで押下させるサンプルも上げときます
UWSC5.2のPro版レジスト済みとさっき入れたばかりのチョロメで動作確認
- 187 :名無しさん@お腹いっぱい。:2015/12/03(木) 17:17:45.94 ID:0WPfFphN0.net
- >>186 のやつフリーで使ってみたけど
真っ黒でバックグラウンドの認識が不可っぽいんだけど
フリーとプロじゃその辺やっぱ違うのかな?
元々の質問者とは別人です
- 188 :名無しさん@お腹いっぱい。:2015/12/03(木) 18:06:34.86 ID:lFKpQNYb0.net
- >>187
最新の5.20フリー版で動きました OSはWin10Pro
とりあえず思いつくのは アプリ.bmp を自分で用意してみる うちのは最新版をインストールしただけで一切いじってないので比較画像と差異があるのかも
http://i.imgur.com/1vdOKb0.jpg (こんな感じ)
UWSCを管理者権限で起動してみる位?
あとバックグラウンドで画像認識できるのはあくまで他のWindowが上に重なってるときだけで最小化時は普通に失敗するようです
- 189 :名無しさん@お腹いっぱい。:2015/12/03(木) 21:32:54.38 ID:KqIB++7Q0.net
- 操作側のWebページがエラー出した時にスクリプト全体を再起動させたいんですが
チェックのスクリプトをインターバルでスケジュール起動させればいいとは
思いついたんですけど、UWSCの再生・停止ボタンを押すのって
GUIの無いUWSCスクリプトからだとどうやったらいいんでしょうか。
- 190 :名無しさん@お腹いっぱい。:2015/12/03(木) 21:59:07.61 ID:KqIB++7Q0.net
- 適当にやってたら押せたので質問は無しで
- 191 :名無しさん@お腹いっぱい。:2015/12/04(金) 00:46:03.86 ID:90ljDn+M0.net
- >>185
ご指摘ありがとうこざいます。ご指摘通りにやりましたが、やはりブックマークの部分は認識してくれませんでした。また、MOUSEORG(GID,2,1)から、MOUSEORG(GID,2,2)に変更するとブックマークより下の部分も動かなくなってしまいました。
savings("test.bmp",GID,0,0,500,500,0,0,0)
savings("test.bmp",GID,0,0,500,500,0,0,1)
で試しに画像をとってみましたが、両方ともきちんと写っていました。
- 192 :名無しさん@お腹いっぱい。:2015/12/04(金) 00:50:32.45 ID:90ljDn+M0.net
- また、認識しないならURLで飛べばいいと思い
SCKEY(id,VK_F6)
SENDSTR(id,"ここにURL",1,True,True)
SCKEY(id,VK_RETURN)
と無理やりいれましたが、一応動くのですがURL入力する時にとても重くなります…
- 193 :名無しさん@お腹いっぱい。:2015/12/04(金) 01:04:13.19 ID:90ljDn+M0.net
- また、あげて頂いたサンプルを起動したところ>>187の方と同じようにペイントに貼り付けた物が真っ暗な画面で、動いてくれませんでした。(アプリ.bmpは自分で置き換え、uwscは最新版でした)
しかし、MORG_BACKの部分を1に変更したところ、ペイントに貼り付けた画像は真っ暗なままでしたが、動いてくれました。
- 194 :名無しさん@お腹いっぱい。:2015/12/04(金) 01:09:15.47 ID:90ljDn+M0.net
- あ、すいません。MORG_BACKの部分を1に変えた上記のサンプルを参考に組み直したらちゃんと動いてくれるようになりました!ありがとうございましたm(__)m
- 195 :名無しさん@お腹いっぱい。:2015/12/04(金) 11:31:23.07 ID:/T7tx51V0.net
- Bluestacksでゲームアプリのガチャ自動化マクロを作っています
ガチャを回すボタンを24bitBMPで保存して、動作テストをすると成功しました(ファイルA)
そのファイルAにループ関数を付け加えてファイルA’を作成し動作させると、画像認識ができなくなったので
再度ファイルAの動作テストを行いましたが完全にその画像では認識ができなくなりました
さっきから3回ぐらい画像を撮り直しては動作テストを行っているのですが、成功してもUWSを弄ると画像認識ができなくなってしまいます
成功したりしなかったり、というのはよく起こることなのでしょうか?
- 196 :名無しさん@お腹いっぱい。:2015/12/04(金) 14:34:44.57 ID:n18V7ZGY0.net
- あるかないかと聞かれるとある
- 197 :名無しさん@お腹いっぱい。:2015/12/04(金) 14:59:07.40 ID:sFDKmSRE0.net
- いじるとできなくなるっていうんだから原因ははっきりしてるよね。
- 198 :名無しさん@お腹いっぱい。:2015/12/04(金) 16:52:58.00 ID:ybxgbSDU0.net
- 画像が変わってるんだろ
- 199 :名無しさん@お腹いっぱい。:2015/12/04(金) 17:04:25.75 ID:hlWIkbdr0.net
- jpgとpngで同じように見えて微妙に違うように
読み込みごとに微妙に画像変わってるってパターンわりとよくある話
- 200 :名無しさん@お腹いっぱい。:2015/12/04(金) 19:27:22.45 ID:2HUK37Ko0.net
- レイヤーかぶせてあったりパーティクル飛んでたりね。
- 201 :名無しさん@お腹いっぱい。:2015/12/05(土) 03:45:42.40 ID:cQkZ7BqH0.net
- Chromeで特定のURLに飛ぶようにしたのですが、入れるURLが長いせいか、打ち込んでから飛ぶまでにかなり動作が重くなってしまいます。
重くならずに特定のURLに飛ぶ方法はあるのでしょうか?
id = GETID("Google Chrome","Chrome_WidgetWin_1")
MOUSEORG(id,MORG_DIRECT,1)
SCKEY(id,VK_ALT,VK_D)
SENDSTR(id,"ここにURL",1,True,True)
SCKEY(id,VK_RETURN)
- 202 :名無しさん@お腹いっぱい。:2015/12/05(土) 10:48:54.93 ID:qGfYiu4T0.net
- >>195
撮った画像に対して撮り直した画像で画像認証してみて
それでダメなら画像を変えてるので画像認証は難しい
- 203 :名無しさん@お腹いっぱい。:2015/12/06(日) 15:25:32.94 ID:lIZtAvI+0.net
- >>201ですが自己解決しました
- 204 :名無しさん@お腹いっぱい。:2015/12/06(日) 16:23:21.01 ID:7fPRX80/0.net
- SELECTボックスの文字の大きさって変えられないですかね?
高解像度化の著しい昨今、微妙に文字が小さくて読みにくい
- 205 :名無しさん@お腹いっぱい。:2015/12/06(日) 16:26:04.76 ID:7fPRX80/0.net
- SELECTBOXの文字の大きさって変えられないですか?
- 206 :名無しさん@お腹いっぱい。:2015/12/06(日) 16:30:47.46 ID:7fPRX80/0.net
- test
- 207 :名無しさん@お腹いっぱい。:2015/12/07(月) 20:37:41.32 ID:lkFOyJ4n0.net
- >>205
OPTION DEFAULTFONTで変えられる
すべて一括で変わってしまうけど
Pro使いならCREATEFORMで全部自分で自由に指定できるけど
- 208 :名無しさん@お腹いっぱい。:2015/12/07(月) 22:36:43.24 ID:oGiSo+KF0.net
- クリック位置を指定せずに(現在のカーソル位置にしたい)
実行までの待ち時間だけを指定するにはどうすればいいんでしょうか?
いくつか試しましたがいずれもダメでした
BTN(LEFT,CLICK,x,y,500) エラー
BTN(LEFT,CLICK,,,500) エラー
BTN(LEFT,CLICK,500) 500がカーソル位置として扱われてしまう
- 209 :名無しさん@お腹いっぱい。:2015/12/07(月) 23:03:29.60 ID:EYXsjzmpf
- BTN(LEFT,CLICK,G_MOUSE_X,G_MOUSE_Y,500)
- 210 :名無しさん@お腹いっぱい。:2015/12/07(月) 23:05:51.63 ID:0rcqNGw90.net
- sleep(0.5)
BTN(LEFT,CLICK)
は違うのかな?
- 211 :名無しさん@お腹いっぱい。:2015/12/07(月) 23:13:17.78 ID:cMraAyPW0.net
- G_MOUSE_X使うとか
- 212 :名無しさん@お腹いっぱい。:2015/12/08(火) 00:52:00.67 ID:Bp2FB+GN0.net
- キシュツでしたらすみません。
スケジュール設定で、スリープ状態から復帰してスクリプトの実行を考えています。
Windowsの電源管理の設定で「ロック解除する時にパスワードの入力」の設定をしているのですが、
「スクリプトは実行されるが、パスワード入力画面が表示が出たままで意図した画面が表示されず、CHKIMGで画像判別できない。」
状況になり困っています。
ロック解除時のパスワードを設定しない以外の回避策はありますでしょうか。
パスワードを設定しないと、俺の「家族に見られたら困る」フォルダーが火を噴きそうです...
- 213 :名無しさん@お腹いっぱい。:2015/12/08(火) 00:58:50.00 ID:t70A2e+R0.net
- >>212
フォルダにパスワードかけとけ
- 214 :名無しさん@お腹いっぱい。:2015/12/08(火) 01:27:05.64 ID:w99sCTo10.net
- >>212
USBメモリ買うなり、別PCを買うなり、物理的に別個にしなきゃ不安だわ。
VeraCryptとか使えばどう?
- 215 :名無しさん@お腹いっぱい。:2015/12/08(火) 09:19:58.59 ID:0rN+5VX00.net
- >>212
つまりそのスケジュールが実行されるときだけパスワード入力を回避したいってこと?
それは無理だ
- 216 :名無しさん@お腹いっぱい。:2015/12/08(火) 11:56:57.30 ID:Q8/a49a30.net
- フォルダにパス掛けとくとか、アカウント使いわけるとかせんと。
- 217 :210:2015/12/08(火) 14:02:44.60 ID:Bp2FB+GN0.net
- レスくれた方、ありがとうございました。
その後調べたところ、電源オプションはpowercfgコマンドでコマンドラインで変更できることを知りました。
そこで、下記を目論んだのですが上手くいきませんでした。
・スクリプト(1)
doscmd("powercfg …")で、ロック解除時のパスワードを不要にした後、スリープする
・スクリプト(2)
本来実行したいスクリプトで、最後にロック解除時のパスワードを必要に変更する
スクリプト(1) -> (2)の順にスケジュール設定して実行する。
試したところ、、スクリプト(1)で電源オプション設定を変更しても、スクリプト(2)の実行時、やはりパスワード入力画面が出てきてしまいます。
※ここでパスワードを入力した後、手動でスリープ->スリープ解除の操作をすると、スクリプト(1)が設定を変更しているので、パスワード入力画面は出てきません。
スクリプト(1)の最後にリブートすれば対処はできそうですが、フォルダーにパスワードを掛ける方向で検討します。
ありがとうございました。
- 218 :名無しさん@お腹いっぱい。:2015/12/08(火) 14:33:43.03 ID:nFTuQmFE0.net
- そこまでして自動化操作したいことって何?
まずはそこからだよね
VMWareで起動させておいてスタンバイ→本体スリープ復帰→VM復帰起動→VM内でスクリプト流す(本体はロックのまま)
これ以上にすっきり安全にやる方法ないと思うよ
- 219 :名無しさん@お腹いっぱい。:2015/12/08(火) 14:59:58.05 ID:OBYBo33X0.net
- 家族に見られる環境で家族に見られたくないのにパスを不要にしてスリープだとか
スクリプト実行中に家族に弄られて見られる可能性は無視とか何がしたいのか分からなすぎる
- 220 :名無しさん@お腹いっぱい。:2015/12/08(火) 15:05:40.97 ID:Q8/a49a30.net
- そういえばロック画面の裏でスクリプトって動かんのかね?
- 221 :名無しさん@お腹いっぱい。:2015/12/08(火) 15:07:57.58 ID:HUcsHTi50.net
- 当人が納得しているならそれで良いじゃない
- 222 :名無しさん@お腹いっぱい。:2015/12/08(火) 15:10:36.50 ID:HUcsHTi50.net
- >>220
キーボードやマウスに画面が繋がっていない前提のスクリプトなら動く筈
勿論、ロック画面自体にはアクセス出来ない
- 223 :名無しさん@お腹いっぱい。:2015/12/09(水) 13:54:39.11 ID:KgeowQok0.net
- >>210-211
ありがとうございます。
sleepにしました。
座標を指定しないと待ち時間も指定できないというのも
いまいち納得出来ない仕様ですが・・・
- 224 :名無しさん@お腹いっぱい。:2015/12/09(水) 14:16:19.27 ID:yc0hiHKU0.net
- そういう仕様なのか不具合なのか微妙なのは公式掲示板で聞いてみたらいいんじゃない?
- 225 :名無しさん@お腹いっぱい。:2015/12/09(水) 15:07:38.82 ID:IATR22hr0.net
- 組み込み関数だけじゃなくユーザー定義関数の全パラメータに規定値設定した場合でも
途中のパラ省略して後方のパラだけ指定するとSyntaxError出るから仕様っぽいね
G_MOUSE_変数使ってもWait後のクリック発生時じゃなくBTN呼び出し時の座標になっちゃうみたいだから
マウスカーソルに追随させて自動クリックさせたいなら>>210の処理をラップして呼び出すのが一番安全かな
- 226 :名無しさん@お腹いっぱい。:2015/12/09(水) 16:13:30.40 ID:08E8vcMN0.net
- 途中をデフォルト(省略)したい時はEMPTYと記述しろ
- 227 :名無しさん@お腹いっぱい。:2015/12/09(水) 18:25:17.33 ID:IATR22hr0.net
- BTN(LEFT,CLICK,EMPTY,EMPTY,2000)
普通にエラー吐き出して終わりだった
- 228 :名無しさん@お腹いっぱい。:2015/12/09(水) 18:58:01.47 ID:OKWIL6420.net
- SAVEIMGは途中のパラメータ省略しても動くのに変な感じだ
SAVEIMG("AAA.bmp", GETID("XXX"), , , , , , 0, 0)
- 229 :名無しさん@お腹いっぱい。:2015/12/11(金) 11:18:54.45 ID:7dd/e87e0.net
- ×ret = BETWEENSTR("ddddd",,,,FALSE)
○ret = BETWEENSTR("ddddd",,,-1,FALSE)
何個か調査してみた結果同じ関数内の省略可能引数でも途中空値を設定できる引数とできない引数があるっぽいね
なぜかは判らないけど
- 230 :名無しさん@お腹いっぱい。:2015/12/11(金) 13:17:37.95 ID:bmQj6ZbY0.net
- BETWEENSTR()はその-1を指定してる引数はデフォ値がHelpに書いてないから省略出来ないかもって思えるかな
ただBTN()は、「省略時は〜」って書いてあるのに省略出来ないから「あれ?」って思う
- 231 :名無しさん@お腹いっぱい。:2015/12/12(土) 01:28:24.49 ID:WJj0stN+0.net
- UWSCのスケジュール機能で一時間毎にスクリプトを実行しています。
普段は10分位で終了する内容なのですが、予期しない動作をした時に1時間経っても終了せず、次のスクリプトと実行が被ってしまい、抜け出せなくなります。
一時間後の実行がうまく行けば、前回のスクリプトは中断しても構いません。
UWSCやWindowsの機能で、実行が重ならないように実現できないでしょうか?
- 232 :名無しさん@お腹いっぱい。:2015/12/12(土) 03:03:48.97 ID:RKFSqFC20.net
- >>231
データの整合性とか気にならない処理内容なら
スクリプト内で経過時間を監視するスレッドを走らせたらどうでしょうか
- 233 :名無しさん@お腹いっぱい。:2015/12/12(土) 12:31:57.21 ID:WJj0stN+0.net
- >>232
以下の関数を、予期しない動作が発生した時に走る関数中に実行すると実現できそうです。
Procedure hogehoge
gettime()
Ifb G_TIME_NN > 50
exitexit
Endif
Fend
難しく考えすぎていたようです。ありがとうございました。
- 234 :名無しさん@お腹いっぱい。:2015/12/12(土) 18:14:26.36 ID:ACvSeZV80.net
- 似たような事かもしれないけど、予期しない動作が発生した時に自分自身を
再起動させたいのだけど。
EXEC等使って別プロセスで予期しない動作判定+再起動専用のスクリプト走らせるしかないかな?
UIの無いスクリプトは暴走が怖い…
- 235 :名無しさん@お腹いっぱい。:2015/12/12(土) 18:30:53.62 ID:RKFSqFC20.net
- >>234
本体のスクリプトはどんな処理してるの?
- 236 :名無しさん@お腹いっぱい。:2015/12/13(日) 23:14:50.95 ID:aAFsszQK0.net
- 予期しないって…範囲が巨大すぎて。。。
予期しないことが判定できるなら、予期できそうだし…
- 237 :名無しさん@お腹いっぱい。:2015/12/13(日) 23:40:38.95 ID:9KF/JySF0.net
- 予期しない事象でエラー発生するならTRY EXCEPT文で拾ってスクリプト最初から回す
エラーじゃなくスクリプト自体が事象判定できるならTRY FINALY文でケースごとにコード書く
単体で完結させたいならこのくらいかなぁ
- 238 :名無しさん@お腹いっぱい。:2015/12/14(月) 00:37:35.63 ID:OWYR4MFV0.net
- 操作対象アプリが応答なしではないけど応答無くなる時があって、これが予期しない動作。
画面の推移を監視して、長時間動かなくなったらスクリプト毎再起動させようと。
- 239 :名無しさん@お腹いっぱい。:2015/12/14(月) 00:49:16.17 ID:fnMg27o30.net
- 呼び出し用スクリプトからメイン処理スクリプトをcallで呼び出して
そのcall内でexitすればcallから抜け出して呼び出し用スクリプトに移動するから
元に戻る・・・ってことはだめ?
- 240 :名無しさん@お腹いっぱい。:2015/12/14(月) 01:10:21.65 ID:yI4ZqmAH0.net
- 対象タスクをKillして一から処理を立て直したいなら別途監視スレッド立ち上げておいて必要な時に処理させるなり好みでいいと思うけど
例えばボタン押下した後想定される時間内に想定される画面に移行しないケースが発生してスクリプトが失敗するっていうならコードの書き方の問題だと思う
UWSCでのコーディングは組み込み系に近いからZIPCライクな状態遷移設計をコードに落とす書き方が向いてると思うんだけどこればっかりはさくっと説明できるもんでもないからなぁ
- 241 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 10:24:44.14 ID:OWYR4MFV0.net
- 本質的にはエラー対策が未熟なままスクリプトを書き続けて
後から対策しようとしたってのが問題なんだけど、メインスクリプトが非常に長くて
関数から関数を呼び出し更にまた別の関数を…って感じなので全ての関数に不具合対策すると
収拾がつかない。exitでは一つの関数を抜けるだけに終わってしまうという状況。
一発でメインルーチンの最初に戻れればいいんだけど。
一々細々対策しなくても、最初からやり直せば何とかなるのでそれで対処しようかな…と
- 242 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 11:42:30.40 ID:kZpbsuTx0.net
- //<input id="retainLogin_flg" class="fmtxt" type="checkbox" checked="" value="1" name="retainLogin_flg">
IESETDATA( IE, 1,"retainLogin_flg","1")
これでログインできません。どこが間違ってますか?
- 243 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 15:23:59.00 ID:OdJxQFG70.net
- MOUSEORG関数を使ってバックグラウンドのChromeウインドウでBTN,KBD,CHKIMGを使用したいのですが、CHKIMG以外動作しません…
別にテスト用のコードを組んだところ、BTN,KBD,MMVの3つはChromeのウインドウIDを使用した時のみ一切動作しませんでした。
Chromeをこのような関数で操作するにはどうしたらいいでしょうか?
また、CHKIMGで画像読み込みをしただけでChromeが前面に出てきてしまうのですが、これを防ぐにはどのようにすればいいのでしょうか?
どなたかよろしくお願いします。
- 244 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 16:27:54.18 ID:qKre7MPE0.net
- タブのIDが必要
でも根本的にChromeは自分が隠れていると意図的に画面更新をサボるから裏動作に向かないと思う
素直にIE使ったほうが楽よ
もしくは仮想PCでChromeを最前面で動作させてるいうFAQ的対応
仮想化対策されているコンテンツなら素直にリアル別端末用意しなはれ
- 245 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 16:58:39.67 ID:OWYR4MFV0.net
- その仮想PCでさっきドツボに嵌まった…
件のスクリプトはVMwareのゲストOS上で走らせてるんだけど、テストの為に
ホストで動かしてたらバグを作りこんでてアプリのウィンドウが最少化してしまって
その背面にあったVMwareのウィンドウをクリック!
そこからさあ大変。ホストのスクリプトを停止させようとしてもVMwareがアクティブの内は
キー入力を全部取られてホストに入力が反映しない。
VMwareを非アクティブにしてホストにキー入力しようにも、
操作中にスクリプトが再度VMwareのウィンドウをクリックして最初に戻る…
ヤバいこれPC再起動するしかないんじゃないのかとか焦ってたら
正に予期しない動作時に働くスクリプト()のせいで無事復帰できたw
- 246 :名無しさん@そうだ選挙に行こう:2015/12/14(月) 18:06:40.64 ID:yI4ZqmAH0.net
- >>241
実行中のマクロを深い階層から強制的に終わらせたいならEXITEXIT
今のマクロをあんまり変えずにマクロの終了状態に応じて分岐させたいなら別スレッドから今のマクロ呼び出してEXITEXITで自分で定義した終了コード渡して呼び出し元に判断させるのが良いと思う
簡単なサンプル
http://www1.axfc.net/u/3582792.zip
EXECのuwsc.exeはパスを通すかフルパスに書き換える
main_hogeを実行 sub_hoge内のproc_Call9()プロシージャ内でコメントアウトされてる行を実行するとsub_hogeの実行結果に応じてメッセージが表示されるはず
- 247 :名無しさん@お腹いっぱい。:2015/12/14(月) 20:19:16.20 ID:OWYR4MFV0.net
- >>246
色々考えてくれるのはありがたいけど
スクリプト内でクリック箇所だけでも400位あって、ぶっちゃけ全く書き換えたくないのが本音。
いじる位なら一からやったほうがまし。
今のスクリプトは全く変えず、外部からどうにかしたいわけ。
- 248 :名無しさん@お腹いっぱい。:2015/12/14(月) 20:22:34.83 ID:bKMDkJ+30.net
- 検索用に保存してある画像の
縦や横のピクセル数を返す命令ってありますか?
- 249 :名無しさん@お腹いっぱい。:2015/12/14(月) 20:34:09.73 ID:yI4ZqmAH0.net
- >>247
それはもうどうしようもないね〜
BTNやCHKIMGの処理回りをラップしておけばそのFUNCTION内でどうにかできたかもしれないけど
望みは薄いのか
>>248
標準関数だとなかったと思うけどFSO使ってサイズ取得する方法ならここに載ってる
http://d.hatena.ne.jp/junjun777/20110529/uwsc_bitmap
- 250 :名無しさん@お腹いっぱい。:2015/12/14(月) 20:42:21.68 ID:VO9EyQaS0.net
- セミコロン(マルチステートメント)使ってる人いる?
これって行数が減るだけで特に意味ないよね?
- 251 :名無しさん@お腹いっぱい。:2015/12/15(火) 00:49:14.39 ID:i5n9Tzyq0.net
- CHKIMGXのサンプルで保存画像のサイズ出して照合してなかったっけ
あれってXの機能なのか
- 252 :名無しさん@お腹いっぱい。:2015/12/15(火) 13:25:13.68 ID:wsrLnUiO0.net
- 画像ファイルのサイズは VBScript の LoadPicture 関数使えばいけるよ。
- 253 :名無しさん@お腹いっぱい。:2015/12/16(水) 07:37:39.05 ID:3D/556GD0.net
- imagesizeはchkimgx.dllの機能だね
現状とりあえず入れとけってレベルだから作者さんにはほんと感謝
- 254 :名無しさん@お腹いっぱい。:2015/12/16(水) 12:33:17.99 ID:RO0Uckyn0.net
- アンドロイドの画面をPC表示して操作するVysor (Beta)ってソフトでウインド指定して座標クリックしたのにうまくいかない
ウインド指定外せば思い通りの動作するんだけどエスパー様アドバイスください
- 255 :名無しさん@お腹いっぱい。:2015/12/16(水) 13:29:08.00 ID:iS4W1/hI0.net
- >>254
ウィンドウIDが違うんだろ
- 256 :名無しさん@お腹いっぱい。:2015/12/16(水) 14:13:22.42 ID:3D/556GD0.net
- >>254
UWSCを管理者で起動してない
MORG_DIRECT指定をMORG_CLIENTにする
コードミスってなけりゃ恐らくこのあたり
- 257 :名無しさん@お腹いっぱい。:2015/12/16(水) 15:04:31.64 ID:brGLyGvp0.net
- プルダウンから選ぶコードはどうやって書けばいいですか
ソースはこんな感じです。
<td id="note1">
<select name="cv.note[0]">
<option value="3">3</option>
- 258 :名無しさん@お腹いっぱい。:2015/12/16(水) 15:05:27.88 ID:RO0Uckyn0.net
- クリックしたい座標をウインドウ指定して座標取得したのでウインドウIDは多分大丈夫です
ウインドウ指定して基準指定:ってのを指定なしとMORG_DIRECTだと左上の0,0の座標をクリックしてたのが
MORG_CLIENで思い通りの動作になったんですがマウスカーソル奪われるのはあきらめるしかないですか?
- 259 :名無しさん@お腹いっぱい。:2015/12/16(水) 15:19:04.76 ID:MSwZZbqh0.net
- ウインドw風w
- 260 :名無しさん@お腹いっぱい。:2015/12/19(土) 09:36:25.37 ID:dKs0rSCT0.net
- 画像認識で範囲を限定して高速化したいのですが、範囲指定ではなくて画像認識するためのファイルの中心の位置を指定して使うことはできませんかね?
- 261 :名無しさん@お腹いっぱい。:2015/12/19(土) 10:13:50.36 ID:1sg6SGUx0.net
- ラッパー関数を用意すればおk
- 262 :名無しさん@お腹いっぱい。:2015/12/19(土) 10:15:12.99 ID:F+6XYxyV0.net
- >>260
>ファイルの中心の位置を指定して
例えば、200x200の画像ファイルの中心付近50x50をchkimg()に使いたいってこと?
chkimg()じゃ出来ないけど、ちょっと考えただけでも
・予め必要な画像を抜き出しておく
・指定座標から指定サイズの画像を抜き出すアプリを探すか作ってchkimg()の対象にする
などなどやりかたは色々ある
まずはこういうのじゃダメな理由を書いたほうが良いよ
- 263 :名無しさん@お腹いっぱい。:2015/12/20(日) 11:14:47.91 ID:ZpLNVxzc0.net
- 俺は言いたいことは分かったけど、処理に余計時間がかかると思うの
- 264 :名無しさん@お腹いっぱい。:2015/12/20(日) 11:47:27.75 ID:KZe/XdiC0.net
- 出現する場所がわかっている場合には矩形範囲で正確な場所を指定すれば
高速化出来るけど、それを左上角指定でもなく画像の中心座標をもって行いたいってことかな
- 265 :名無しさん@お腹いっぱい。:2015/12/21(月) 01:26:17.27 ID:2PK9cnqq0.net
- getkeystate(vk_lbutton)を使ってて、一度でもtrueにすると以降ずっとtrueのままなんだけど、以前からこんな動作だった?
座標が1箇所しかとれなくて困っている…
- 266 :名無しさん@お腹いっぱい。:2015/12/21(月) 01:58:05.59 ID:2PK9cnqq0.net
- >>265の理由で以前作成して使用していたマクロも使えなくなっている
おかしい…
- 267 :名無しさん@お腹いっぱい。:2015/12/21(月) 05:15:20.75 ID:XffwbDlp0.net
- >>265
若干長押しで引っかかってるとか?
repeat
sleep(0.1)
until !GetKeyState(VK_**)
- 268 :名無しさん@お腹いっぱい。:2015/12/21(月) 09:39:13.45 ID:CCKQhsqf0.net
- 挙動が変わったと思うなら
検証用のコードを書いて公開してみたら良いと思う
皆の結果が同じなら公式のバグでしょ
- 269 :名無しさん@お腹いっぱい。:2015/12/21(月) 11:44:04.17 ID:dhDYDp8p0.net
- >>265
dim r
sethotkey(VK_0,MOD_ALT,"exi")
repeat
a()
until false
procedure a()
r = GETKEYSTATE(VK_LBUTTON)
fukidasi(r)
fend
procedure exi()
exitexit
fend
こっちだと普通に動いてるように見えるな
5.20
- 270 :名無しさん@お腹いっぱい。:2015/12/21(月) 13:13:06.71 ID:k1OansqD0.net
- 問題のソースコードを提示できないというのは裏を返せば
問題を切り分けられていない証拠でもあるんだよね
素人ほど最初に自分ではなく他人を疑う
- 271 :名無しさん@お腹いっぱい。:2015/12/21(月) 14:40:18.86 ID:EiQ88uQn0.net
- CHKIMGXの着目する色の指定ってどういう引数いれればいいのかな?
RGB値?もしそうだとするとどう記述するんだろう。FF0000(赤)みたいな感じでいいのかな?
- 272 :名無しさん@お腹いっぱい。:2015/12/21(月) 14:45:48.24 ID:EiQ88uQn0.net
- あ、サンプルよく読んだらかいてありました。すいませんでした。
- 273 :名無しさん@お腹いっぱい。:2015/12/21(月) 15:24:38.26 ID:MrgyCbDY0.net
- ログファイルの出力先ってスクリプト側から変更できないもんですかね。
OPTION LOGPATH=hogehoge.txt
みたいな感じに指定してあるんですが、二重起動すると2つの
スクリプトから書き込まれたログがグチャグチャになってしまう。
一々ファイルオープンして書き込むほどのログではないんだけど
ちょっとばかり不便な感じ。
- 274 :名無しさん@お腹いっぱい。:2015/12/21(月) 15:39:43.34 ID:PCRRkr5n0.net
- OPTION指定の性質上無理
スクリプト別にするしかない
- 275 :名無しさん@お腹いっぱい。:2015/12/21(月) 20:27:33.49 ID:3hymvKIb0.net
- 俺ならロギング処理のラッパーを作って、それぞれの起動ごとに固有文字列割り振れるようにするかな
正規表現使えば置換処理でまとめて直せるし簡単でしょ
それが嫌ならソースコードを改変するソースコードを書いちゃえばいいしね
- 276 :名無しさん@お腹いっぱい。:2015/12/21(月) 20:50:46.67 ID:FTxNfRK40.net
- 本体をcallするoptionだけのファイルを起動したらいいんじゃないかな
- 277 :263:2015/12/21(月) 21:05:50.36 ID:2PK9cnqq0.net
- セーフモードで動作させてみたところ思う通りの動きになりました。
どうやら何らかの常駐ソフトが悪さをしているようです。
原因のソフトが特定できましたらまた報告させていただきます。
スレ汚し失礼しました。
- 278 :名無しさん@お腹いっぱい。:2015/12/22(火) 00:09:15.99 ID:gv1300fTg
- >>273
ログパス指定にTIME値いれたら?
- 279 :名無しさん@お腹いっぱい。:2015/12/22(火) 00:23:23.71 ID:DKkq04ll0.net
- スレちゃん「私……汚されちゃったよぉ」
- 280 :名無しさん@お腹いっぱい。:2015/12/22(火) 05:34:12.40 ID:8u/KWTZa3
- >>278
試してみるとわかるけどそれは出来ない
実用的な案は>>276あたりかなぁ
- 281 :名無しさん@お腹いっぱい。:2015/12/22(火) 12:57:13.12 ID:RoUnScmr0.net
- スレちゃんは汚れてないよ俺が一生守るから
- 282 :名無しさん@お腹いっぱい。:2015/12/25(金) 15:17:07.98 ID:7FQmwVc80.net
- すみません、
マクロ再生開始してから2時間経過したら○分ほど停止してまた活動再開を繰り返す処理ってどうすればいいでしょうか?
停止する○分は10〜20分くらいが毎回ランダムで変わるとなおいいのですが・・・
よろしくお願いします。
- 283 :名無しさん@お腹いっぱい。:2015/12/25(金) 15:21:56.32 ID:4xQkvZLh0.net
- すみません自分で調べてくださいよろしくお願いします
- 284 :名無しさん@お腹いっぱい。:2015/12/25(金) 15:36:14.25 ID:lZFGO43t0.net
- 2時間経過をチェックする方法
ランダムで10〜20分停止する方法
たった2つググるだけだ頑張れ
- 285 :名無しさん@お腹いっぱい。:2015/12/27(日) 16:12:57.95 ID:AlS/S0az0.net
- 某青い空のモバゲーのポーカー関数ちょっと作ってみたいんだけど
配布終わってるし折角だから1から勉強してみようと思う
とりあえず、ウインドウの座標を固定して画像取得する関数って
どういうの組めばいいのかな
少なくとも脳死ポーカーより頭によさそう
- 286 :名無しさん@お腹いっぱい。:2015/12/27(日) 16:36:33.75 ID:/OzrBre50.net
- とりあえずぐぐれ。
出来たやつを実行しろ。
思った動作と違ったら来い。
- 287 :名無しさん@お腹いっぱい。:2015/12/27(日) 16:44:59.25 ID:AlS/S0az0.net
- なんか探したら自動取得ツール自体はあったわ
これで画像取得自体はできるけどそのままだと枚数が1000こえるな
なんかこう1枚ずつ認識して判断できんかな・・・・・
- 288 :名無しさん@お腹いっぱい。:2015/12/27(日) 16:55:25.82 ID:792AGejY0.net
- >>287
それを考え、自分でスフリプトを組むことを勉強っていうんじゃないの?
- 289 :名無しさん@お腹いっぱい。:2015/12/27(日) 17:05:31.09 ID:AlS/S0az0.net
- >>288
いまやってる
座標の取得はできそうだけど画像名のストック?がちょっとよくわからん
判断関数のあとで真なら文字を記憶みたいな感じでできるんかな
そもそも変数にアルファベットぶち込めなかった気がする・・・・
- 290 :名無しさん@お腹いっぱい。:2015/12/27(日) 17:07:08.01 ID:fibytPLm0.net
- ここはお前の日記帳じゃない
- 291 :名無しさん@お腹いっぱい。:2015/12/27(日) 17:58:35.45 ID:uFtbG2Uf0.net
- IEのビジー待ちについて質問です。
最初と最後のSleep(0.2)が必要な理由を教えてください。
procedure ie_wait( ie )
Sleep(0.2)
Const TIME_OUT = 60
tm = Gettime()
repeat
Sleep(0.2)
ifb Gettime() - tm > TIME_OUT
kbd(VK_F5)// F5
Exit
endif
until (! ie.busy) and (ie.readyState=4)
Sleep(0.2)
Fend
- 292 :名無しさん@お腹いっぱい。:2015/12/28(月) 00:00:20.30 ID:qZu6Od9X0.net
- >>289
1つカードの画像を判断するだけで1000の命令が必要でも
やるのはPCだからな
1回作ってしまえば勝手に動くんだから、初回の手間を惜しむな
>>291
作った奴に聞け
なんとなく動作が不安定な時に、適当にスリープ入れたらスムーズに動くことがあるから
その名残だろうとは思うが
- 293 :名無しさん@お腹いっぱい。:2015/12/28(月) 02:25:18.81 ID:iq4jhptY0.net
- 画像認証の質問です
Ifb CHKIMG("w.bmp") = TRUE
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
MSGBOX("見つかりました")
ELSE
MSGBOX("見つかりません")
Endif
以上の関数で適当な画像wをコピーしてデスクトップに表示したら認識しませんでした
フォトビューワで開いたら認識しました
実際にはいろんな画像が混ざってるところで使いたいので今のままだと役に立ちません
なにが起きてるんでしょうか
- 294 :名無しさん@お腹いっぱい。:2015/12/28(月) 02:33:17.82 ID:AG3orU5C0.net
- デスクトップでは認識しない、そんだけ
- 295 :名無しさん@お腹いっぱい。:2015/12/28(月) 02:34:45.96 ID:qZu6Od9X0.net
- >>293
デスクトップに表示する時に伸縮していたら認識しない
また、上にアイコンなどが乗っていて、画像の透過部分以外が隠れたら認識しない
実際の画像の混ざり方を考えて、認識させたい画像のサイズや範囲などを決める必要がある
- 296 :名無しさん@お腹いっぱい。:2015/12/28(月) 02:36:04.63 ID:qZu6Od9X0.net
- >>294を見てなくて適当に答えた
- 297 :名無しさん@お腹いっぱい。:2015/12/28(月) 02:42:37.59 ID:iq4jhptY0.net
- お二方ありがとうございます
btn部分をなくして最終目標で確認したら認識できました
やっぱりデスクトップの背景とかで透過しちゃってたみたいです
- 298 :名無しさん@お腹いっぱい。:2015/12/28(月) 15:40:18.87 ID:iq4jhptY0.net
- 画像認識、うまくいかないな
プログラム自体は正常っぽいけど対象の画像がときどきピクセルずれてるんかな
キャプチャしなおすとその時だけうまくいくんだよな
画像たくさん作ってしらみつぶしするしかないか・・・・・・・ハァ
- 299 :名無しさん@お腹いっぱい。:2015/12/28(月) 15:54:16.22 ID:2b9Fr6+00.net
- >>298
面倒だが、透過色設定したり透過色で画像塗りつぶしたりして必要な要素だけ取り出す方法もある
- 300 :名無しさん@お腹いっぱい。:2015/12/28(月) 15:57:45.90 ID:wOaVL79d0.net
- ボタン系はボタン以外の画像がよかったりするし
いろいろやりようはあるとおもう
- 301 :名無しさん@お腹いっぱい。:2015/12/28(月) 20:45:56.05 ID:ww5rWK300.net
- >>298
peekcolorを使ってみるのも一つの手だと思うよ
- 302 :名無しさん@お腹いっぱい。:2015/12/28(月) 21:24:10.61 ID:I1QV70970.net
- yrd
- 303 :名無しさん@お腹いっぱい。:2015/12/31(木) 18:03:20.24 ID:ed8Joufj0.net
- >>299
それやりたいんですがwindowsの付属のペイントでできますか?
- 304 :名無しさん@お腹いっぱい。:2015/12/31(木) 20:25:19.28 ID:kkB7l74A0.net
- できますよ
- 305 :名無しさん@お腹いっぱい。:2015/12/31(木) 21:30:25.00 ID:actWcm4n0.net
- UWSCの透明指定は四隅の内、何処の色を透明扱いするかだから
αチャンネル使えるソフトを使用しなくても良い
- 306 :295 【大凶】 :2016/01/01(金) 07:10:48.26 ID:DZ0F9EIl0.net
- >>304-305
ありがとう
あけおめ
- 307 :名無しさん@お腹いっぱい。:2016/01/01(金) 07:11:50.40 ID:DZ0F9EIl0.net
- ↑間違えましたた私は299です
- 308 :名無しさん@お腹いっぱい。:2016/01/01(金) 19:48:02.85 ID:dAo8yM1a0.net
- >>298
ゲイブの嫌がらせ
- 309 :名無しさん@お腹いっぱい。:2016/01/02(土) 21:54:24.77 ID:OOAR2+6Q0.net
- >>303
ペイントでもできるけどgimp使え
マジックマジ便利
あけおめ
- 310 :名無しさん@お腹いっぱい。:2016/01/05(火) 18:09:09.81 ID:7af5YO540.net
- 5.2.0からなんか重くなってね?
同じスクリプトなのに起動してから動き始めるまで異常に時間かかるようになった
CLKITEMが怪しいかなと思ってる
- 311 :名無しさん@お腹いっぱい。:2016/01/05(火) 18:44:16.27 ID:7af5YO540.net
- やっぱりCLKITEMだったわ
いままで快適に動いてたのにショック
- 312 :名無しさん@お腹いっぱい。:2016/01/06(水) 17:09:53.73 ID:a/kSD6F/0.net
- uwscでpptマクロを実行
f_name = "C:\テスト.pptm"
ppt = CREATEOLEOBJ("POWERPOINT.Application")
ppt.PRESENTATION.open(f_name)
ppt.visible = TRUE
sleep(5)
ppt.run("test")
(テスト.pptmの標準モジュールのModule1にtestがある)
これを実行すると
ppt.run("test")で COM error が出ます
解決策を教えてください。
- 313 :名無しさん@お腹いっぱい。:2016/01/08(金) 12:43:18.74 ID:jLBAQqUa0.net
- >>312
やってないからわからんけどその構文だとpptはアプリケーションオブジェクトであってファイル個別のオブジェクトじゃないよね
<ファイル名>!Module1.testみたいに対象ファイルからプロシージャをはっきし明示しないとどのモジュール参照していいかわかんないんじゃね
あとプロシーシャのスコープpublicにしてるかどうか?
- 314 :名無しさん@お腹いっぱい。:2016/01/09(土) 23:29:05.79 ID:OPYCmqUk0.net
- >>313
ありがとうございます!!出来ました!!!
- 315 :名無しさん@お腹いっぱい。:2016/01/10(日) 14:48:48.28 ID:+h7zfP7X0.net
- windows10に仮想デスクトップっていうのがあるんってきいたんですけど
uwscをこれで裏で使用できるんですか?
- 316 :名無しさん@お腹いっぱい。:2016/01/11(月) 01:03:13.57 ID:2riljtmT0.net
- >>315
実際にやってみればいいんじゃない?
- 317 :名無しさん@お腹いっぱい。:2016/01/11(月) 08:24:19.75 ID:yYs4qC8O0.net
- 仮想デスクトップ≠仮想環境
- 318 :名無しさん@お腹いっぱい。:2016/01/11(月) 12:51:41.92 ID:FFuDFDqi0.net
- 仮想デスクトップ上の座標がどうなっているのか興味があるところだが
Win10環境が無い
- 319 :名無しさん@お腹いっぱい。:2016/01/11(月) 12:55:49.55 ID:/FI12Aqd0.net
- 何時だか8.1使っていたらポップアップで今なら無料とwin10を
ゴリ押してきたので入れてしまった
- 320 :名無しさん@お腹いっぱい。:2016/01/11(月) 15:34:36.34 ID:js3KT4j30.net
- 10の仮想デスクトップで既存のコード動かしてみたけどchkimgは動いてるっぽい
ただBTNでマウス操作しようとすると今の画面内をちょろちょろしだすから座標的には共通っぽい
DIRECT指定使うかKBD,CLKITEMみたいに座標関係ないなら行けそう
- 321 :名無しさん@お腹いっぱい。:2016/01/12(火) 12:43:01.14 ID:e9ToDDNW0.net
- 割と初心者なんでむちゃくちゃな事を言ってるかもしれないけど
IE上で動いてるjavascriptの変数をUWSCから参照して取得するなんてこと出来ないですかね?
- 322 :名無しさん@お腹いっぱい。:2016/01/12(火) 14:40:39.17 ID:8tuq2Tc50.net
- >>320
3次元管理されてるんじゃないかな
今表示されているのは2Fの面、とか
そうなるとマウスクリック座標にZ軸概念が必要になってきそうね
- 323 :311:2016/01/13(水) 21:56:06.43 ID:txKMe/w00.net
- 大変そうなんでwindows10入れるのやめときます
ありがとうございました
- 324 :名無しさん@お腹いっぱい。:2016/01/14(木) 18:52:02.87 ID:Gt/fS78R0.net
- peekcolor高速でワロタ
- 325 :名無しさん@お腹いっぱい。:2016/01/14(木) 20:46:03.91 ID:Udnjh/YY0.net
- >>323
Dual Bootで既存システムと共存させると良いよ
- 326 :名無しさん@お腹いっぱい。:2016/01/19(火) 00:33:32.52 ID:NZpgzfiCJ
- >>3のchkimgxが404なんですが他に入手できる場所は無いでしょうか?
- 327 :名無しさん@お腹いっぱい。:2016/01/20(水) 04:10:25.20 ID:K+q1DhPU0.net
- IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
MOUSEORG(GETID(
- 328 :名無しさん@お腹いっぱい。:2016/01/20(水) 04:13:03.26 ID:K+q1DhPU0.net
- IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
ID = GETID(
- 329 :名無しさん@お腹いっぱい。:2016/01/20(水) 04:14:08.41 ID:K+q1DhPU0.net
- あれ…なんで途中で切れてしまうんでしょうこれ
何度もすみません><
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
ID = GETID("XXX - Internet Explorer","IEFrame")
MOUSEORG(ID,2,MORG_BACK)
BTN(LEFT,0,100,100,1000)
これだけではだめなのでしょうか?
ブラウザの操作はできないなどありますか?
- 330 :名無しさん@お腹いっぱい。:2016/01/20(水) 04:58:52.14 ID:a57AnsIh0.net
- IEは
id = hndtoid(getctlhnd(getid("", "IEFrame"), "Internet Explorer_Server"))
こうじゃね?
- 331 :名無しさん@お腹いっぱい。:2016/01/21(木) 21:54:43.32 ID:nGOnC4p/0.net
- ACWが効かない事ってあります?
あるアプリを画面左上に表示させたいので以下のように記述したのですが、
xxID = getid("アプリ名")
ifb xxID = -1
msgbox("アプリ名を開いてから実行してください。")
exitexit
endif
msgbox("アプリ名発見<#CR>"+"ウィンドウID:"+xxID) //画像認識成功
acw(xxID,0,0)
これ実行すると「アプリ名発見 ウィンドウID:1」と表示されるのですが
ウィンドウが左上隅に行ってくれません。
- 332 :326:2016/01/22(金) 06:34:37.09 ID:T4LReso30.net
- やっぱり駄目みたいですね。
ってかこのアプリ上ではUWSCで動作の記録すらされません。
マウスもキーボードも駄目。
素直に諦めます。お騒がせしました。
- 333 :名無しさん@お腹いっぱい。:2016/01/22(金) 08:27:38.96 ID:7wFnMY690.net
- >>332
もしかしてwin10?
- 334 :名無しさん@お腹いっぱい。:2016/01/22(金) 10:15:56.37 ID:cq8WTI4X0.net
- まあゲームによっちゃマクロ対策してるものも多いわな
- 335 :名無しさん@お腹いっぱい。:2016/01/22(金) 12:27:49.02 ID:zldJ+8I00.net
- どんな事をしても画像認識が出来ないです。
ペイント四角い図形を作りそれをコピー
もうひとつペイントを出してそこにペースト
それを24bitBMPで保存
最初のペイントはそのまま残して、それを認識させる
sleep(1)
if chkimg("000.bmp",0)
fukidasi("ありましたよ", 300, 400)
else
fukidasi("見当たりません", 300, 400)
endif
sleep(3)
上記ので試していますが全く認識しません。
範囲指定、透過色/色無視、等色々試しました。
PCも3台で試しましたがダメでした。
何が問題なんでしょうか?
心当たりのある方いたらご指導下さい。
宜しくお願いします。
- 336 :名無しさん@お腹いっぱい。:2016/01/22(金) 12:53:25.40 ID:Hapn1qGL0.net
- >>335
mouseorgでウィンドウ指定してたりするんじゃねーの?
その場合はペイントのウィンドウIDじゃなくてペイントの描画部分のIDを指定しなきゃダメだぞ
- 337 :名無しさん@お腹いっぱい。:2016/01/22(金) 15:51:48.06 ID:bHu1IupN0.net
- >>329
flashオブジェクトのクリックじゃないなら、htmlの解析でクリックしたほうが確実じゃね?
- 338 :名無しさん@お腹いっぱい。:2016/01/22(金) 16:58:32.45 ID:CXhcEU1b0.net
- >>335
ペイントがダメなんじゃね
ほかの画像表示ソフトとかで試してみたら?
- 339 :名無しさん@お腹いっぱい。:2016/01/22(金) 20:36:05.26 ID:h8x4HVfG0.net
- >>335
ペイント一つだけなら認識するか?
- 340 :330:2016/01/23(土) 13:39:23.25 ID:bDtzBo3X0.net
- 助言有難うございます。
上記の事、色々試してみましたが認識は出来ませんでした。
諦めて他の方法を考えてみようと思います。
有難うございました。
- 341 :名無しさん@お腹いっぱい。:2016/01/23(土) 15:02:24.98 ID:JtiZQzOi0.net
- >>340
ペーストするペイントのキャンバスが大きいままやってて
不必要な背景が付いてしまってるってことはないよね?
- 342 :330:2016/01/23(土) 16:10:06.75 ID:bDtzBo3X0.net
- >>341
ペーストする際にキャンパスはペースト画像以下にして貼り付けてます。
有難うございます。
- 343 :名無しさん@お腹いっぱい。:2016/01/23(土) 18:43:39.11 ID:dZYon1Wc0.net
- ペイント一つで認識しないなら2つで認識するわけないだろ。
まず最小構成で問題の原因を切り分けろよ。そんなんじゃやり方変えても別の問題で詰まって諦めるだけだ
- 344 :名無しさん@お腹いっぱい。:2016/01/23(土) 18:49:31.20 ID:+CnaRQ1h0.net
- 以下ってなんだ?
完全に一致させないといけないんだからその表現自体からして
もう何か勘違いしてるとしか思えないんだが
大きな黒い画像を表示させておいて
黒1ピクセルだけのbmpでchkimgやってみるのをお勧めする
- 345 :名無しさん@お腹いっぱい。:2016/01/23(土) 21:10:32.92 ID:zIf41qbQ0.net
- >>344
>>342の言っていることもやっていることも合ってる
ペイントにおいては貼り付け先のキャンパスが貼り付けする画像よりも小さい場合、強制的にキャンパスサイズが貼り付けする画像と同じ大きさに変更される
そのため意図しない余分な余白を排除することができ、chkimgで完全に一致させることができる
- 346 :名無しさん@お腹いっぱい。:2016/01/23(土) 21:11:16.50 ID:zIf41qbQ0.net
- 補足で>>344の内容に関してのみは合ってるってことね
他はしらん
- 347 :名無しさん@お腹いっぱい。:2016/01/23(土) 21:11:44.50 ID:zIf41qbQ0.net
- >>342の間違いだわ失礼
- 348 :名無しさん@お腹いっぱい。:2016/01/23(土) 22:11:15.75 ID:CuLS3gLO0.net
- 絶対ソースが他にもあってその部分が原因で認識してない
>>335に書いてあるのが全てなら前後にスリープ入れる意味がないからな
- 349 :330:2016/01/23(土) 23:42:32.53 ID:bDtzBo3X0.net
- http://l2.upup.be/C3I0kNiClG
>>344
ペイントで白地に黒点の画像を作って(000.bmp)
ディスクトップの背景を黒
検索範囲を添付画像のマウス辺りに
if chkimg("000.bmp",1,447,238,635,318)
fukidasi("ありましたよ", 300, 400)
else
fukidasi("見当たりません", 300, 400)
endif
sleep(3)//吹き出しの表示時間ですがendifの上がいいのかな?
これでダメでした。
- 350 :名無しさん@お腹いっぱい。:2016/01/24(日) 00:05:02.42 ID:3CV3bKZH0.net
- >>349
SAVEIMGで認識したい画像を作ってもダメなら、
何か運命的な力によってできないようにされているから諦めろ
- 351 :名無しさん@お腹いっぱい。:2016/01/24(日) 00:56:56.54 ID:HahwDAq70.net
- デスクトップが黒でも画像に白地があったらそりゃ透過指定でもしないと無理じゃね?
- 352 :名無しさん@お腹いっぱい。:2016/01/24(日) 01:28:36.53 ID:kMEV0vdK0.net
- >>349
その000.bmpをうpろだにうpしてここにアドレス貼って
- 353 :名無しさん@お腹いっぱい。:2016/01/24(日) 01:31:26.12 ID:xy8ZxP2N0.net
- 初心者のマヌケな勘違いに付き合ってやるお前らは優しいな
- 354 :名無しさん@お腹いっぱい。:2016/01/24(日) 01:41:14.00 ID:HahwDAq70.net
- >>349の画像にある000.bmpのサムネイルがもうお察し
- 355 :名無しさん@お腹いっぱい。:2016/01/24(日) 02:19:52.57 ID:WW6t0Mr80.net
- >>333
Windows7Professional上で
使おうとしたのはAutoCAD2015でした
- 356 :名無しさん@お腹いっぱい。:2016/01/24(日) 02:40:54.86 ID:Igcg1fXC0.net
- 透過してもダメならおかしいな
なぜわざわざ白地を付けて透過してるのか分からんが
- 357 :名無しさん@お腹いっぱい。:2016/01/24(日) 07:36:01.33 ID:mAXZzVR/0.net
- 白地をつけずに作れ
デスクトップの黒はRGB値が000かどうか確認したか?黒く見えるだけじゃないのか
- 358 :名無しさん@お腹いっぱい。:2016/01/24(日) 07:37:54.90 ID:mAXZzVR/0.net
- 画像ファイルの保存場所は正しいか?
- 359 :名無しさん@お腹いっぱい。:2016/01/24(日) 07:49:46.99 ID:gigVQQsJ0.net
- 仮想環境上だよな?
- 360 :330:2016/01/24(日) 08:10:09.47 ID:O/0pTIZz0.net
- 初心者は認めます^^;
皆さん申し訳ないです、有難うございます。
ググって色々試して、1度も成功してないので書き込みさせて頂きました。
000.bmp
http://l2.upup.be/dYkIFhvJuf
下記の画像の様に、ペントで黒塗りの四角画像でも試しています
画像を見て解ると思いますが、ディスクトップは#000000です
http://l2.upup.be/hfjE539E2y
画像認識する範囲が0,0からでは上手く出来ないと場合があるとの事から
範囲指定無し、有りでも毎回試しています
>>358
全てのファイルはディスクトップで試しています。
違うとエラーが出ます。
- 361 :名無しさん@お腹いっぱい。:2016/01/24(日) 09:12:55.94 ID:vffMZR4M0.net
- たまにいるけどデスクトップをディスクトップって言う奴なんなの
- 362 :名無しさん@お腹いっぱい。:2016/01/24(日) 09:21:04.87 ID:gigVQQsJ0.net
- 言葉の意味がわかってない奴さ。
意味も分からず文字だけ記憶してるからこういうことになる
- 363 :名無しさん@お腹いっぱい。:2016/01/24(日) 10:21:15.66 ID:ZlkU8bwS0.net
- >>360
いや、だから1つ1つの問題の切り分けを正確にやれ
別サイズの黒塗り画像でも動かない!って主張しても動かないのは意味のない情報
それよりもっと単純なことが出来ていないんだから
>>349や>>360の000.bmpを見ると幅15px、高さ11pxであって白い部分が含まれている
何が原因かを探るためにも幅1px、高さ1px、黒(#000000)の画像を用意して
動作確認が最初に試すべきことだ
それで問題が解決しないなら、その画像とソースコードをまとめてzipでアップロードしろ
更にuwscのバージョン、OSのバージョンなんかも併記したほうがいい
- 364 :名無しさん@お腹いっぱい。:2016/01/24(日) 10:43:00.31 ID:fOnBrER40.net
- 2つ以上のゲームをuwscで操作させるときはどうしてますか?
- 365 :名無しさん@お腹いっぱい。:2016/01/24(日) 11:16:29.03 ID:mAXZzVR/0.net
- if文の「then」が抜け出るからじゃね?
uwscの昔のバージョンは?昔はifbとか必要だったし
- 366 :名無しさん@お腹いっぱい。:2016/01/24(日) 11:17:24.22 ID:mAXZzVR/0.net
- >>360
if文の「then」が抜けてるからじゃね?
uwscの昔のバージョンは?昔はifbとか必要だったし
- 367 :330:2016/01/24(日) 14:08:58.80 ID:O/0pTIZz0.net
- UWSC Pro Ver5.2.1
を使っていましたが、試しに
UWSC Pro Ver4.9c
にしてみたら認識しました!
感激です!!
皆様の助言のおかげでなんとかなりそうです!
助言を下さった方、ありがとうございました。
m(_ _)m
>>362
>意味も分からず文字だけ記憶してるからこういうことになる
とても勉強になりました、今後気を付けたいと思いました。
ありがとうございます。
>>363
>1つ1つの問題の切り分けを正確にやれ
これも色んな所で応用できそうです。
勉強になりました。
ありがとうございました。
- 368 :名無しさん@お腹いっぱい。:2016/01/24(日) 17:49:17.71 ID:8jDz2v8Q0.net
- 30分30秒毎に実行したい処理があり、並列処理にて組みました。
わざわざ2つもスクリプトも用意せずとも、いけそうな気もするのですがこれが限界です。
もっとシンプルにならないでしょうか。お知恵を拝借させてください。
-Main.uws-
While True
sleep(1830)
CALL A.uws
WEND
-A.uws-
Thread FunctionA()
Procedure FunctionA()
やりたい処理(10分くらいかかる)
FEND
- 369 :名無しさん@お腹いっぱい。:2016/01/24(日) 18:17:45.90 ID:3CV3bKZH0.net
- >>368
CALLを関数代わりにするのは、スタックオーバーフローの原因になるので止める
CALL A.uws
While True
sleep(1830)
Thread FunctionA()
WEND
2ファイル使いたくないなら、CALLを使わずにMain.uws内にProcedure FunctionA()
- 370 :363:2016/01/24(日) 18:57:49.92 ID:8jDz2v8Q0.net
- ありがとうございました。
Thread FunctionA()でProcedure FunctionA()を呼び出すようにしたら、1ファイルでもうまく走りました。
そんな使い方ができるとは、勉強になりました。
- 371 :名無しさん@お腹いっぱい。:2016/01/25(月) 05:10:15.14 ID:pb4QYEcB0.net
- SETHOTKEYで、現在実行中の関数を抜けるようにしたいのですが、可能でしょうか
SETHOTKEYは引数で関数を指定しますよね
そこでEXITをしてもその関数を抜けるだけで意味がないし、EXITEXITだと全体が終了してしまうしで・・・
その時やっている関数だけ終わらせて次の関数へ移る、ってのは無理なんでしょうか
- 372 :名無しさん@お腹いっぱい。:2016/01/25(月) 06:22:07.25 ID:6V8NCtbv0.net
- mode=数字 とかで対処したらどうなの?
- 373 :名無しさん@お腹いっぱい。:2016/01/25(月) 10:52:45.34 ID:fsXZoFnX0.net
- SetHotKeyで数値を変えてその数値を見てExitさせるかGetKeyStateでExitをぶち込むか?
- 374 :名無しさん@お腹いっぱい。:2016/01/25(月) 11:50:28.06 ID:6G99dwJv0.net
- public dim exit_flag = false
function aaa()
exit_flag = false
while true
if exit_flag=true then exit
処理
wend
fend
procedure hotkey()
exit_flag = true
fend
- 375 :名無しさん@お腹いっぱい。:2016/01/25(月) 12:31:13.16 ID:pb4QYEcB0.net
- >>372-374
ありがとうございます
やっぱりそういう感じしか無理ですかね・・・
SETHOTKEYでフラグの値変えて判定するんだったら
>>373さんの言うようにGETKEYSTATEでEXITしちゃえばいいだけなんですよね・・
- 376 :名無しさん@お腹いっぱい。:2016/01/25(月) 18:14:55.64 ID:B+E8sfr+0.net
- YOU ! EXIT しちゃいなよ!
- 377 :名無しさん@お腹いっぱい。:2016/01/26(火) 01:24:28.70 ID:jn4ZRk/I0.net
- 前にwhileを一杯並べてbreak2みたいな構図にするなっていうタブー的なこと話してたけど
関数から関数よんで関数関数からなかなか抜け出せなくなるのもやっぱりタブーだったりするの?
- 378 :名無しさん@お腹いっぱい。:2016/01/26(火) 02:14:56.87 ID:deFC+MwW0.net
- それはスタックオーバーフローを起こしやすい件とは全然関係ないから
自分で管理できているならそれでいいんだよ
グループで構築していてメンテナンスを他人がする場合は
グループ内のコーディングルールが必要なだけさ
- 379 :名無しさん@お腹いっぱい。:2016/01/26(火) 06:08:30.62 ID:ApvsqQfK0.net
- >>375
GETKEYSTATEは呼ばれたタイミングでしか評価しないから、取りこぼしが発生する。
SETHOTKEYは取りこぼさないけど、フラグ見るまでディレイが生じる。
全く同じではないよ。用途次第でどっちが適しているか考えないと。
- 380 :名無しさん@お腹いっぱい。:2016/01/26(火) 06:31:22.72 ID:ApvsqQfK0.net
- >>379
すまん。
実験してみたら、コール時点で評価ってわけじゃないんだな。
sleep(19
- 381 :名無しさん@お腹いっぱい。:2016/01/26(火) 06:34:49.06 ID:ApvsqQfK0.net
- 送信ミス。
sleep(10)
if GETKEYSTATE(VK_A) then
PRINT "A"
endif
でスリープ中に押したAが認識されてた。
- 382 :名無しさん@お腹いっぱい。:2016/01/26(火) 07:15:35.06 ID:jehVgdMQ0.net
- なにこの一人相撲
- 383 :名無しさん@お腹いっぱい。:2016/01/26(火) 10:40:36.70 ID:deFC+MwW0.net
- FAQなのよー
プログラム開始時点で全てのKEYSTATEはクリアされていて
GETKEYSTATEが呼ばれたら、呼ばれるまでに押下されていたらTRUEを返すって関数
つまりループ前に終了用のキーが押下されていればループしないケースとかあるので
空呼び出ししてクリアする必要があったりする
- 384 :名無しさん@お腹いっぱい。:2016/01/27(水) 07:36:27.55 ID:12Zxt+CV0.net
- サブ機のWindows10環境で動作確認して上手く行ったからメインも10にしたんだが
Windows10環境だとモニタがオフになったらCHKIMGで画像認識出来なくなる・・・
動作確認が甘かったぜ・・・何か対処方法ありませんか?
- 385 :名無しさん@お腹いっぱい。:2016/01/27(水) 09:50:24.39 ID:Gihgo/qC0.net
- スリープしない設定にしてモニタの電源を切る
- 386 :名無しさん@お腹いっぱい。:2016/01/27(水) 10:00:04.50 ID:12Zxt+CV0.net
- いや当然Windows7時代から、そうしてるんだが・・・
- 387 :名無しさん@お腹いっぱい。:2016/01/27(水) 10:12:50.14 ID:jZMYF+Ys0.net
- 10はモニターの電源切ると画面の描画もしなくなるってことか
すごいな
- 388 :名無しさん@お腹いっぱい。:2016/01/27(水) 11:00:11.15 ID:12Zxt+CV0.net
- >>387
そうみたいだね
モニタにハードスイッチ付いてれば良いんだが・・・
OSの制御でモニタの電源切るしか無いのがイタイ
Windows7の時はこれでも描画してたんだがグラフィック関係ごと電源落としてるのかね
- 389 :名無しさん@お腹いっぱい。:2016/01/27(水) 11:19:55.96 ID:4oyilgdN0.net
- ハードスイッチがついたモニタを買う
モニタのコンセントを抜く
ハードスイッチがついてないモニタってなんだ?一体型?
- 390 :名無しさん@お腹いっぱい。:2016/01/27(水) 11:47:36.48 ID:12Zxt+CV0.net
- 隣のPCのモニタの開いてる端子に繋いでマルチモニタとして認識させたら行けたわ・・・
(隣のPCモニタの表示は切り替えず元のまま)
無理矢理感MAXだけど仕方ないね
こんなところで仕様変更有るとは想像もしてなくて参った
- 391 :名無しさん@お腹いっぱい。:2016/01/27(水) 12:08:40.68 ID:x0sPMmFo0.net
- 一部のゲームとかソフトとかでGetkeyとか使えなくなってたりしてるの確認してる
ウィンドウ指定するとき右クリック入れてからやるようにしてるからその辺使えないと困る
うぃん10使ってたの1時間未満ですぐに戻した
戻してもいいなら戻したほうがいいのではとも思う
ただよくある質問でchromeがmouseorgでバックグラウンド画像認識しようとしたらできないって人がいるけど
win10だと出来るっていうことは確認した >>188の件
- 392 :名無しさん@お腹いっぱい。:2016/01/27(水) 18:55:11.83 ID:baMEr/z1e
- //test.uws
DIM A=999999999999999
PRINT A //999999999999999
PRINT A+1 //1E15
上記のテストで変数が15桁まで対応してるのがわかる
- 393 :名無しさん@お腹いっぱい。:2016/01/28(木) 20:52:58.52 ID:ARfwwneo0.net
- 皆さんこんばんは
スケジュール機能で40以上登録したいのですが、増やすにはどうしたら良いでしょうか?
- 394 :名無しさん@お腹いっぱい。:2016/01/28(木) 21:16:25.64 ID:vsEjcj1E0.net
- UWSC.INIの
[SCHEDULE]
MaxNumber=**←ここいじれ
- 395 :名無しさん@お腹いっぱい。:2016/01/28(木) 21:28:21.68 ID:ARfwwneo0.net
- >>394
できたーーーーーーー!!!!
ありがとう!マジ感謝!ちゅちゅちゅちゅちゅ
- 396 :名無しさん@お腹いっぱい。:2016/01/29(金) 10:51:30.38 ID:jpG6pbsk0.net
- YOU ! EXITしちゃいなよ!
- 397 :名無しさん@お腹いっぱい。:2016/01/30(土) 03:55:44.75 ID:M5n6V6080.net
- >>390
たとえば俺の Lenovo のノーパソだと
Fn+F2 キーでモニタOFFにできるんだけど
これならBIOSレベルでやってるだろうから大丈夫だったりするんじゃないかな。
- 398 :名無しさん@お腹いっぱい。:2016/01/30(土) 04:03:53.47 ID:Kxa/SQA40.net
- 今日始めたばかりなのでわからない事だらけですがよろしくお願いします
下記の作業をさせたい場合どうすればいいですか?
・画像1がある時に画像1をクリック
・画像2がある時に画像2をクリック
・画像3がある時に画像3をクリック
同じ画像が同時に出てくる事はありません
画像が出てくるのに少し時間がかかるので見つかるまで再検索
下記の文で実行したところ最初の時点で画像は出ていてもクリックをしてくれません
エラーも吐かずずっと再生状態のまま何もしてくれませんでした
一応自分なりに調べてみたのですが解決しなかったので知恵をお貸しください
repeat
sleep(0.2)
until chkimg(
- 399 :名無しさん@お腹いっぱい。:2016/01/30(土) 04:05:13.35 ID:Kxa/SQA40.net
- すいません、尻切れになってしまいした
試してみた文はこれです
repeat
sleep(0.2)
until chkimg("1.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
repeat
sleep(0.2)
until chkimg("2.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
repeat
sleep(0.2)
until chkimg("3.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
- 400 :名無しさん@お腹いっぱい。:2016/01/30(土) 04:16:36.53 ID:Q6ySmrDa0.net
- そりゃ画像見つかるまでループで順番に1、2、3ってやったら
画像2か3が出た場合、画像1のチェックを延々やるだけになるに決まってるだろ
ループ1回の間に3つチェックにしないと
IFBで3段階入れ子にするとかしないと
- 401 :名無しさん@お腹いっぱい。:2016/01/30(土) 04:19:51.66 ID:Kxa/SQA40.net
- 言葉が足りませんでした
repeat
sleep(0.2)
until chkimg("1.bmp")=true
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
これだけでも無理で何もクリックしてくれず
IFB chkimg(".bmp")=true then
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif
これでも無理でした
- 402 :名無しさん@お腹いっぱい。:2016/01/30(土) 04:21:57.44 ID:Kxa/SQA40.net
- IFB chkimg("1.bmp")=true then
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
endif
でした、連投すいません
画像のファイル名は各種番号のみで24ビットbmp形式
uwscの実行ファイルと同じところに置いています
- 403 :名無しさん@お腹いっぱい。:2016/01/30(土) 04:41:16.12 ID:RmoOYQCx0.net
- IFB chkimg("1.bmp")がFALSEなら、画像が間違ってるとしか言いようがない
- 404 :名無しさん@お腹いっぱい。:2016/01/30(土) 05:15:28.84 ID:Q6ySmrDa0.net
- うん、>>398で言ってるやりたいこと以前に画像が検出できてないだけじゃん
- 405 :名無しさん@お腹いっぱい。:2016/01/30(土) 06:28:10.77 ID:Fh+9y7iS0.net
- >>398は見当違いな事言ってるように見えるが
画像2や画像3以前に画像1の時点でダメなんだろ
画像1のみでやってもミスってんだから
- 406 :名無しさん@お腹いっぱい。:2016/01/30(土) 09:07:24.64 ID:2SEEQedG0.net
- どこまで行ったのかを確認できるようにログを残すようにしてるんだけど普通何の関数使うんだろ
今はSendStrでやってるんだけど
- 407 :名無しさん@お腹いっぱい。:2016/01/30(土) 09:31:52.50 ID:Q6ySmrDa0.net
- ?
PRINT使えば普通にログ残るだろ?
わざわざ別の方法でログ取ってるのか?
- 408 :名無しさん@お腹いっぱい。:2016/01/30(土) 10:03:26.42 ID:BggHBUaW0.net
- uwsc うそつかない 1.bmp一致しない 画像変えるよろし
- 409 :名無しさん@お腹いっぱい。:2016/01/30(土) 10:09:18.79 ID:2SEEQedG0.net
- なんだよそれちょっと調べてくるわ
- 410 :名無しさん@お腹いっぱい。:2016/01/30(土) 14:56:11.94 ID:RmoOYQCx0.net
- 最近のchromeの更新でflashの表示のされ方がかわったっぽい気がする
以前に作った画像が認識されず、システムの復元で戻したら認識された
- 411 :名無しさん@お腹いっぱい。:2016/01/30(土) 14:58:21.22 ID:t4gyFyGY0.net
- ChromeはFlash内蔵しちゃったからな
- 412 :名無しさん@お腹いっぱい。:2016/01/30(土) 17:12:41.00 ID:TzbPvxq50.net
- 昔からIEが上手く操作できなくて悩んでたんだけど
print IE.document.getElementsByTagName("tr")[2].getElementsByTagName("td")[5].getElementsByTagName("div")[1].style.width);
を
print IE.document.getElementsByTagName("tr").item(2).getElementsByTagName("td").item(5).getElementsByTagName("div").item(1).style.width
って書かないとだめな事をついさっき知った
多分これで今まで挫折したほとんどの操作ができる気がする
これについて勉強したいんだけどどこかに記載ってある?
- 413 :名無しさん@お腹いっぱい。:2016/01/30(土) 17:22:29.38 ID:xqf/0swG0.net
- 最近getElementsByTagNameなんか使ったこと無いわ…
querySelectorばっかり
- 414 :名無しさん@お腹いっぱい。:2016/01/30(土) 19:15:44.12 ID:M5n6V6080.net
- >>412
XPath で記述して展開させたらシンプル
- 415 :名無しさん@お腹いっぱい。:2016/01/30(土) 20:53:56.31 ID:CxNcpNVU0.net
- 最近はじめたのですがUWSCスクリプト編集に最適なおすすめエディタはなんですか?
とりあえずnotepad++を使ってますが「\」が使えのがイマイチだと思ってます
- 416 :名無しさん@お腹いっぱい。:2016/01/30(土) 21:20:46.06 ID:Pytl/RXf0.net
- atom
- 417 :名無しさん@お腹いっぱい。:2016/01/31(日) 00:29:08.15 ID:osD6olzu0.net
- サクラエディタのUWSCキーワードモード
- 418 :名無しさん@お腹いっぱい。:2016/01/31(日) 00:30:58.41 ID:TDN+J1+m0.net
- 標準で関数名に色が付くMeryでいいんじゃね?
つづりで間違って悩んだりもしないだろうし
- 419 :名無しさん@お腹いっぱい。:2016/01/31(日) 00:51:01.33 ID:pVIrtpdo0.net
- >>416-418
ありがとうございます いろいろ試してみます
- 420 :名無しさん@お腹いっぱい。:2016/01/31(日) 06:56:23.26 ID:MAkpvZ6c0.net
- >>403-405,402
ありがとうごさいました
画像を差し替えたところ成功しました
- 421 :名無しさん@お腹いっぱい。:2016/01/31(日) 08:29:30.29 ID:kKfsHKLi0.net
- 質問なのですが、UWSCでサーチエンジンと言うソフトを操作しようと思っても
全く動作してくれません。これは自動化するにあたって、UWSCでは操作ができないアプリもあるということなのでしょうか??
ご教授いただけると幸いです。
- 422 :名無しさん@お腹いっぱい。:2016/01/31(日) 08:38:31.98 ID:sUTMeQpI0.net
- できないアプリもある
- 423 :名無しさん@お腹いっぱい。:2016/01/31(日) 09:35:09.11 ID:/i6usHVb0.net
- >>422
やはりですか、、、それがわかっただけでも得るものは大きいです
- 424 :名無しさん@お腹いっぱい。:2016/01/31(日) 15:04:22.93 ID:W6132sy20.net
- 戻り値が配列になるものを使う場合ってあらかじめ宣言するときは
配列だって明示的に(?)定義しないのね
エラー
dim a[2]
dim b[3][2]
dim i
a = split("a b c")
for i = 0 to 3
b[i] = split("a b c")
next
dim a
dim b[3]
で動く
functionの配列戻しが上手くいかないでしばらく頭抱えてた
- 425 :名無しさん@お腹いっぱい。:2016/01/31(日) 15:20:17.78 ID:cL2tI1rC0.net
- Split()の返値はSafeArrayだから定義するならSafeArray()じゃない?
- 426 :名無しさん@お腹いっぱい。:2016/01/31(日) 19:30:07.95 ID:SGnnlRSc0.net
- >>424
a = split("a b c")
for i = 0 to resize(a)
print a[i]
next
これだけでもうごくみたいだけど・・・どうなの?
- 427 :名無しさん@お腹いっぱい。:2016/01/31(日) 20:05:32.38 ID:W6132sy20.net
- 普段はEXPLICITしてるから
dim a[] = split("a b c")
とかって書いて悩んでた
SafeArrayを定義するときは配列じゃないなんてきいてないよままん
まあ正確には二次元だったのもあって
dim a[3][5]
for i = 0 to n
a[i][] = 関数(i) //←ここ
next
の書き方がわかんなかった
dim a[3]
にすれば通るのねってことで土日が終わった
- 428 :名無しさん@お腹いっぱい。:2016/01/31(日) 20:16:13.80 ID:rJZHZ5Hk0.net
- そうですか
- 429 :名無しさん@お腹いっぱい。:2016/01/31(日) 20:28:40.93 ID:cL2tI1rC0.net
- >>427
>戻値 = SPLIT( 文字列, [区切文字列, 空文字処理フラグ, 数値処理フラグ] )
>戻値
> 作成された一次元配列(SAFEARRAY型)
返値がSafeArrayなのにDIM定義の配列で受けるのがおかしいだろって
遠回しに言ったつもりだったんだけど・・・
- 430 :名無しさん@お腹いっぱい。:2016/01/31(日) 20:48:30.79 ID:W6132sy20.net
- SAFEARRAYとはなんぞやDIMとの違いはって
HELPみてもさっぱり載ってないもんでよくわかんなかったのです
戻値 = SAFEARRAY( [下限, 上限])
↑の定義はどこでするのん?みたいな
- 431 :名無しさん@お腹いっぱい。:2016/01/31(日) 21:06:58.46 ID:RkOVI4vxn
- 気になって見ていたら本当に載ってなくてワロタ
- 432 :名無しさん@お腹いっぱい。:2016/01/31(日) 21:04:45.22 ID:mevx1vWE0.net
- SAFEARRAYはメモリ内での並び順が保証されている配列で宣言したければ普通の変数としてDIMしたら良いだけの話
- 433 :名無しさん@お腹いっぱい。:2016/01/31(日) 22:04:46.46 ID:ymVVdFl90.net
- リファレンス見たり、マクロ記録してコピペして作るクソ汚いコードなら簡単なやりたい事作れるようになってきたんだけど、スッキリした綺麗なコーティングとかは何を勉強すれば出来るようになるの?
- 434 :名無しさん@お腹いっぱい。:2016/01/31(日) 22:28:54.39 ID:h2MIJWcH0.net
- 他人の綺麗なコードを見て弄って真似をする
- 435 :名無しさん@お腹いっぱい。:2016/02/01(月) 00:06:56.18 ID:ODrpB13q0.net
- あとこれ
X = CALCARRAY( split("1 2 3"),CALC_ADD)
が駄目で
a = split("1 2 3")
X = CALCARRAY(a,CALC_ADD)
でないと動かないのもよく分からないです
配列なのかなんなのか
ヘルプ読んでも
<変数>
変数に型はありません(SAFEARRAY型がないとは言ってない)
って感じでわけわかめ
- 436 :名無しさん@お腹いっぱい。:2016/02/01(月) 00:37:00.65 ID:+rnmEAjm0.net
- 変数の名前で後になって困ることが多い
・適当に名づけて似たような変数名があふれてごっちゃに
・名前を決めかねて、後から読むと意味の読み取れない変数名に
・コードをなおしていくうち、当初の意図とは違うコードになり意味が合わなくなる
・コピペしてきたコードなので意味が合わなくなる
こういうのを最初から見越してきちんと決めていくと良いコードになるのかなあ
でも、変数使うときって、思考の中心は「こういうコードを作ろう」だから、
変数名に気を取られると「こういうコードを作ろう」の中身を忘れちゃったりするんだよな
- 437 :名無しさん@お腹いっぱい。:2016/02/01(月) 00:42:55.69 ID:baaBe9/W0.net
- せっかく日本語使えるんだから日本語でつけちゃえばいい
- 438 :名無しさん@お腹いっぱい。:2016/02/01(月) 01:03:00.84 ID:VsiPttLF0.net
- 単純にスコープの管理が甘いと思う
広いスコープの変数なら「何を保持しているのか」が中心にした方が良い
UWSCはクラスのインスタンスを作れないから
オブジェクト指向的に変数を管理し難いのが難点だよね
それでも自分はある程度の規模のスクリプトならクラスを造って変数を管理するけれどね
- 439 :429:2016/02/01(月) 01:45:10.84 ID:+rnmEAjm0.net
- >>438
そういうものがあるのか
関数まとめて別ファイルに入れてこっちで呼び出して……みたいなことやってるからちょうど良さそう
オブジェクト指向と言う名前は聞いたことある、程度の初心者だけど、いい機会だから勉強してみるよ
ありがとう
- 440 :名無しさん@お腹いっぱい。:2016/02/01(月) 02:55:35.27 ID:BoGYQ2nB0.net
- 名前が決まらないのはその目的(責務)が明確になってないのが原因でもある
- 441 :名無しさん@お腹いっぱい。:2016/02/01(月) 08:25:33.84 ID:8RvGbPw20.net
- 未熟な自分では考えてもできなかったのでご教授ください
t=GETTIME()
While True
ifb CHKIMG("A.bmp")
sleep(1.0)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
t=GETTIME()
else
(中略)
ifb CHKIMG("H.bmp")
sleep(1.0)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
t=GETTIME()
else
ifb ((GETTIME()-t)>3) Then
BTN(LEFT,CLICK,100,100,0.5)
t=GETTIME()
endif
(中略)
endif
sleep(0.1)
WEND
これらを実行する時
ifb CHKIMG("A.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
t=GETTIME()
に限り「画像Xがある時のみ行う」としたいのです
全てに対してとするならできたのですが1つ目文に対してのみというのができなくて詰まってしまいました
- 442 :名無しさん@お腹いっぱい。:2016/02/01(月) 09:04:45.92 ID:g7iI5XSU0.net
- if X and A
elseif !A
endif
- 443 :名無しさん@お腹いっぱい。:2016/02/01(月) 09:33:11.94 ID:pZZgy3PS0.net
- ifb CHKIMG("X.bmp") AND CHKIMG("A.bmp")
こんだけのことやんけ
- 444 :名無しさん@お腹いっぱい。:2016/02/01(月) 15:18:36.89 ID:hzvm75kL0.net
- option shortcircuit付けてな
- 445 :名無しさん@お腹いっぱい。:2016/02/01(月) 16:00:59.79 ID:Th0k4/oZ0.net
- 本体のホットキーを使わずに一時停止をやりたいんですけど
こんな感じの関数を随所随所で呼び出すしかないんでしょうか?
PROCEDURE ESC_PAUSE
IF !GETKEYSTATE(VK_ESC) then exit
SLEEP(0.1)
REPEAT
SLEEP(0.1)
UNTIL GETKEYSTATE(VK_ESC)
SLEEP(0.1)
FEND
- 446 :名無しさん@お腹いっぱい。:2016/02/01(月) 16:12:58.29 ID:hzvm75kL0.net
- 使わずにっていうのは、本体の一時停止をやりたくないのか
それとも本体に設定されたホットキー以外のキーで一時停止したいのか
どっち?
- 447 :名無しさん@お腹いっぱい。:2016/02/01(月) 17:12:39.88 ID:Th0k4/oZ0.net
- 本体の一時停止ホットキーは、2つ以上のキーで面倒なのと
スクリプト内でやれば、好みの条件に出来るかなと思いまして
たとえば、マウスカーソルの位置とか
PROCEDURE MOUSE_PAUSE
IF G_MOUSE_X<1000 then exit
Repeat
SLEEP(0.1)
Until G_MOUSE_X<1000
FEND
- 448 :名無しさん@お腹いっぱい。:2016/02/01(月) 17:20:38.17 ID:Th0k4/oZ0.net
- あと、本体の一時停止ホットキーは
本体から動かしてるスクリプトには有効ですが
ランチャー等から起動した別のスクリプトには無効みたいです
- 449 :名無しさん@お腹いっぱい。:2016/02/01(月) 17:38:04.47 ID:PbXPJngC0.net
- >>447
停止処理はSETHOTKEYで呼び出し 停止処理からの復帰は停止処理内でGETKEYSTATE
dim i
sethotkey(VK_A,,"proc_Pause")
while true
i= i+1
fukidasi(i)
sleep(0.5)
wend
procedure proc_Pause()
repeat
sleep(0.5)
until GETKEYSTATE(VK_ESC)
fend
aで処理中断 escで中断からの復帰 中断復帰後は中断時の処理から続いてる事も確認できる
sethotkeyでコードの頭に登録すればそれ以降の処理内で一々中断用のコード書かなくてもいいから保守性も高いよ
- 450 :名無しさん@お腹いっぱい。:2016/02/01(月) 17:41:43.95 ID:hzvm75kL0.net
- UIが無い別プロセスのスクリプトにも有効なのは有効だよ。
ただ、2つ以上のスクリプトが動作してると、キーが消費されちゃうので
連打するとか押しっぱなしにするとかしないと効かない。
あーでも一時停止は連打はダメか。
停止のホットキーは押しっぱなしで全プロセス停止に効く。
本体を一時停止してもいいなら、SETHOTKEYで任意のキーを押した時に
UWSC本体に一時停止のホットキーを送るってのもありかと。
あと停止はループさせるよりMSGBOXとか出す方が便利とは思うが。
- 451 :名無しさん@お腹いっぱい。:2016/02/01(月) 21:11:01.64 ID:Th0k4/oZ0.net
- レス、ありがとうございます
>>449
おぉー、ホットキーを設定するやり方ですか
仮想キー限定のようですが、これはいい方法ですね
>>450
MSGBOXを使うと、解除がちょっと面倒なんで・・・
あと、UWSC本体を起動せず
下記スクリプトをショートカットから実行した場合
一時停止ホットキーは機能しませんでした
for j=1 to 10000
fukidasi(j)
SLEEP(0.5)
next
- 452 :名無しさん@お腹いっぱい。:2016/02/02(火) 07:05:55.13 ID:Mf47p9PS0.net
- >>451
ttp://uproda.2ch-library.com/916238SO2/lib916238.uws
俺はこんな感じでやってる
実際に使うときはウィンドウ指定してアクティブ時にキーチェックしてる
- 453 :名無しさん@お腹いっぱい。:2016/02/04(木) 13:22:20.05 ID:bYNIn2Du0.net
- Google Speech API と組み合わせて音声入力させるものって作れるかなあ?
- 454 :名無しさん@お腹いっぱい。:2016/02/04(木) 14:03:46.64 ID:fyQC3oxA0.net
- すみません、UWSCってこのスレで初めて知ったんですが、業務で利用されてる方いらっしゃいますか?
- 455 :名無しさん@お腹いっぱい。:2016/02/04(木) 15:21:36.98 ID:ja3vwQ+v0.net
- いますよー
- 456 :名無しさん@お腹いっぱい。:2016/02/04(木) 17:34:50.27 ID:cVw67MCx0.net
- 詰まったので質問させて下さい。
現在BluestacksとUWSCを使用して自動マクロを運用しています。
また、離籍時にteamviewerを使用してリモートで操作もしています。
相対座標を使用し、通常は問題なく使えるのですが
teamviewer使用時が問題で、セッション終わり毎にダイアログが発生し、そのせいでループが抜けなくなり手間が増えている状態です。
質問なのですが
id=GETID("Bluestacks App Player","WindowsForms10.Window.")
MOUSEORG(id, MORG_DIRECT)
上記のように指定しても画像検索はできますが座標がおかしくなってまともに動きません。
座標を直接指定しても、画像の場所に直接クリックにしても常に左上の端のみをクリックする状態となっています。
どのように指定をすればいいでしょうか?
- 457 :名無しさん@お腹いっぱい。:2016/02/04(木) 18:42:53.73 ID:Ml8C21Ff0.net
- mouseorgは通用するアプリとしないものがあると何度いわれたらry
- 458 :名無しさん@お腹いっぱい。:2016/02/04(木) 19:06:31.07 ID:zrOVrXZR0.net
- >>456
teamviewer昨日導入したわ。タイムリーな。ツムツムかな?
俺はダイアログ消す方で解消したわ。
UWSCのスケジュールの指定ウィンドウが現れた時で、ダイアログを消すスクリプト登録したらいい感じ。
- 459 :名無しさん@お腹いっぱい。:2016/02/04(木) 19:21:35.52 ID:cVw67MCx0.net
- >>457
ありがとうございます。
自分では通用するのかどうかがわからなかったのと、画像検索はできたので方法があるのかと思い聞いてみました。
申し訳ありませんでした。
>>458
そうだったんですね。
俺は別のゲームです。
プログラミング初心者の為勉強しながらになりますが頑張って組んでみます。
ありがとうございます。
- 460 :名無しさん@お腹いっぱい。:2016/02/04(木) 19:25:47.32 ID:I350w/WA0.net
- >>456
MORG_DIRECTをMORG_CLIENT変える
- 461 :名無しさん@お腹いっぱい。:2016/02/04(木) 21:48:42.30 ID:DIbZWkUk0.net
- BTN(LEFT,CLICK,1200,150,150)
と
BTN(LEFT,CLICK,1000,150,150)
どちらかランダムで一つクリックさせたい場合ってどうやればいいですか?
- 462 :名無しさん@お腹いっぱい。:2016/02/04(木) 21:57:51.63 ID:EqtNr8zt0.net
- ランダムで分岐させたら良い
- 463 :名無しさん@お腹いっぱい。:2016/02/04(木) 22:23:24.65 ID:4BmdWrRw0.net
- >>461
BTN(LEFT,CLICK,1000+RANDOM(2)*200,150,150)
- 464 :名無しさん@お腹いっぱい。:2016/02/04(木) 23:36:39.04 ID:bosOw8Gy0.net
- 整数化しないとひどいことになりそう
- 465 :名無しさん@お腹いっぱい。:2016/02/04(木) 23:42:01.07 ID:EqtNr8zt0.net
- 個人的には速度や短さを競うコードコンテスト以外では
結果的にやりたいことになるコードではなく
やりたいことをそのままコードにした方が良いと考えるかな
メンテで正しく動作しなくなる種になるからね
- 466 :名無しさん@お腹いっぱい。:2016/02/05(金) 00:29:23.88 ID:Gg6PibGB0.net
- >>460
今ってbluestacksをバックグラウンドで動かせるようになったの?
- 467 :名無しさん@お腹いっぱい。:2016/02/05(金) 02:27:59.12 ID:AORidpJX0.net
- >>463
ありがとうございます
- 468 :名無しさん@お腹いっぱい。:2016/02/05(金) 02:37:46.36 ID:/HWKBYw70.net
- プログラミングのプの字も知らないけどUWSCで初挑戦中
画像認識でAの画像が出るまでBの操作を繰り返す
Aが出たらその画像をクリックしてCの操作へ
これはrepeat-untilでいいですか?
- 469 :名無しさん@お腹いっぱい。:2016/02/05(金) 04:19:16.20 ID:i6SfBH8K0.net
- いいよ(´・ω・`)
とにかく自分で書いて試してみるのが上達の近道だよ
あとUWSCの本があるからブックオフで見かけたら買うといいよ
- 470 :名無しさん@お腹いっぱい。:2016/02/05(金) 06:07:19.13 ID:/HWKBYw70.net
- ありがとうございます
色々調べ回って393のような形で処理に成功しました
これを順不同にするにはどうしたらいいでしょうか
a,b,cの画像を出てきた順にクリックしたいとして
repeat
sleep(0.2)
until chkimg("a.bmp")=true or chking("b.bmp")=true or chking("c.bmp")
btn(left,click,g_img_x,g_img_y)
これを3つ羅列するとできると思うんですが
長ったらしくなるのでこれをスマートに収めるにはfor〜nextで挟めば大丈夫でしょうか
- 471 :名無しさん@お腹いっぱい。:2016/02/05(金) 09:15:41.63 ID:YVt32lCs0.net
- ツムツムはMORG_DIRECT使えますか?
- 472 :名無しさん@お腹いっぱい。:2016/02/05(金) 09:18:42.14 ID:AKW1xg3y0.net
- >>460
ありがとうございます。
試してみましたが、バックグラウンドで動くわけではないのですね。
リモートする際はchromeのリモートデスクトップ使用でダイアログに邪魔される事もなくなりましたのでこのまま使用していきます。
- 473 :名無しさん@お腹いっぱい。:2016/02/05(金) 12:28:03.94 ID:/waBKm5O0.net
- >>470
それ一つで動作するが
OPTION SHORTCIRCUITを設定しない標準状態だと
g_img_x,g_img_yの中にchking("c.bmp")の結果しか入らないので
これを設定する
- 474 :名無しさん@お腹いっぱい。:2016/02/05(金) 18:09:16.28 ID:YVt32lCs0.net
- 使えませんでした
- 475 :名無しさん@お腹いっぱい。:2016/02/06(土) 13:49:52.63 ID:E2a0obR10.net
- >>470
散々既出だけど、画像があればクリックしてTRUEを返すCLKIMG関数を自作する。
while true
clkimg(
- 476 :名無しさん@お腹いっぱい。:2016/02/06(土) 13:57:39.57 ID:E2a0obR10.net
- なんかカキコが壊れた。
clickImage uwsc でググると過去スレに自作例が出てくるな。
while true
ifb clickImage("1.bmp") then
//1のクリックに成功した時の処理
endif
ifb clickImage("2.bmp") then
//2のクリックに成功した時の処理
endif
ifb clickImage("3.bmp") then
//3のクリックに成功した時の処理
endif
wend
ごく基本的な構造化なのでまだ早いとかやめてね…
- 477 :名無しさん@お腹いっぱい。:2016/02/06(土) 14:00:17.77 ID:E2a0obR10.net
- クリック後に個別の処理が不要なら clickImage("1.bmp"); clickImage("2.bmp"); clickImage("3.bmp") で済んじゃう
- 478 :名無しさん@お腹いっぱい。:2016/02/06(土) 21:35:39.00 ID:4Jvgc2PX0.net
- かなり初歩的な質問なのですが調べてもあまり分からなかったので質問させて頂きます。
UWSCでログファイルが更新され続ける拡張子がtxtなどのファイルを監視し、目的のログが現れた場合
キーを送信 ってできますでしょうか?
やり方を教えて頂きたいです。
- 479 :名無しさん@お腹いっぱい。:2016/02/06(土) 22:15:37.28 ID:k3CjFpd40.net
- ・日本語をきちんと使えるようにする
・UWSCを勉強する
たったこれだけで実現できるようになるよ
あとは君の努力次第だから頑張ってね
- 480 :名無しさん@お腹いっぱい。:2016/02/06(土) 22:35:58.37 ID:0QAMOn/70.net
- シェアウェア版って結構高いねそれでも業務に使える?一台に一ライセンス必要みたいだけど
- 481 :名無しさん@お腹いっぱい。:2016/02/06(土) 22:47:44.53 ID:sPS5RQrH0.net
- >>480
何度もバカなの?
- 482 :名無しさん@お腹いっぱい。:2016/02/06(土) 22:57:49.59 ID:2YduAXx90.net
- >>478
質問がごちゃごちゃし過ぎで、丸投げしたいようにしか見えない
どのように監視できないのか
どのようにログの検索ができないのか
どのようにキー送信ができないのか
- 483 :名無しさん@お腹いっぱい。:2016/02/07(日) 00:40:38.55 ID:puxzTe8g0.net
- >>456
これに便乗なんだけど
MORG_DIRECTで動作するAndroidのエミュレータってありますか?
- 484 :名無しさん@お腹いっぱい。:2016/02/07(日) 06:08:59.16 ID:I92VPPhw0.net
- uwscって自由すぎて逆に戸惑うことが多くね?
TOTAL = MYCALC(300,400)
//計算結果を出力
PRINT TOTAL
FUNCTION MYCALC(VAL1, VAL2)
ADD = VAL1 + VAL2
RESULT = ADD
FEND
-------------------------------------------------
PRINT MYCALC(300,400)
FUNCTION MYCALC(VAL1, VAL2)
ADD = VAL1 + VAL2
RESULT = ADD
FEND
PRINT文にFUNCUTION関数直接書いても出力されるんだな
- 485 :名無しさん@お腹いっぱい。:2016/02/07(日) 06:13:42.80 ID:mZHgAHcI0.net
- 関数の引数に関数を入れるのは普通
出来ない言語の方が珍しい
- 486 :名無しさん@お腹いっぱい。:2016/02/07(日) 06:14:43.21 ID:oQyphb550.net
- >>481
そう、パかなの。一台に六千円てことは百台で六十万てことでしょ?
exe化したらライセンスフリーってことはexe化したもなのなら配布自由ってことか、配布したPC全部にライセンスいるのかの思ったよ。やっぱり馬鹿だったんだな俺
- 487 :名無しさん@お腹いっぱい。:2016/02/07(日) 07:45:41.55 ID:JTReqb1J0.net
- 気づけてよかったね
- 488 :名無しさん@お腹いっぱい。:2016/02/07(日) 07:48:35.49 ID:TPGZWfB40.net
- 今までで割引キャンペーンとかってやったことある?
やってくれれば買うんだけどな
- 489 :名無しさん@お腹いっぱい。:2016/02/07(日) 12:25:34.39 ID:DbLS0yGv0.net
- 関数の引数に関数を入れる、が関数ポインタとかラムダ式、リスナクラスの話に聞こえてちょっとビックリしたw
- 490 :名無しさん@お腹いっぱい。:2016/02/07(日) 12:30:27.93 ID:UmG8NUOx0.net
- あっしには何を言ってるのかさっぱり
- 491 :名無しさん@お腹いっぱい。:2016/02/07(日) 15:28:50.99 ID:cJXx45gX0.net
- >>487
気付かせてくれてありがとう
- 492 :名無しさん@お腹いっぱい。:2016/02/07(日) 19:18:51.61 ID:I92VPPhw0.net
- >>485
そうなんだ、知らなかった
教本みたいなサイトって丁寧に関数書くから
他人のコード見た時に「なんだこれ!」ってなってびっくりしたわ
ついでに聞きたいんだけどさ
---------------------------------------------------------------
クリック("ボタン")//
FUNCTION クリック(name)
IFB CHKIMG(name + ".bmp",0)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
KBD(VK_a,CLICK)
ENDIF
RESULT
FEND
-------------------------------------------------------------
こうやってCHKIMGの画像ファイル名を関数の引数?を使って好きに変えれるようにしたんだけど
同じようにKBD(VK_a,CLICK)
のVK_aの部分も変えられるように出来ないかね?
- 493 :名無しさん@お腹いっぱい。:2016/02/07(日) 19:28:24.73 ID:mZHgAHcI0.net
- VK_Aとかは定数だから変数に入れたり計算させても大丈夫だよ
例えば VK_A + 1 と VK_B は同じだったりとかね
- 494 :名無しさん@お腹いっぱい。:2016/02/07(日) 19:34:53.46 ID:I92VPPhw0.net
- へー、面白いな
今やってみたら出来たよ
ありがとう
- 495 :名無しさん@お腹いっぱい。:2016/02/07(日) 19:48:58.52 ID:C1KScm550.net
- コードが難読化するからコーディング規約で禁止してるところも多いけどまぁ便利だよね
- 496 :名無しさん@お腹いっぱい。:2016/02/07(日) 20:25:57.04 ID:Op3LiiL10.net
- そもそも関数という形はそういう書き方をするためのものだろう。
受け取るだけの変数を毎回経由するなら戻り値なんて機能は不要だし。
- 497 :名無しさん@お腹いっぱい。:2016/02/08(月) 17:06:48.25 ID:T9ZC/Zyz0.net
- 質問したい
A処理
└B処理
└C処理
という感じの処理があって、これをFUNCTION ABC()にまとめた
ABC(Aへの引数) と書くとCまで行くようになっている
だけどA処理を飛ばしてB処理の部分を利用したいこともある
AB飛ばしてC処理をしたい時もある
そういう場合にABC(0,Bへの引数,0)やABC(0,0,Cへの引数)と書けば処理ができるように作ってみたんだけど
これ以外に簡便なやり方って無いかな?
http://i.imgur.com/TdIP4wY.jpg
------------------------------
FUNCTION ABC(Aへの引数,Bへの引数,Cへの引数,戻り値)
RESULT = False
|IFB !Aへの引数=0
| (A) 処理
|ELSE
| |IFB !Aへの引数=0
| | (B) Aの値を継承して処理
| |ELSE
| | (B') Bへの引数を使って処理
| | |IFB !Aへの引数=0
| | | (C) Bの値を継承して処理
| | |RESULT = True
| | |ELSEIF Aへの引数=0 and !Bへの引数=0
| | | (C') B'の値を継承して処理
| | |RESULT = True
| | |ELSEIF Aへの引数=0 and Bへの引数=0
| | | (C'') Cへの引数を使って処理
| | |RESULT = True
| | |ELSE
| | |RESULT = False
| | |ENDIF
| |ENDIF
|ENDIF
FEND
------------------------------
- 498 :名無しさん@お腹いっぱい。:2016/02/08(月) 17:56:33.03 ID:uvOD7Pon0.net
- 引数以外の継承したい変数をPUBLICにするとか参照渡しにして
ABC各処理を別関数に
関数A
関数B
関数C
ABC全部処理する関数ABC
BとCだけ呼ぶ関数BC
みたいに呼べばいいんでないの
- 499 :名無しさん@お腹いっぱい。:2016/02/08(月) 17:58:10.02 ID:657cwzrg0.net
- ・継承という用語はプログラミングにおいて特別な意味を持つので別の表現を使うべし。
・サンプルプログラムの条件分岐に既に無意味な部分がありどうしたいのかが読み取れない。
今の状態だと7,11-12行目は絶対に実行されない。
・引数第4項が戻り値であるにもかかわらずvar宣言がない、関数内でも使われていない。
実行され得ない部分を削って最適化するとこんな感じ。やっぱり意図がわからない。
FUNCTION doABC(Aへの引数, Bへの引数, Cへの引数)
RESULT = False
IFB !Aへの引数=0
doA(Aへの引数)
ELSE
doB(Bへの引数)
IFB !Bへの引数=0
doC(Bへの引数)
ELSE
doC(Cへの引数)
ENDIF
RESULT = True
ENDIF
FEND
- 500 :名無しさん@お腹いっぱい。:2016/02/08(月) 17:58:53.91 ID:657cwzrg0.net
- 要件ベースでまとめると、
(1) Aへの引数のみ指定すると、doA(Aへの引数), doB(Aへの引数), doC(Aへの引数) の順で実行
(2) Bへの引数のみ指定すると、doB(Bへの引数) のみ実行
(3) Cへの引数のみ指定すると、doC(Cへの引数) のみ実行
解1
関数 doA(paramA), doB(paramB), doC(paramC) を定義し、
関数 doABC(paramABC) 内で上記関数を使用する。
(1)はdoABC(Aへの引数) , (2)はdoB(Bへの引数) , (3)はdoC(Cへの引数) を実行する。
解2
各ケースをあくまで一つの関数にまとめ、引数の指定の仕方のみで制御したい場合。
PROCEDURE doABC(Aへの引数, Bへの引数, Cへの引数)
RESULT = False
IFB !Aへの引数=0
doA(Aへの引数); doB(Aへの引数); doC(Aへの引数)
ELSE
IFB !Bへの引数=0
doB(Bへの引数)
ELSEIF !Cへの引数=0
doC(Cへの引数)
ENDIF
ENDIF
FEND
メリットは特に無い。
- 501 :名無しさん@お腹いっぱい。:2016/02/08(月) 18:43:19.51 ID:T9ZC/Zyz0.net
- >>498-500
ありがとう
>>500
ごめんなさい、勘違いしてた
関数の中に関数入れて呼び出すとエラーになる気がしてたけど違ったみたい
素直に解1の方法でやります
- 502 :名無しさん@お腹いっぱい。:2016/02/08(月) 19:45:49.25 ID:y9zJENvU0.net
- hashtbl lists
lists["あ"] = "a10 a20 a30"
lists["い"] = "b100 b200"
lists["う"] = "c1 c2 c3 c4"
//上記の場合3*2*4=24通りの全組み合わせを出力するprintCombination
//あ=a10, い=b100, う=c1
//・・・
//あ=a30, い=b200, う=c4
printCombination(lists)
procedure printCombination(lists[])
product = 1
for key in lists
product = product * length(split(lists[key]))
next
for i = 0 to product - 1
q = i
hashtbl outHash
for key in lists
values = split(lists[key])
r = q mod length(values)
q = int(q / length(values))
outHash[key] = key + "=" + values[r]
next
print join(outHash, ", ")
next
fend
- 503 :名無しさん@お腹いっぱい。:2016/02/08(月) 19:54:28.61 ID:y9zJENvU0.net
- 質問です
printCombinationという関数を書いてみたんですが、
もっとスマートな方法ないでしょうか?
やりたいことはコメントに書いてあるとおりです
すべての組み合わせを出力したい(もちろん別の組み合わせでも動くような感じで)
- 504 :名無しさん@お腹いっぱい。:2016/02/08(月) 20:28:28.46 ID:KECwy5hV0.net
- これじゃいかんのか?
DIM ary1[2] = "a10","a20","a30"
DIM ary2[1] = "b100","b200"
DIM ary3[3] = "c1","c2","c3","c4"
for a1 in ary1
for a2 in ary2
for a3 in ary3
print a1 + a2 + a3
next
next
next
どうしてもハッシュ使いたいなら上の三行で配列宣言したあとにハッシュリストからsplit使って配列にぶっこめばええんちゃうん
- 505 :名無しさん@お腹いっぱい。:2016/02/08(月) 22:06:55.05 ID:7q7uQHpo0.net
- 帰宅中に松屋で飯食いながら考えた。
hashtbl lists
lists[
- 506 :名無しさん@お腹いっぱい。:2016/02/08(月) 22:09:05.76 ID:7q7uQHpo0.net
- 帰宅中に松屋で飯食いながら考えた。
hashtbl lists
lists["あ"] = "a10 a20 a30"; lists["い"] = "b100 b200"; lists["う"] = "c1 c2 c3 c4"
const SPLT_V = " "; const SPLT_R = "<#CR>"; const SPLT_C = ", "
print structCombinationCSV(lists, 1)
function structCombinationCSV(lists[], curLv)
key = lists[curLv-1, HASH_KEY]
curRows = split(lists[curLv-1, HASH_VAL], SPLT_V)
combinationCSV = ""
ifb curLv >= length(lists) then
for curIdx=0 to length(curRows)-1
combinationCSV = combinationCSV + key + "=" + curRows[curIdx] + SPLT_R
next
else
childRows = split(structCombinationCSV(lists, curLv+1), SPLT_R)
for curIdx=0 to length(curRows)-1
for childIdx=0 to length(childRows)-1
combinationCSV = combinationCSV + key + "=" + curRows[curIdx] + SPLT_C + childRows[childIdx] + SPLT_R
next
next
endif
result = combinationCSV
fend
っしゃぁ!
- 507 :名無しさん@お腹いっぱい。:2016/02/08(月) 22:29:31.74 ID:kO8wU/DR0.net
- 500 Internal Server Error
- 508 :名無しさん@お腹いっぱい。:2016/02/09(火) 00:41:55.44 ID:l/ELWwG70.net
- 複雑すぎワロタ
- 509 :名無しさん@お腹いっぱい。:2016/02/09(火) 10:19:05.55 ID:dxLnf7NN0.net
- 松屋で飯食いながら仕事ができるタイプか
- 510 :名無しさん@お腹いっぱい。:2016/02/09(火) 12:33:29.38 ID:qpHYw0y/0.net
- すげえレベル高いな
- 511 :名無しさん@お腹いっぱい。:2016/02/09(火) 12:40:47.60 ID:kzjhglVU0.net
- えっ!?あのお客さん…ウチで飯食いながらコーディングしてる!?
- 512 :名無しさん@お腹いっぱい。:2016/02/09(火) 12:47:42.64 ID:XfpXz+/C0.net
- >>504
それだと関数化するとき困るんじゃね?
ary2までしかないときは動かないし
ary4まであってもちゃんと動かない
- 513 :名無しさん@お腹いっぱい。:2016/02/09(火) 17:31:23.26 ID:FV1/KP6n0.net
- >>506 は入れ子になってるくり返しで使われる再帰処理だね。
再帰を終わらす終了条件が最初あって、次にやりたい事ってふうに見ると分かる。
- 514 :名無しさん@お腹いっぱい。:2016/02/09(火) 18:04:46.21 ID:+8zDwgB90.net
- そっか項目数だけじゃなく要素数も変わるのか なら関数化するならこんな感じかな
//配列組み合わせ生成関数 戻り値は配列を返す
FUNCTION fnc_ArryComb(strarry[])
DIM tmpstr[0],tmp //文字列
DIM i,j,k,l,m=0,tmpcount = 1,maxcount = 1,preCount = 1 //整数
CONST cnt_SPLSTR = ","
for i = 0 to LENGTH(strarry) - 1
maxcount =maxcount * LENGTH(SPLIT(strarry[i],cnt_SPLSTR))
next
resize(tmpstr,maxcount-1) //結果格納用の変数を引数に合わせてリサイズ
m=0;i=0 //未使用再利用変数の初期化
repeat //順列組み合わせの作成
tmpcount = 1
for l = m to LENGTH(strarry) - 1
tmpcount = tmpcount * LENGTH(SPLIT(strarry[l],cnt_SPLSTR))
next
for l = 1 to maxcount / tmpcount
for tmp in SPLIT(strarry[i],",")
for j = 0 to tmpcount / LENGTH(SPLIT(strarry[i],cnt_SPLSTR)) - 1
tmpstr[k] = tmpstr[k] + " " + tmp
k=k+1
next
next
next
m=m+1;k=0;i=i+1 //カウンターの整理
until i >= LENGTH(strarry)
result = slice(tmpstr,0,maxcount-1)
fend
//関数ここまで
- 515 :名無しさん@お腹いっぱい。:2016/02/09(火) 18:06:08.69 ID:+8zDwgB90.net
- 関数Callのサンプルはこんなかんじ
//関数の呼び出し部
hashtbl lists
DIM strarry[0]
DIM i
//ここで入力する項目数を増やしたりlistsの要素数を増やしたり減らしたりする
lists["あ"] = "a10,a20,a30"; lists["い"] = "b100,b200"; lists["う"] = "c1,c2,c3";lists["ぼんば"] = "d1,d2,d3"
resize(strarry,length(lists)-1) //ハッシュの要素数で配列をリサイズ
for i= 0 to length(lists) - 1
strarry[i]=lists[i,HASH_VAL]
next
fukidasi(join(fnc_ArryComb(strarry),"<#CR>"))
msgbox("終わり")
//呼び出し部ここまで
- 516 :名無しさん@お腹いっぱい。:2016/02/09(火) 19:17:28.30 ID:GXdSKXvs0.net
- 自作関数って引数を設定した場合、引数の数を合わせないと「引数の数が合いません」ってエラー出るけれど
""を使えば引数を省略できるのか
chkimgみたいなデフォルト関数は引数省略できるからどうやるのかなーってずっと悩んでたわ
UWSC: 引数を省略できる関数をつくる
http://blogs.yahoo.co.jp/nullpage_vwxyz/52255157.html
- 517 :名無しさん@お腹いっぱい。:2016/02/09(火) 19:24:17.43 ID:4bdWm2Pw0.net
- 引数の省略はデフォルト値を関数宣言時に代入しているか否かだ
関数の呼び出し時に変数を使用しているが場合によってはデフォルト値にしたい時はEMPTY(定数)を代入する
- 518 :名無しさん@お腹いっぱい。:2016/02/09(火) 19:29:44.25 ID:+8zDwgB90.net
- ""てかデフォルト値であればtrueでも1でもなんか指定してあげればいいだけね
ただまぁプロ版使ってるけどこんな関数用意して
procedure procsmp(t=true,m=1,n="オイヨイヨ")
t=false
fend
こんな感じで呼ぶと
procsmp(,,"へい")
デバッガでは通るのにスクリプトファイルをUWSCで実行するとsyntaxエラー出たりと
環境で動作変わるからあんま使わない方が良いと思ってる
- 519 :名無しさん@お腹いっぱい。:2016/02/09(火) 19:34:33.12 ID:GXdSKXvs0.net
- なんでもいいのか
- 520 :名無しさん@お腹いっぱい。:2016/02/09(火) 19:59:33.20 ID:p4ai4XIh0.net
- >>514-515
この方法もいいね。予め全体サイズを把握してからトップダウンで計画的に構築する感じだね。
- 521 :名無しさん@お腹いっぱい。:2016/02/09(火) 20:25:23.95 ID:+8zDwgB90.net
- 2chは改行制限のおかげでどうやって可読性上げつつコンパクト化するか必死で考えるから質問に答えるだけで色々勉強になるのよね
今回はslice関数をうまいこと使えたので良かった カウンター使い過ぎだけど
- 522 :名無しさん@お腹いっぱい。:2016/02/10(水) 07:52:47.08 ID:Z7PL/WtA0.net
- 例示された処理方法よりも長いし遅くなってないか?
- 523 :名無しさん@お腹いっぱい。:2016/02/10(水) 08:45:28.77 ID:+W75uBK+0.net
- つか質問者のコードが素手にかなりスマートなのに
もっとスマートって要求だから釣りなんだろうなw
- 524 :名無しさん@お腹いっぱい。:2016/02/10(水) 09:04:15.50 ID:MxWBE2100.net
- 2進数表記で 111 なら処理三つ 011なら処理二つ みたいなの
- 525 :名無しさん@お腹いっぱい。:2016/02/10(水) 10:37:39.26 ID:R/okCavp0.net
- http://www.nminoru.jp/~nminoru/programming/bitcount.html
- 526 :名無しさん@お腹いっぱい。:2016/02/10(水) 11:26:49.90 ID:wTSkFc930.net
- phpならarray_shift使ってかなり短くできたがUWSCで組めない
- 527 :名無しさん@お腹いっぱい。:2016/02/10(水) 12:19:18.86 ID:mXr4GQ/h0.net
- 悩みようがないだろ
コード書いてみろ
添削してやんよ
- 528 :名無しさん@お腹いっぱい。:2016/02/10(水) 12:25:07.38 ID:wTSkFc930.net
- 添削というか、移植してくれ。sliceとか使うのかな
$lists["あ"] = "a10 a20 a30";
$lists["い"] = "b100 b200";
$lists["う"] = "c1 c2 c3 c4";
print implode("<br>\n",(combi($lists)));
function combi($lists){
$l_cur = array_shift($lists);
$l_cur_arr = explode(" ",$l_cur);
if(count($lists)>0){
while($l_cur_1 = array_shift($l_cur_arr)){
foreach(combi($lists) as $extra){
$res[] = $l_cur_1." ".$extra;
}
}
}else{
return explode(" ",$l_cur);
}
return $res;
}
- 529 :名無しさん@お腹いっぱい。:2016/02/10(水) 12:45:52.49 ID:R/okCavp0.net
- そっちかよw
- 530 :名無しさん@お腹いっぱい。:2016/02/10(水) 12:54:34.10 ID:wTSkFc930.net
- すまぬ499をベースにやろうとしてみたけど
5行目で「listsが定義されていません」エラーになる理由がもうわからない
UWSCの配列もよく分からない
hashtbl lists
lists["あ"] = "a10 a20 a30";
lists["い"] = "b100 b200";
lists["う"] = "c1 c2 c3 c4"
print combi(lists)
function combi(lists)
res = ""
l_cur = lists[0]
SHIFTARRAY(lists,-1);
l_cur_arr = split(l_cur," ");
if length(lists)>0 then
while length(l_cur_arr)>0
l_cur_1 = l_cur_arr[0]
SHIFTARRAY(l_cur_arr,-1)
for extra in combi(lists)
res = res + l_cur_1+" "+extra+"<#CR>"
next
wend
else
result = l_cur_arr
endif
result = res
fend
- 531 :名無しさん@お腹いっぱい。:2016/02/10(水) 14:26:42.18 ID:Lx2sic3p0.net
- >>530
関数定義の方の変数が配列として定義されてないから
- 532 :名無しさん@お腹いっぱい。:2016/02/10(水) 17:16:00.23 ID:cNgK9kX70.net
- 連想配列を、多次元で使うのは無理ですか?
可能であれば、方法を教えてください
- 533 :名無しさん@お腹いっぱい。:2016/02/10(水) 19:45:44.31 ID:CFiYTXoe0.net
- http://www.dotup.org/uploda/www.dotup.org733222.txt.html
少し長いのでうpろだに上げましたm(_ _"m)
質問です。
おそらくこの〜〜〜〜部分に稀に出てくる画像があるのですが、
処理をどう書いたら稀に出てくる画像を検出して押してループ出来ますかね?
そして出ないときはスルーしてループしてくれると良いのですが....
中々調べてもパッとしたものが出てこないので困ってます...
- 534 :名無しさん@お腹いっぱい。:2016/02/10(水) 22:49:09.18 ID:UdxSvPdk0.net
- >>533
質問の趣旨が今一つかめないけどCASE1〜8の処理をループさせながら定期的に特定の画像をチェックしたいってことでいいのかな
それならとりあえず全ケース文の先頭にその稀に出現する画像をチェックする処理入れればいいのでは
ただこれだけそっくりな処理をケース分けするなら状態遷移用のパラメータ持たせた配列用意して回した方がすっきりするね
- 535 :名無しさん@お腹いっぱい。:2016/02/10(水) 22:55:35.86 ID:UdxSvPdk0.net
- >>533
とりあえずこんな感じ? 細かい部分は適当なので後は自分でいじって
dim tmpstr
dim def_StateParam[8]
dim VWS = 1
def_StateParam[1] = "CASE1,400,200,0,30,1.5,画像9.bmp,1,1,0"
def_StateParam[2] = "CASE2,400,200,0,30,1.5,画像2.bmp,2,1,0"
def_StateParam[3] = "CASE3,400,200,0,30,1.5,画像3.bmp,3,1,0"
def_StateParam[4] = "CASE4,400,200,0,30,1.5,画像4.bmp,4,1,0.1"
def_StateParam[5] = "CASE5,400,200,0,30,1.5,画像4.bmp,5,1,0"
def_StateParam[6] = "CASE6,400,200,0,30,1.5,画像4.bmp,6,1,0"
def_StateParam[7] = "CASE7,400,200,0,30,1.5,画像4.bmp,7,1,0"
def_StateParam[8] = "CASE8,400,200,0,30,1.5,画像5.bmp,8,1,0"
while true
tmpstr = split(def_StateParam[VWS],",")
fukidasi(tmpstr[0],val(tmpstr[1]),val(tmpstr[2]),val(tmpstr[3]),val(tmpstr[4]),,,)
SLEEP(val(tmpstr[5]))
fukidasi()
//ここに稀に出現する画像をチェックする処理を書く
IF VWS = 4 THEN
WHILE (CHKIMG(tmpstr[6])=FALSE)
SLEEP(val(tmpstr[9]))
WEND
ENDIF
IFb Chkimg(tmpstr[6]) Then
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
VSW = val(tmpstr[7])
ELSE
VSW = val(tmpstr[8])
ENDIF
wend
- 536 :名無しさん@お腹いっぱい。:2016/02/10(水) 23:00:18.61 ID:UdxSvPdk0.net
- まちがった こっちで
dim tmpstr, def_StateParam[8], VWS = 1
def_StateParam[1] = "CASE1,400,200,0,30,1.5,画像9.bmp,1,1,0"
def_StateParam[2] = "CASE2,400,200,0,30,1.5,画像2.bmp,2,1,0"
def_StateParam[3] = "CASE3,400,200,0,30,1.5,画像3.bmp,3,1,0"
def_StateParam[4] = "CASE4,400,200,0,30,1.5,画像4.bmp,4,1,0.1"
def_StateParam[5] = "CASE5,400,200,0,30,1.5,画像4.bmp,5,1,0"
def_StateParam[6] = "CASE6,400,200,0,30,1.5,画像4.bmp,6,1,0"
def_StateParam[7] = "CASE7,400,200,0,30,1.5,画像4.bmp,7,1,0"
def_StateParam[8] = "CASE8,400,200,0,30,1.5,画像5.bmp,8,1,0"
while true
tmpstr = split(def_StateParam[VWS],",")
fukidasi(tmpstr[0],val(tmpstr[1]),val(tmpstr[2]),val(tmpstr[3]),val(tmpstr[4]),,,)
SLEEP(val(tmpstr[5]))
fukidasi()
//ここに稀に出現する画像をチェックする処理を書く
IF VWS = 4 THEN
WHILE (CHKIMG(tmpstr[6])=FALSE)
SLEEP(val(tmpstr[9]))
WEND
ELSE
IFb Chkimg(tmpstr[6]) Then
MMV(G_IMG_X, G_IMG_Y)
BTN(LEFT,CLICK)
VSW = val(tmpstr[7])
ELSE
VSW = val(tmpstr[8])
ENDIF
ENDIF
wend
- 537 :名無しさん@お腹いっぱい。:2016/02/11(木) 01:00:59.88 ID:2xnip+Tc0.net
- せめて構造体が使えればねぇ
- 538 :名無しさん@お腹いっぱい。:2016/02/11(木) 01:02:56.58 ID:PFox1uTL0.net
- もしかしてselect処理毎に稀の画像チェックしたいけどselendの前に書いちゃって
毎回通らなくてうまくいかないよ!っていうことだったりするのかな?
- 539 :名無しさん@お腹いっぱい。:2016/02/11(木) 01:21:45.52 ID:0c+JQyo+0.net
- classで構造体っぽい物は作れるけど複数のインスタンス持てるわけでもないしあんま意味ないのがな
- 540 :名無しさん@お腹いっぱい。:2016/02/11(木) 02:19:21.45 ID:ZBhxJU1k0.net
- PowerShell ではクラスを扱えるけど、クラスを作れなかったと思う。
UWSC も、クラスのデータを他言語から受け取って接着剤みたいに使えばいいんじゃね?
- 541 :526:2016/02/11(木) 03:35:07.99 ID:b+3w0CHx0.net
- UWSC使い始めてまだ2日目で色々酷くてすみません( ;∀;)
やりたいこととして無限ループを行い、ゲーム内の画像を検出してクリックして放置が
できるようにしたかったのですが、先述の通り稀に押さないと進めない物が出てきまして、それのせいでCASE1に飛ばされてしまい
マクロが止まるという事態が起きてました。
- 542 :名無しさん@お腹いっぱい。:2016/02/11(木) 03:39:32.11 ID:b+3w0CHx0.net
- >>534
527さんの解釈で合ってます!
色々検索したり、知恵袋使って質問していたのですがその仕組みが作れませんでした...
>>536
529さんのが自分からすると高度すぎてよく分からない状態です( ;∀;)
- 543 :名無しさん@お腹いっぱい。:2016/02/11(木) 04:06:02.47 ID:BAwW+2D70.net
- エフェクトや透過処理等で素材画像とは完全一致しないケースがある
クリックはあくまでイベントを送ってみようとするだけで溢れる可能性がある
次のループに入ってクリックをキャンセルしまったり
やり直しが出来ない重要なクリックの場合は
クリックを受け付けたか何らかの方法で確認しないと安定しなかったりする
動く時と動かない時があるのは大抵この辺
- 544 :名無しさん@お腹いっぱい。:2016/02/11(木) 04:17:43.34 ID:TCAo9itq0.net
- 始めて2日の>>541に>>536見せても意味理解できないんじゃないかなあ
プログラム初心者とは書いてないけれど、どうなんだろう
始めて2週間の俺が低レベルなプログラムを書いてみる
WHILE !GETKEYSTATE(VK_ESC)
REPEAT
IFB CHKIMG("画像9.bmp")
BTN(LEFT,CLICK)
ELSE
BREAK
ENDIF
IFB CHKIMG("画像2.bmp")
BTN(LEFT,CLICK)
ELSE
BREAK
ENDIF
・
・
・
UNTIL FALSE
WEND
ん? これでよくね?
見つからない場合にBREAKすれば最初に戻るんだろ?
- 545 :名無しさん@お腹いっぱい。:2016/02/11(木) 12:23:32.74 ID:z++B2lkF0.net
- >>544
状態遷移を省いちゃダメでしょ
- 546 :521:2016/02/11(木) 13:16:17.89 ID:okUdFipF0.net
- >>502のやついまさらで「あ・い・う」も略しちゃってるけどやっと一応できた
配列の順次追加・戻り値・shiftに苦労したが勉強になって楽しかった
空の配列宣言が分からなくて if ref[0]<>""とか不恰好なのが入ってる
dim res[] = ""に代わる中身0の配列宣言分かりましたら教えてください
行数も構造もあまり499と代わらなくなっちゃったかな
dim lists[] = "a10 a20 a30","b100 b200","c1 c2 c3 c4"
print join(combi(lists),"<#CR>")
function combi(lists[])
dim res[] = ""
l_cur = lists[0];
lists_s = slice(lists,1,length(lists)-1)
l_cur_arr = split(l_cur," ")
if length(lists_s)>0 then
while length(l_cur_arr)>0
l_cur_1 = l_cur_arr[0]
l_cur_arr = slice(l_cur_arr,1,length(l_cur_arr)-1)
for extra in combi(lists_s)
if res[0]<>"" then Resize(res,length(res))
res[length(res)-1] = l_cur_1+" "+extra+""
next
wend
result = slice(res,0,length(res)-1)
else
result = l_cur_arr
endif
fend
- 547 :名無しさん@お腹いっぱい。:2016/02/11(木) 13:26:13.37 ID:IFP6rTWM0.net
- emptyとかvartypeとかそういう話でなく?
- 548 :名無しさん@お腹いっぱい。:2016/02/11(木) 13:32:44.65 ID:okUdFipF0.net
- >>547
ごめんよく分からない。多分違うかな
dim res[] = ""の部分の時点でlength 1 になっちゃうから
length 0 の状態で宣言できるとそこは解決だと思うのだが
- 549 :名無しさん@お腹いっぱい。:2016/02/11(木) 14:11:26.72 ID:PFox1uTL0.net
- >>542
単純に書くならこうなる
while 1
if chkimg("稀?")
elseif chkimg("9?")
elseif chkimg("2?")
elseif chkimg("3?")
endif
sleep(3)//?
wend
VSWでの全体の管理が必要なのかも怪しい
VSWに捕らわれすぎてやりたいことが出来なくなってる可能性もある
まぁそれぞれの画像の条件(出方・消え方)がいまいちわからないから・・・
- 550 :名無しさん@お腹いっぱい。:2016/02/11(木) 19:58:05.91 ID:RBcXi3Gt0.net
- 教えて下さい。
このソフトを使ってExcelシートに入力されている値を別の計算ソフトへ
自動で入力するというようなことはできますか?
- 551 :名無しさん@お腹いっぱい。:2016/02/11(木) 20:29:19.42 ID:WYFXkEVH0.net
- http://www.dotup.org/uploda/www.dotup.org734791.zip.html
- 552 :名無しさん@お腹いっぱい。:2016/02/11(木) 21:05:25.66 ID:z8n8XQ1d0.net
- >>524
msgbox(bitcount(7)) //3
msgbox(bitcount(3)) //2
function bitcount(n)
if n<>0 then result=result+n mod 2+bitcount(int(n/2))
fend
- 553 :名無しさん@お腹いっぱい。:2016/02/12(金) 00:04:53.83 ID:k6qMW81B0.net
- 素人でこの言語最近知ったんだが、これ最強の言語じゃね?なんであまり知られてないの?
- 554 :名無しさん@お腹いっぱい。:2016/02/12(金) 00:12:52.00 ID:9BztTFw/0.net
- いや、言語っていうか・・・
- 555 :名無しさん@お腹いっぱい。:2016/02/12(金) 00:45:52.84 ID:ywMkiNaR0.net
- >>553
素人判断はやめましょう
- 556 :名無しさん@お腹いっぱい。:2016/02/12(金) 00:51:12.45 ID:GKVk0beF0.net
- ゲームを自動化すると楽しく学べるね(´・ω・`)
- 557 :名無しさん@お腹いっぱい。:2016/02/12(金) 00:54:49.48 ID:8lgU0Jr00.net
- やっちゃいけない領域な気がするけどね!
- 558 :名無しさん@お腹いっぱい。:2016/02/12(金) 01:26:26.97 ID:g/t37I2b0.net
- 言語というよりも録画再生機能が好き
- 559 :名無しさん@お腹いっぱい。:2016/02/12(金) 08:54:55.690943 ID:k6qMW81B0.net
- いや、本当に素人でもブラウザとソフトウェアの自動連携を作れるってのはすごいと思うんやけど。なんで知られてないん?
- 560 :名無しさん@お腹いっぱい。:2016/02/12(金) 08:56:56.102247 ID:4JLZMnR80.net
- お前の類友が無知だからかな
- 561 :名無しさん@お腹いっぱい。:2016/02/12(金) 10:04:21.88 ID:i4qbzSJ40.net
- 時間どうなってんのそれ
- 562 :名無しさん@お腹いっぱい。:2016/02/12(金) 13:27:19.60 ID:cKYrB2r90.net
- >>549
元コード見るとすべてのステージで異なる画像を判別に使用してるわけじゃないから無理じゃね
画像4チェックのときだけケース分けするにしてもそれなら一括でステージ管理したほうがよさげ
- 563 :名無しさん@お腹いっぱい。:2016/02/12(金) 15:17:28.05 ID:8lgU0Jr00.net
- >>562
不明な点が多すぎて基本的なやつになった
- 564 :名無しさん@お腹いっぱい。:2016/02/12(金) 16:30:11.66 ID:cKYrB2r90.net
- >>546
UWSCで空配列は宣言できないからslice関数を使って普通の変数に入れる
初期値指定みたいに文字列使いたい場合はsplit関数も組み合わせる
DIM x = slice(SPLIT("a,b,c,d",","))
print x[2]
x=slice(SPLIT("e,f,g,h,i,j",","))
print x[2]
DIM y = slice(SPLIT("w,x,y,z",","))
DIM z = slice(y)
print z[2]
これ使えばよくある空配列の宣言に近いことはできる
- 565 :名無しさん@お腹いっぱい。:2016/02/12(金) 16:42:46.02 ID:cKYrB2r90.net
- >>546
もちろんslice関数での変数x初期化前にlength(x)すると0は返ってくるけど
単純にxの文字列長が返ってきてるだけで要素数では無い点には注意が必要
戻値的には同じだから十分使えるけどね
- 566 :名無しさん@お腹いっぱい。:2016/02/12(金) 17:09:37.34 ID:UbZzXFO50.net
- >>564
おー、ありがとう
>>564を直接どう使えばいいか分からなかったけど
(「変数x初期化前にlength(x)すると0は返ってくる」てのがどういう状態の時か分からず)
>>546の宣言部分を DIM res = slice(SPLIT("",",")) と
空文字列のsliceから取得したらlength 0で宣言できた
あとはphpと同じようにshiftarrayの戻り値としてあふれた値取得できたり
式ひとつで配列に値を追加できるとかなりシンプルに出来るんだが
そこはUWSCの仕様ってことであきらめるしかなさそうかな〜
- 567 :名無しさん@お腹いっぱい。:2016/02/12(金) 17:20:03.48 ID:cKYrB2r90.net
- >>566
言い方悪かった
>変数x初期化前にlength(x)すると0は返ってくる
DIM x //初期値を与えない
print length(x) //xの文字列長0が返る
x = slice(SPLIT("a,b,c",","))
length(x) //x[]の要素数の3が返る
って意味だったんだけど確かに宣言時に slice(SPLIT("",",")) で初期値設定しておいたほうが
後からコード見たとき変数の用途が解りやすくていいね
使わせてもらいます
- 568 :名無しさん@お腹いっぱい。:2016/02/12(金) 17:32:07.53 ID:bdQKZ6P80.net
- 長さ0のsafearrayはこれで作れる
safearray(0,-1)
- 569 :名無しさん@お腹いっぱい。:2016/02/12(金) 17:37:10.80 ID:ckS+rd0L0.net
- phpはデフォで色々な関数が用意されてるだけなんだから
array_shiftと同じ関数を自作すりゃいい
- 570 :名無しさん@お腹いっぱい。:2016/02/12(金) 17:42:19.65 ID:UbZzXFO50.net
- >>567
なるほど> DIM x
しかしそれだとその後のResizeで「配列ではありません」エラーになっちゃうな
いずれにしても宣言わかってよかったですありがとう
1行での配列の追加もその線で出来ないかと
res = slice(split(join(res,","),",")) とトリッキーにやってみたが上手く行かず
もし出来たらまた貼らせていただくかも
>>568
おー、ほんとだスッキリ
>>569
元の配列操作しつつ戻り値も得るって出来るのかな?
- 571 :名無しさん@お腹いっぱい。:2016/02/12(金) 19:27:59.43 ID:k6qMW81B0.net
- ブラウザ操作する場合、uwscとエクセルvbaはどちらがいいの?同じ?
それなら、ページが多いエクセルの方が良くね。
- 572 :名無しさん@お腹いっぱい。:2016/02/12(金) 19:32:42.63 ID:dphmFixd0.net
- COM操作で解決する範囲の自動化なら同じなので自分が使いやすい方でやれば良いのです
- 573 :名無しさん@お腹いっぱい。:2016/02/12(金) 19:53:59.16 ID:i4qbzSJ40.net
- alert窓 を閉じるのは VBA では基本的に出来ないと思う。
でも、出ることが分かってる「ファイルを保存する」ダイアログは
SendKeys でコントロールできるらしい。
- 574 :名無しさん@お腹いっぱい。:2016/02/13(土) 01:10:16.19 ID:smbIwZzf0.net
- UWSCでクワインとなるソースコードを教えてください
なるべく最短で、出力はmsgboxでお願いします
- 575 :名無しさん@お腹いっぱい。:2016/02/13(土) 01:15:32.21 ID:hFFChm3k0.net
- 誰かがそれを出してもwikiとかに追記に行くなよ
- 576 :名無しさん@お腹いっぱい。:2016/02/13(土) 09:26:54.53 ID:7eVjLkIC0.net
- MOUSEORG(id,0)
if chkimgx(img_name, id) then btn(left, click, G_IMGX_X, G_IMGX_Y)
これだと画像より少し左上にずれてクリックする
修正して使ってきたがこれってしかたないのか?
- 577 :名無しさん@お腹いっぱい。:2016/02/13(土) 14:16:58.30 ID:9elgN/hL0.net
- statusでウィンドウの幅と高さとクライアント幅とクライアント高さ
この辺が違ってたらその可能性もある
- 578 :名無しさん@お腹いっぱい。:2016/02/13(土) 18:52:01.69 ID:abY5DV330.net
- >>576
使用した画像の一番左上を原点とするからだよ
だから何も指示しないと左上に行く
- 579 :名無しさん@お腹いっぱい。:2016/02/13(土) 19:32:42.79 ID:AtiKTq4d0.net
- 569の言う左上って画像の中心より左上って意味なのか?
画像の左上角より左上なのかと思った
- 580 :名無しさん@お腹いっぱい。:2016/02/13(土) 19:56:20.37 ID:2icoSvut0.net
- chkimgってサーチ範囲の座標記述すると見た目が悪くなるのが嫌いなんだけど
俺が作ってるのはサーチ範囲は変わらないから全部同じ数字入れるのがだるい
かといって書かないと遅くなるらしいし
良い方法ないかな
新しく関数作って固定させるぐらいしか思いつかん
chkimgA()
function chkimgA(PARAM_IMG)
ifb chkimg( "PARAM_IMG" + ".bmp", 1, x1, y1, x2, y2)
result = true
else
result = false
endif
fend
- 581 :名無しさん@お腹いっぱい。:2016/02/13(土) 20:07:46.86 ID:hFFChm3k0.net
- 基本的には関数化しかない
例外を記述する時に楽するためにデフォルト引数使うと良いかもね
- 582 :名無しさん@お腹いっぱい。:2016/02/13(土) 20:08:01.19 ID:JoYsMZYi0.net
- 定数作れよ
- 583 :名無しさん@お腹いっぱい。:2016/02/13(土) 20:15:10.67 ID:2icoSvut0.net
- >>581
やっぱそうか
デフォルト引数ってのは
function chkimgA(PARAM_IMG="")
みたいに書けばいいってこと?
>>582
定数作れってのはCONST使えって言うこと?
- 584 :名無しさん@お腹いっぱい。:2016/02/13(土) 20:26:32.08 ID:hFFChm3k0.net
- 全部聞いていたら何も造れないぞ
少しは考えろ
//デフォルトの範囲(面倒だからXのみ)
CONST checkImageRange_X = 100
checkImage("test1") //デフォルト引数な呼び出し
checkImage("test2", 200) //例外的な呼び出し
procedure checkImage(imageName, x = checkImageRange_X)
Print imageName + "=" + x
Fend
- 585 :名無しさん@お腹いっぱい。:2016/02/13(土) 20:37:26.58 ID:2icoSvut0.net
- ごめん、全部聞いたつもりじゃなくて言葉の意味、意図がわからないから聞いただけなんだ
- 586 :名無しさん@お腹いっぱい。:2016/02/13(土) 21:11:34.08 ID:2icoSvut0.net
- デフォルト引数とかCONSTについての知識があまりないからググって考えたんだけど
>>584は例外を引数で指定するためのやり方、ということだよね?
自作関数そのものの機能としては>>580で問題ないよね?
俺は例外の場合は普通にCHKIMG関数を使おうと思っていたんだけど、
>584のやり方で例外のために記述を加えたほうがいいのはどうして?
- 587 :名無しさん@お腹いっぱい。:2016/02/13(土) 21:19:16.44 ID:JoYsMZYi0.net
- >例外の場合は普通にCHKIMG関数を使おうと思っていたんだけど
だったら関数作んなくていいって
定数作れ
- 588 :名無しさん@お腹いっぱい。:2016/02/13(土) 21:30:44.76 ID:hFFChm3k0.net
- デフォルトな条件なら呼び出し側がシンプルに成る
前後の処理を共通化できるってのが基本的なメリット
同じ処理を複数の箇所に記述すると変更する必要が生じた時に
対応が漏れる恐れがある
少し上にあった条件を配列に入れてループで回すコードみたいに
回りくどくても変更に対応しやすいコードの方が便利かもねって話
- 589 :名無しさん@お腹いっぱい。:2016/02/13(土) 21:39:33.04 ID:2icoSvut0.net
- >>587
ごめん、その定数作れの意味がわからない
>>588
関連の話として、例外を指定できる方法を教えてくれたということかな?
どうもありがとう
- 590 :名無しさん@お腹いっぱい。:2016/02/13(土) 21:43:21.10 ID:AtiKTq4d0.net
- >>580
なんで関数内にif文書いてるの?
function chkimgA(〜)
result = chkimg(〜
fend
これだけでいいじゃん
- 591 :名無しさん@お腹いっぱい。:2016/02/13(土) 23:11:25.36 ID:eCDlWNP70.net
- 初心者の質問です。
fukidasi(
- 592 :名無しさん@お腹いっぱい。:2016/02/13(土) 23:15:10.41 ID:eCDlWNP70.net
- あれ、切れちゃった
初心者の質問です。
fukidasi("ゲームウィンドウ上でSキー") //Sキー入力待ちの告知
While !(GETKEYSTATE(VK_S)) //Sキー入力まで無限ループ
sleep(0.1)
Wend
fukidasi() //入力待ち告知の吹き出しを消す
winid = getid(GET_ACTIVE_WIN)
この某hpのサンプルコード使ってbluestacksのID取得をして
MOUSORG(winid,0,0)では動くのですがそれ以外の数値だと動きません
(id,2,2)でバックで動かしたいのですがどうすれば直りますか?
- 593 :名無しさん@お腹いっぱい。:2016/02/14(日) 00:41:28.44 ID:V4/m1Afh0.net
- 仮想環境を操作するのはUWSCでは無理
- 594 :名無しさん@お腹いっぱい。:2016/02/14(日) 08:59:07.59 ID:4bRrPD2X0.net
- >>593
なるほど バックで動かすのはあきらめます
ありがとうございました
- 595 :名無しさん@お腹いっぱい。:2016/02/14(日) 09:05:22.19 ID:c3uHBcDI0.net
- 自分が裏だと描画を控えるアプリに対して
描画させる事は基本的に前面にするしかない
- 596 :名無しさん@お腹いっぱい。:2016/02/14(日) 09:28:54.14 ID:Oo27r2AD0.net
- 以前書いた奴
ID = GETID("BlueStacks App Player","WindowsForms10.Window.")
// MOUSEORG( ID, MORG_CLIENT or MORG_DIRECT, MORG_BACK ) // MORG_DIRECT だとAndroidが反応してしまう。
// MOUSEORG( ID, MORG_CLIENT ) // MORG_CLIENT だと ChkImgX と標準関数とで原点位置が食い違う。
MOUSEORG( ID )
>>593-594 の流れはおかしい。
仮想環境でも画像で操縦は可能だし
>>592 は「MOUSORG(winid,0,0)」では動くと書いてるのに。
>>595
BlueStacks は裏でも描画する
XP時代は隠れた部分は描画されなかったけど
- 597 :名無しさん@お腹いっぱい。:2016/02/14(日) 11:08:44.73 ID:4bRrPD2X0.net
- >>596
よく考えたらそうですね・・・
その後の処理はifb CHKIMG→BTNでクリックさせる→スリープ1秒 を何パターンも作ってるだけの簡単な
ゲーム操作をさせるマクロなんですが色々ぐぐっても原因わからずでした
- 598 :名無しさん@お腹いっぱい。:2016/02/15(月) 01:57:12.49 ID:0dWxJSmB0.net
- 画像検索の特殊変数G_IMG_X,G_IMG_Yってのは
ローカル変数扱いなんでしょうか?
画像検索でヒットしたG_IMG_X,G_IMG_Yの値を
別の関数で使いたい場合は、引数で渡すか
グローバル変数を使うかしかないんでしょうか?
- 599 :名無しさん@お腹いっぱい。:2016/02/15(月) 07:11:02.66 ID:X50nyRyC0.net
- >>598
グローバルだったとしても、そういうのは引数で渡す癖をつけたほうがいいよ。
グローバル変数に入れなおすのもNG。
- 600 :名無しさん@お腹いっぱい。:2016/02/15(月) 12:48:14.51 ID:fuyjfYD10.net
- 引数が増え過ぎてきた場合、普通はどうしたらいいの?構造体もないし
- 601 :名無しさん@お腹いっぱい。:2016/02/15(月) 14:28:14.98 ID:lRH39zN60.net
- >>600
個人的にはそれが必要な情報なら引数にする事を厭わないかな
でもクラス(モジュール)を使って必要な情報を整理して保持できるならそっちを優先する
グローバル変数は最後の手段だけどクラスのメンバ変数は使用を躊躇する必要ないしね
- 602 :名無しさん@お腹いっぱい。:2016/02/15(月) 15:17:21.06 ID:mpgO3egX0.net
- 引数を配列で渡すとか、関数を分割するとか
- 603 :名無しさん@お腹いっぱい。:2016/02/15(月) 17:00:42.69 ID:ml/Gl3ot0.net
- ワシにはなんのこったかさっぱり
UWSCはプログラミング未経験者が使うツールだと思ってた
- 604 :名無しさん@お腹いっぱい。:2016/02/15(月) 18:51:08.74 ID:iW+KTqvB0.net
- >>603
その話題について知りたいなら素直に知りたいって書いたほうが得だよ
逆にどうでもいいなら黙ってようよ
- 605 :名無しさん@お腹いっぱい。:2016/02/15(月) 18:55:50.05 ID:iV3+q7Ob0.net
- うざいからお前出てって
- 606 :名無しさん@お腹いっぱい。:2016/02/15(月) 20:36:48.80 ID:ml/Gl3ot0.net
- わかったよもう来ないよ
そのかわり質問スレに誘導してくれ
- 607 :名無しさん@お腹いっぱい。:2016/02/15(月) 20:47:06.23 ID:TntgXZj60.net
- >>606
うざいと言われてるのは>>604の方だと思うがな
- 608 :名無しさん@お腹いっぱい。:2016/02/15(月) 20:54:00.51 ID:VKY0mmNh0.net
- もっと短いクワイン書けないでしょうか?自分の実力ではこれが限界です
UWSC上級の人よろしくお願いします
a=chr(34);b=
- 609 :名無しさん@お腹いっぱい。:2016/02/15(月) 21:00:29.60 ID:VKY0mmNh0.net
- なんか切れたんでこっちに貼りました
https://gist.github.com/anonymous/e522e8a7f110f3238185
- 610 :名無しさん@お腹いっぱい。:2016/02/15(月) 21:24:10.17 ID:ekeGmjS90.net
- 特定の武器を一回だけ使って元の武器に戻す
特定の武器に持ち替えて使用する
↑ここまではUWSCでできるんだけど
直前に持っていた武器に戻す
↑識別方法がなくて諦めた
- 611 :名無しさん@お腹いっぱい。:2016/02/15(月) 21:45:50.39 ID:k4y1Ql7g0.net
- 日記か
- 612 :名無しさん@お腹いっぱい。:2016/02/15(月) 22:00:26.19 ID:0XdlPD550.net
- 最近恥ずかしげもなくゲームマクロの質問ばかりだな
- 613 :名無しさん@お腹いっぱい。:2016/02/15(月) 22:05:32.67 ID:GSjAFn9q0.net
- >>610
お前が何を見て直前に持っていた武器だと認識するのかを
そのままコードに書けばできるだろ
お前も認識できないなら知らん
- 614 :名無しさん@お腹いっぱい。:2016/02/15(月) 22:21:08.17 ID:ZQ5I0KNy0.net
- >>603
特定の画像出現をポーリングで待機しながらタイムアウトとか考えるのは組み込みに近いから
言語自体はシンプルだけどコード書くのはそこそこ経験必要よ
- 615 :名無しさん@お腹いっぱい。:2016/02/15(月) 22:37:12.48 ID:ScNC+Izw0.net
- ゲームで使うのはいけないけど
楽しく学べるから一番上達が早いのよね
(´・ω・`)
- 616 :名無しさん@お腹いっぱい。:2016/02/15(月) 22:42:37.20 ID:6/AzYlfK0.net
- >ゲームで使うのはいけないけど
どういうこと?
- 617 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:01:56.67 ID:TntgXZj60.net
- ゲームマクロ使用がいけないことであるっていう常識が無い奴がいるのは戦慄を覚えるね
- 618 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:08:31.27 ID:6/AzYlfK0.net
- ソフトが良くてゲームがいけない意味が分からん
最近もパズドラ攻略機械組んでる動画みてただすげえって思ったけど
もともとゲーム内にプログラム要素あるのもあるし
- 619 :imi:2016/02/15(月) 23:11:18.16 ID:Et+z3L6S0.net
- 君規約とか一切読まないタイプ?
- 620 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:12:37.28 ID:ZQ5I0KNy0.net
- オフゲなら好きに汁オンゲなら垢バンされても泣かない
ここはマクロの善悪を語る場ではないので
- 621 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:12:46.12 ID:lRH39zN60.net
- 利用規約違反になるので本来公言するもんじゃないのよ
だからゲームのためのノウハウ教えてと言われると供与できない
建前でゲームじゃないフリしてろ
- 622 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:15:05.33 ID:6/AzYlfK0.net
- あんまり読まないけどマクロ禁止とか書いてあるんか
そういうのって一定ジャンルのみとか一部じゃないの
- 623 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:18:49.53 ID:lRH39zN60.net
- 許されているジャンルならそのスレでマクロの話をすれば良い
- 624 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:23:35.26 ID:6/AzYlfK0.net
- あー課金したりネットワークで他人と競う系のゲームか
自分そういうのぜんぜんやらないからな
「ゲーム」って一まとめで言うのは御幣あるじゃないか
ゲーム名明記してない限り規約に違反してるかどうかは分からんわけでしょ
>>623
その論理だとすべてのマクロの話Windowsスレとか別スレでしろって話になっちゃうんじゃ
- 625 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:30:04.89 ID:lRH39zN60.net
- 利用規約にマクロが禁止されているツールならそうなるかもね
だから規約違反しているか判断できないゲームの話はするのは勝手けど
供与は出来ないからボカせというのが私の主張
- 626 :名無しさん@お腹いっぱい。:2016/02/15(月) 23:31:45.80 ID:0XdlPD550.net
- いやー規約違反云々もあるが
調べもしない子供が多いからここでゲームの質問は暗黙の了解でNGだったんだが
最近は普通に受け入れられるようになったんだなーと思った
- 627 :名無しさん@お腹いっぱい。:2016/02/16(火) 00:26:03.06 ID:Qfud2JiX0.net
- ゲームの規約はUWSCの規約じゃないからそれ自体はどうでもいいんだけどね。
「何をやりたいか」を有効な言葉に変換できずに、ゲームの動作そのまま質問しちゃうような人だと
自分で何もせず結局全部丸投げしてくる人ばかりだから叩かれたというだけ。
- 628 :名無しさん@お腹いっぱい。:2016/02/16(火) 00:44:27.17 ID:i6aChOQJ0.net
- ゲーム関連で荒れなかった試しがないからな
- 629 :名無しさん@お腹いっぱい。:2016/02/16(火) 02:56:23.77 ID:QoFwoTib0.net
- A⇔Bって決まってるなら
AからBは出来るんだから(Bを探した?)
その逆をやればいい(Aを探す?)
もし途中からAと同種のやつがもりもり増えていくとかだとめんどいけど
まぁAが増える可能性もあるということはBも増える可能性があるわけで・・・
- 630 :名無しさん@お腹いっぱい。:2016/02/17(水) 04:35:41.66 ID:kb0x6ds+0.net
- ゲームのプレイ行為そのものが報酬であるとデザインされたオフゲと違って、
ネトゲはゲームのプレイ行為を手段として主に自己顕示による自己実現気分を
味わうヤクであり、ソシャゲはそのヤクの販売ルート拡大とマネタイズに
成功した事業なのである。
仮想自己実現を売り物にするネトゲ・ソシャゲ業者にとって、
ゲームのプレイ行為そのものが報酬となる程に、
ゲームそのものを工夫して面白くするのは過剰品質であり粗利が減るので、
あえて、いわゆるクリックゲーと呼ばれる、ゲームというより単重労働を
ユーザーに課すのが通例であり、これを自動化されては産業革命が起きてしまい
商売が成り立たないので規約で禁止する率はほぼ100%。
よってゲームの自動化需要で圧倒的多数はソシャゲであり、ほぼ無確認でも間違いない。
そしてゲーム開始時にソシャゲ業者から口を酸っぱくして明示的に禁止されていることに
気づかず、臆面もなく赤の他人にホイホイ業者との契約違反方法を聞いて恥じない愚者は
知能的にプログラミングを教える段階にない。
- 631 :名無しさん@お腹いっぱい。:2016/02/17(水) 04:53:53.69 ID:hPLvEUTu0.net
- このスレでゲームの話題が禁止されてるのは
オンライン/オフラインに限らず全てなので
別にゲームの規約違反とは関係ないと思うよ。
たぶん、ゲームの質問するやつって常に新規で初歩的な質問なんで
それ以外の話ができないとかそんなんだろ。
- 632 :名無しさん@お腹いっぱい。:2016/02/17(水) 04:57:14.01 ID:hPLvEUTu0.net
- ソシャゲではこういうことはないけど、一般的なオンラインゲームでは
ゲーム側でUWSCが動かないようにされてるから、そういうのは関係あるかも
> 42 :名無しさん@お腹いっぱい。:2012/04/27(金) 08:17:32.89 ID:n7YHJBnV0
> 作成したマクロをオンラインゲームで実行しようとすると動作しませんでした
> ググってUWSCをUNKOに変更してもダメでした・・・
> ゲーム側でマクロ対策されてたら出来ないのでしょうか?
>
> 43 :名無しさん@お腹いっぱい。:2012/04/27(金) 10:16:31.41 ID:hwEpQpsX0
> >>43
> マクロ対策されてたら出来ないから
> 仮想PCでゲーム走らせてやるんだよ
- 633 :名無しさん@お腹いっぱい。:2016/02/17(水) 04:57:20.17 ID:pIoDNX4q0.net
- そんなゲーム業者の都合なんてどうでもいいことだろう。
重要なのは、このスレの住人が答えたくなるような質問ができるかどうかだ。
- 634 :名無しさん@お腹いっぱい。:2016/02/17(水) 05:06:46.52 ID:hPLvEUTu0.net
- ゲームの仮想化では必需品だった VMware Player も開発中止になっちゃって今後どうしたらいいのやら。
マイクロソフトの Hyper-V を VMware Player のように使うことは可能だけど
マイクロソフト製品は画面表示に通信系の技術を使ってて
帯域を減らすために画像圧縮を使ってるせいで
常に画面はノイズが入った状態で
UWSC の画像認識では動かない・・・。
Hyper-V で音を出すためには Windows Server または Ultimate が必要だ。
7月までなら無償アップグレードが可能だから、
とりあえず Hyper-V 環境の Winddows を一つくらい
無償アップグレードしといたほうがいいかも。
音を出す程度のことでそんなことが必要なくらい、Hyper-V は不便なんだぞー。
そして、ほかの仮想化ソフトは全然使い物にならないんだぞー
※ Mac の Parallelsだけは例外
KVM とかは Linux では安定して動くらしいけど
Windows は満足に動かせないらしい。
設定もめんどくさいし。
- 635 :名無しさん@お腹いっぱい。:2016/02/17(水) 05:25:15.26 ID:GIOAQLSV0.net
- 煽りとかじゃないんだけどゲーム以外だと何に使ってるの?
- 636 :名無しさん@お腹いっぱい。:2016/02/17(水) 06:32:41.54 ID:beI7tmqh0.net
- >>635
業務
- 637 :名無しさん@お腹いっぱい。:2016/02/17(水) 08:13:26.19 ID:/1ajP00K0.net
- ゲームの話になると仮想環境とかUWSC対策の回避方法の話ばかりになる
ゲーム操作一般スレ作っておいて誘導したほうがお互いのためにもいいよ
- 638 :名無しさん@お腹いっぱい。:2016/02/17(水) 08:15:00.12 ID:rcyqh9600.net
- 動画見てるときにでてくる広告クリック
- 639 :名無しさん@お腹いっぱい。:2016/02/17(水) 08:21:56.99 ID:91rSfnp00.net
- Windows起動時に窓を残したまま立ち上がる常駐アプリ(LINEとか)のウィンドウクローズ
マイドキュメントの定時バックアップ、手動でWindows終了した時のバックアップの自動化
株取引アプリの起動時、アプリ側で保存されない設定の自動セット
チャートアプリで毎回同じ流れの操作をダブルクリックで実行
- 640 :名無しさん@お腹いっぱい。:2016/02/17(水) 10:58:48.44 ID:dGarNdwa0.net
- バックグラウンドで動いてて欲しいけどよく止まるソフトの異常検知と再起動
ビューアで見ている画像にフォルダ名をつけてマイドキュメントにコピー
- 641 :名無しさん@お腹いっぱい。:2016/02/17(水) 11:10:03.79 ID:7mLT8oDH0.net
- SPEAK関数使ったマクロでカーナビ音声認識機能のデバッグ
海外向けナビは音声認識機能がデフォルトなので全ての機能に音声認識が割り当てられてるから人の手でやると超大変
- 642 :名無しさん@お腹いっぱい。:2016/02/17(水) 19:23:28.68 ID:CDYU1lyI0.net
- >>638
スケベ
- 643 :名無しさん@お腹いっぱい。:2016/02/17(水) 23:05:55.63 ID:Z2OJH21P0.net
- a〜z+1〜9の中からランダムに入力したい場合ってどうやればいいですか?
- 644 :名無しさん@お腹いっぱい。:2016/02/17(水) 23:38:43.99 ID:7mLT8oDH0.net
- >>643
ざっくり設計
1.該当のAscii文字コードが入った配列を作成
2.配列の添数をランダムで生成
3.chr関数を使って文字に変換
Ascii文字コードでA と aは別物なので必要に応じて修正拡張
//関数呼び出しサンプル 戻り値はstr
print fnc_RandomStr()
//0-9,a-zをランダムで生成する関数
function fnc_RandomStr()
dim ts[35],i
for i= 0 to 9
ts[i] = Asc("0")+i
next
for i= 10 to 35
ts[i] = Asc("W")+i
next
result = chr(ts[random(36)])
fend
- 645 :名無しさん@お腹いっぱい。:2016/02/17(水) 23:44:26.11 ID:Y0AJ5NIx0.net
- kbd(random(VK_Z - VK_0) + VK_0)
とかでいいんでない?
- 646 :名無しさん@お腹いっぱい。:2016/02/17(水) 23:53:36.29 ID:7mLT8oDH0.net
- それだとVK_0からVK_Z-1までの文字コード出すだけだから
58(:)-64(@)の記号まで含まれちゃうし多分Zは出てこないね
- 647 :名無しさん@お腹いっぱい。:2016/02/17(水) 23:54:40.60 ID:5diPod+M0.net
- 丸投げに応じるなよ・・・
- 648 :名無しさん@お腹いっぱい。:2016/02/17(水) 23:56:59.22 ID:7mLT8oDH0.net
- ランダムでの文字列生成はたまにコード書いておかないと大事な事抜け落ちるからな
- 649 :名無しさん@お腹いっぱい。:2016/02/18(木) 00:03:21.41 ID:eoG2gd950.net
- >>648
わかる、一回の実行で使い回す頻度を考えて準備と取得は分けたりもするよね
グローバル変数を汚染をしないためにもクラス使った方が良いパターンだと思う
>>647
自分も丸投げは検索キーワードを教える位までかな
でも対処は個人の自由かと
(勿論ツッコミを入れるのも自由だと思うので非難はしていない)
- 650 :名無しさん@お腹いっぱい。:2016/02/18(木) 00:17:37.78 ID:OlbQAj/J0.net
- >>649
そうそう 引数に渡すクラス内の配列サイズ取得してrandomの範囲決めて関数自体は汎用化させた方がスマートだったね
randomの取得範囲が以下か未満かもたまに怪しくなるしランダム文字列生成ではいつもコードレビューが厳しくなる
- 651 :名無しさん@お腹いっぱい。:2016/02/18(木) 00:43:39.97 ID:RFqQoptg0.net
- >>649
>>2
●質問したい方へ
「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」
「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
備考:PRI NT文を利用してデバッグする。管理者権限で起動してみる。AEROを切る。fcuc.uwsを走らせてみる。
丸投げに対応する奴は荒らしと同類
この手のスレでは鉄則だろ
- 652 :名無しさん@お腹いっぱい。:2016/02/18(木) 00:49:06.01 ID:YGG8mhQL0.net
- コードを晒す目的でオススメのWebサイトありますか
- 653 :名無しさん@お腹いっぱい。:2016/02/18(木) 00:52:04.81 ID:OlbQAj/J0.net
- この話題止めね?
コード書いた本人が自分のためにコード書いてんだからコピペ張るよりコード張ろうぜ
- 654 :名無しさん@お腹いっぱい。:2016/02/18(木) 01:11:07.18 ID:MFRYafp00.net
- そもそも>>643を見ただけでは丸投げかどうかわからないと思うが
- 655 :名無しさん@お腹いっぱい。:2016/02/18(木) 02:06:21.02 ID:dUe+VgX70.net
- 丸投げでも面白い問題ならパズルのように解きたくなるものもある
解かれないってことは問題がうんこ
- 656 :名無しさん@お腹いっぱい。:2016/02/18(木) 08:09:18.41 ID:PV/kQd7A0.net
- より短いクワインができました
https://gist.github.com/anonymous/3043708044a56e98104e
- 657 :名無しさん@お腹いっぱい。:2016/02/18(木) 08:33:26.58 ID:HYi07iZS0.net
- ヘルプにある仮想キーコードの説明って、プログラマ経験者前提過ぎなんだよね。
↓こういうのテンプレに入れようぜ
http://www.comrade.co.jp/ftp/km2/manual/Properties/VKeyCode.htm
- 658 :名無しさん@お腹いっぱい。:2016/02/18(木) 08:38:09.64 ID:HYi07iZS0.net
- あとこれな
SendStrによる文字列送信
http://siromasa.html.xdomain.jp/uwsc/u_term/75_Mojinyuuryoku.html
- 659 :名無しさん@お腹いっぱい。:2016/02/18(木) 08:39:32.11 ID:eoG2gd950.net
- ヘルプファイルの
「スクリプト」「その他項目」「予約後、関数一覧」
の「定義済み仮想キー」にあるのよ
- 660 :名無しさん@お腹いっぱい。:2016/02/18(木) 19:09:42.48 ID:HYi07iZS0.net
- いや、仮想キーが定数であることも、具体的な値も書いてないでしょ。
Aに1加算したらBになるって、
何のプログラミング経験もなくあのヘルプだけ見て判る人は相当才能あるよw
- 661 :名無しさん@お腹いっぱい。:2016/02/18(木) 22:34:44.95 ID:8Ev3PTaE0.net
- そらそういう使い方をして欲しくないからでしょ
- 662 :名無しさん@お腹いっぱい。:2016/02/18(木) 23:06:12.24 ID:6tMhXUrt0.net
- 確かに予約語なんていつ内部値が切り替わるかわからんし
それこそ今後メインストリームがUnicode一辺倒になってUWSCが内部処理含めてUnicode対応なんて事が起きたら
現状VK_の内部値がAsciiコードである前提で書かれてるソースなんて不具合でまくる予感しかしないもんな
初心者なりに変にテクニックに依らず素直なコード書けるってのも十分に才能ではあるわけだし
- 663 :名無しさん@お腹いっぱい。:2016/02/19(金) 07:52:42.34 ID:TWzjjF0u0.net
- s=split("s=split( msgbox(s[0]+chr(34)+join(s)+chr(34)+s[2]) );eval(s[1])");eval(s[1])
- 664 :名無しさん@お腹いっぱい。:2016/02/19(金) 11:27:58.73 ID:IPiQDr2h0.net
- Googleの画像認識/分類API、Cloud Vision APIが誰でも使える公開ベータへ
http://jp.techcrunch.com/2016/02/19/20160218google-opens-its-cloud-vision-api-to-all-developers/
こういうのってuwscでもなんとかして使えるようにしたりできるのかな
やっぱり他の言語学ばなきゃダメか
- 665 :名無しさん@お腹いっぱい。:2016/02/19(金) 12:05:56.90 ID:2x32U0G20.net
- それの使い方って、単に画像データをPOSTするだけでいいんじゃないの?
- 666 :名無しさん@お腹いっぱい。:2016/02/22(月) 01:02:46.99 ID:P6qbXDjw0.net
- DIM hoge[2][2] = 0,1,2, 3,4,5, 6,7,8
たとえば、こんな感じで二次元配列を定義しまして
hoge[0][2] + hoge[1][2] + hoge[2][2] を求めたいんですけど
CALCARRAYで出すには、どう書けばいいんでしょうか?
試しに、MSGBOX( CALCARRAY(hoge[][2],CALC_ADD,0,2) )
としてみましたが、「21」と表示されました
どうも、hoge[2][0] + hoge[2][1] + hoge[2][2]を計算してるようです
CALCARRAYでは、無理ですか?
- 667 :名無しさん@お腹いっぱい。:2016/02/22(月) 01:51:26.70 ID:wzprd0m10.net
- デバッグすればわかるけれど hoge[][2] では内部的に hoge[2] として扱われている
CALCARRAYを使って合計や平均を求めたいなら
行列から指定列を抽出した配列を返す必要がある
DIM hoge[][2] = 0,1,2, 3,4,5, 6,7,8
print CALCARRAY(GetColumnArray(hoge, 2), CALC_ADD)
Function GetColumnArray(array[][], column)
rowLength = Length(array) - 1
columnLength = Length(array[0]) - 1
result = SAFEARRAY(0, rowLength)
If 0 < rowLength And 0 < column And column <= columnLength Then
For i = 0 To Length(array) - 1
result[i] = array[i][column]
Next
EndIf
Fend
- 668 :名無しさん@お腹いっぱい。:2016/02/22(月) 02:02:09.37 ID:wzprd0m10.net
- 補足すると合計や平均等の単機能なら関数内で直接計算させた方が当然ながら速いからね
合計も欲しいし平均も欲しい等のケースなら一旦指定列の配列を変数に入れるためにこんな感じの関数を使った方が効率が良くなる
- 669 :名無しさん@お腹いっぱい。:2016/02/22(月) 06:06:44.36 ID:P6qbXDjw0.net
- >>667
ありがとうございました
- 670 :名無しさん@お腹いっぱい。:2016/02/23(火) 20:44:15.98 ID:gO96bxCq0.net
- 上にもあったけどやっぱ配列系関数は説明が難しいなー
なんか通常の宣言と混ざる傾向にある
このヘルプ少し配列について改善できないかね
><変数>
> 変数に型はありません
- 671 :名無しさん@お腹いっぱい。:2016/02/23(火) 21:03:47.15 ID:iXx0mMI80.net
- そこの補足で十分だと思うけれどなぁ
ローカル変数には宣言は要りません(Option指定で変更可:DIM 変数名)
多次元配列には宣言が必要: DIM 変数名[数]
(配列での初期値代入: DIM X[2]=1,2,3 配列数の省略可 DIM X[]=1,2,3 )
個人的には再利用するスコープが短いローカル変数は意図的に宣言しないようにしている
(宣言する=グローバル変数かモジュール変数か配列)
- 672 :名無しさん@お腹いっぱい。:2016/02/25(木) 09:24:51.24 ID:x6EjoBIB0.net
- × 過去ログには有益情報の宝庫
○ 過去ログには有益情報がたくさんある
○ 過去ログは有益情報の宝庫
- 673 :名無しさん@お腹いっぱい。:2016/02/25(木) 16:03:26.26 ID:fkkSYKXG0.net
- 質問です
ループでフォルダ監視し待機、ファイルが送られたら動作実行しまた待機
これのプログラム終了時に1回だけ別の動作を実行させる方法無いでしょうか?
出来ればダイアログなしで
別のバッチファイルでも実行しUWSCの常駐終了後実行とか出来ればいいんですが
方法が分かりません、宜しくお願いします
- 674 :名無しさん@お腹いっぱい。:2016/02/25(木) 16:08:19.62 ID:ukh1Qs010.net
- >>673
なにを悩んでるのかよくわからない
こんな感じじゃないの
while true
if ファイルが北 then
ファイルが来た時の処理
endif
if 終了アクション then
最後の処理
終了処理
endif
wend
- 675 :666:2016/02/25(木) 16:55:06.89 ID:fkkSYKXG0.net
- >>674
終了アクションは閉じる以外無いんですが
どうやって検知すれば良いのでしょうか?
- 676 :名無しさん@お腹いっぱい。:2016/02/25(木) 17:09:05.93 ID:ukh1Qs010.net
- >>675
プロセスの終了で強制終了してるとかってこと?
使用状況によるけど、そういうスクリプトなら
終了用の空ファイルを送る、そのためのスクリプト組むとか
- 677 :名無しさん@お腹いっぱい。:2016/02/25(木) 17:19:09.87 ID:sdAeFe3E0.net
- PRINT GET_CUR_DIR
DOSCMD("cd /d C:\Windows\System32")
PRINT GET_CUR_DIR
なんでカレントディレクトリが変わらないのだろう?
- 678 :名無しさん@お腹いっぱい。:2016/02/25(木) 17:32:30.68 ID:/glPAZis0.net
- DOSCMD(チャイルドプロセス)のカレントディレクトリしか移動していないから
スクリプトでファイル操作する時はフルパス操作した方がいいよ
- 679 :名無しさん@お腹いっぱい。:2016/02/25(木) 17:35:42.52 ID:fkkSYKXG0.net
- >>676
自己解決しました有難うございました
画面上にダイアログ無しでタスクバーからの終了です
方法は/nl でもう一個起動GETID
- 680 :名無しさん@お腹いっぱい。:2016/02/25(木) 20:34:49.03 ID:sdAeFe3E0.net
- >>678
あぁ なるほど・・・
ggったらDOSCMDで出来るみたいに書いてあったけどダメなんだね
カレントディレクトリの変更はAPIか何か使わないとダメなのか
PRINT GET_CUR_DIR
DEF_DLL SetCurrentDirectoryA(string) : long: kernel32
IF !SetCurrentDirectoryA("C:\Windows\System32") THEN PRINT "error"
PRINT GET_CUR_DIR
こんな感じで問題ないかな?
助かりました。ありがとう♪
- 681 :名無しさん@お腹いっぱい。:2016/02/27(土) 01:15:28.83 ID:VvH2GmY20.net
- 画像A 画像B 画像C がランダムに現れて画像Aと画像Cが出た時は画像を左クリックする。
ググりながら下記内容にしたのですが、もっと処理速度と言うかクリックするまでの時間を早くするためには
どのようにすればいいでしょうか。
今回はじめてしたので間違いだらけな内容かもしれません。
k_id = GetID("k - Mozilla Firefox")
If k_id = -1 Then ExitExit
CtrlWin(k_id, ACTIVATE)
px = Status(k_id, ST_X) + 42
py = Status(k_id, ST_Y) + 42
sx = 350 + px
sy = 570 + py
Sleep(1)
While Status(k_id, ST_ACTIVE)
Ifb ChkImg("AAA.bmp", 0, px, py, sx, sy)
Btn(LEFT, CLICK, G_IMG_X+30, G_IMG_Y+16)
Endif
Ifb ChkImg("CCC.bmp", 0, px, py, sx, sy)
Btn(LEFT, CLICK, G_IMG_X+30, G_IMG_Y+16)
Endif
Wend
- 682 :名無しさん@お腹いっぱい。:2016/02/27(土) 01:20:46.23 ID:OyTefc3Z0.net
- Sleep(1)をSleep(0.1)にしたら?
- 683 :名無しさん@お腹いっぱい。:2016/02/27(土) 01:29:14.52 ID:f7poLGup0.net
- chkimg("aaa.bmp",ほにゃほにゃ) or chkimg("ccc.bmp",ほにゃほにゃ)
とやったほうが良いんじゃないか?
- 684 :名無しさん@お腹いっぱい。:2016/02/27(土) 01:35:13.96 ID:VvH2GmY20.net
- >>682
>>683
ありがとうございます、変更してみます。
- 685 :名無しさん@お腹いっぱい。:2016/02/27(土) 02:04:58.57 ID:VvH2GmY20.net
- >>683
While Status(k_id, ST_ACTIVE)
Ifb ChkImgchkimg("aaa.bmp",ほにゃほにゃ) or chkimg("ccc.bmp",ほにゃほにゃ)
Btn(LEFT, CLICK, G_IMG_X+30, G_IMG_Y+16)
と変更したところ画像Aクリックしない 画像Cクリックするになりました。
試しに以下に変更したところ逆の結果になりました
Ifb ChkImgchkimg("ccc.bmp",ほにゃほにゃ) or chkimg("aaa.bmp",ほにゃほにゃ)
後の記述のみ実行されるようです。
自分でもググッて解決策を探してみます。
- 686 :名無しさん@お腹いっぱい。:2016/02/27(土) 02:14:04.68 ID:+U0TNGIH0.net
- chkimgでorする場合は
最初にOPTION SHORTCIRCITを宣言しとかなダメよ
前者が存在しても後者の判定してまうから
- 687 :名無しさん@お腹いっぱい。:2016/02/27(土) 02:14:41.87 ID:+U0TNGIH0.net
- というか>>683はそこまで教えてあげないと
- 688 :名無しさん@お腹いっぱい。:2016/02/27(土) 02:55:14.02 ID:mDOHEmLU0.net
- これが終わったらこれ、みたいな単純な流れ作業は書けるようになったので
すごろくのようにあっちこっちに飛ぶ条件を付けていこうと思うんですが
文字だけだと順番が訳わからなくなりそうなんですがやってれば目が慣れてくるものですか?
- 689 :名無しさん@お腹いっぱい。:2016/02/27(土) 03:03:43.45 ID:VvH2GmY20.net
- >>686
ありがとうございます。
OPTION SHORTCIRCITを宣言したところ
Ifb ChkImgchkimg("aaa.bmp",ほにゃほにゃ) or chkimg("ccc.bmp",ほにゃほにゃ)
での処理ができるようになりました。
>>682
>>683
>>686
みなさんのご教示により
最初に記載した物より、早くなりました。
低スペPCの為、どこまで出来るか分かりませんが
色々調べながらやってみます。
- 690 :名無しさん@お腹いっぱい。:2016/02/27(土) 03:31:25.12 ID:DVc62XNO0.net
- >>689
もしwin7使ってるならデスクトップコンポジションを切るとchkimgが速くなるよ
- 691 :名無しさん@お腹いっぱい。:2016/02/27(土) 13:19:18.71 ID:EORKr9mx0.net
- 画像Aと画像Cが出た時は画像を左クリック
and?or? ???? ってなってるんだけど
- 692 :名無しさん@お腹いっぱい。:2016/02/27(土) 13:21:01.50 ID:Iow3jdwl0.net
- ?
- 693 :名無しさん@お腹いっぱい。:2016/02/27(土) 13:38:04.37 ID:38mQ0onS0.net
- 両方を満たすなら当然ANDだけど
少し上の短絡評価の話で混乱しているのかな?
- 694 :名無しさん@お腹いっぱい。:2016/02/27(土) 15:10:47.45 ID:IJ0wxpKe0.net
- AかCが、なら or だろうけど
AとCが、という質問なんだから and じゃなきゃおかしい。
でも流れを見た感じでは質問の方がおかしかったっぽいね。
- 695 :名無しさん@お腹いっぱい。:2016/02/27(土) 16:05:27.86 ID:+U0TNGIH0.net
- いや>>681のコードまでちゃんと見ればorだなってわかるだろ
読解力の問題
ANDに取れるような書き方が悪い!とか言っちゃう奴は
読解力のないバカか理屈バカのどっちか
- 696 :名無しさん@お腹いっぱい。:2016/02/27(土) 16:28:31.65 ID:sQuDImeT0.net
- 卵があったら牛乳うんぬんかんぬん
- 697 :名無しさん@お腹いっぱい。:2016/02/27(土) 16:53:15.04 ID:f6jdCZ8k0.net
- windowsマクロテクニック読みつぶしたから2冊目買ったわ
(´・ω・`)
- 698 :名無しさん@お腹いっぱい。:2016/02/27(土) 16:57:01.43 ID:f7poLGup0.net
- 文字列を数値に変換するのはVAL
数値を文字列にするのはformatでいいのかな?
- 699 :名無しさん@お腹いっぱい。:2016/02/27(土) 17:11:37.28 ID:jnFT48H20.net
- sleep(20+random(120))
20秒+0~119秒の待ち時間ってこれでいい?20秒の部分は固定だよね?
- 700 :名無しさん@お腹いっぱい。:2016/02/27(土) 17:25:32.73 ID:IJ0wxpKe0.net
- >>695
>>681を見ても、質問文が間違ってるのかコードが間違ってるのかわからないだろう。
- 701 :名無しさん@お腹いっぱい。:2016/02/27(土) 18:45:03.26 ID:+U0TNGIH0.net
- >読解力のないバカか理屈バカのどっちか
って言ってるのにまだ言う
どんだけだよ
- 702 :名無しさん@お腹いっぱい。:2016/02/27(土) 20:47:36.55 ID:jnFT48H20.net
- >>699
これあってる?
- 703 :名無しさん@お腹いっぱい。:2016/02/27(土) 21:07:31.07 ID:tsk8CpEJ0.net
- >>702
どこに疑問がある?
試せば判ることを何故聞く?
- 704 :名無しさん@お腹いっぱい。:2016/02/27(土) 22:31:03.41 ID:1L8PKm630.net
- もう一週間以上も悩んで解決出来ないんだけど
CLKITEMでクリックするそのアイテムが無かった時の条件分岐って出来ない?
CLKITEM(GID,"閉じる")とかにすると閉じるが無かった場合、待ち時間指定が無いから
そこで長い間止まってしまう
これを1秒とかで判定して条件分岐するにはどうしたらいいの?
- 705 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:00:05.73 ID:Iow3jdwl0.net
- >>704
戻値 = CLKITEM( ID, アイテム名, [種別, On/Off, 番号] )
戻値
TRUE:正常、 FALSE:処理不能
ヘルプくらい見ろや
- 706 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:30:25.92 ID:gFrWrIbO0.net
- >>703
ランダム値は試せばわかるって性質のもんじゃないだろw
- 707 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:38:07.11 ID:38mQ0onS0.net
- 値が範囲内に収まるか気になるなら期待値以外になればNG表示する関数を数千回ループさせてみてるとか
スリープの単位がヘルプの内容と同じか気になるなら前後でミリ秒表示してみるとか
仕様が気になった時は検証可能な単位にどうやって分解するか考えよう
- 708 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:38:09.23 ID:sQuDImeT0.net
- print 0.1+random(3)みたいに
小さい桁で試すとかいくらでも試しようはあんだろ
- 709 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:39:50.44 ID:1L8PKm630.net
- >>705
ACC系だとFALSEが返ってこないで、そこで動作が止まっちゃうんだよ
一瞬で判定してくれるならいいんだが
- 710 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:54:14.26 ID:jnFT48H20.net
- >>707
^3^
- 711 :名無しさん@お腹いっぱい。:2016/02/27(土) 23:59:06.69 ID:gFrWrIbO0.net
- ランダムだと外見的には何回ループしても、多分仕様通りといえるが100%仕様通りと断言できなくなるだろ
ソース見りゃ一目瞭然だけど、テストの結果だけ見るとそういう事になるじゃん。
- 712 :名無しさん@お腹いっぱい。:2016/02/28(日) 00:20:30.70 ID:9QYQdQG/0.net
- そりゃその通りだが、少なくとも今回の話題である>>699の言う固定だのは試せば確実に分かることだろうが
- 713 :名無しさん@お腹いっぱい。:2016/02/28(日) 00:56:26.92 ID:qefict4b0.net
- そこもランダム値と足されちゃうから試してわかるのは100%確実ではないなw
そして今のところYES/NOで答えられる質問にだれも答えられていないという・・・
>>699
いい、はず
- 714 :名無しさん@お腹いっぱい。:2016/02/28(日) 01:03:30.83 ID:9QYQdQG/0.net
- だから固定値は0.1にすりゃわかるって言ってんだろアホ
少しは頭使えや
- 715 :名無しさん@お腹いっぱい。:2016/02/28(日) 02:00:59.24 ID:pR7C6fW20.net
- >>706
仕様のないものならそうだけど
期待値があって、それにあってそうかどうかを確認するだけなんだから
100万回でも1000万回でもrandom()の引数に対して充分な回数試せばいいだろ
仕様があってるか否かを確認するわけじゃないんだから
- 716 :名無しさん@お腹いっぱい。:2016/02/28(日) 02:08:27.06 ID:qefict4b0.net
- 1000万と1回目で想定外値がでる可能性が微レ存
- 717 :名無しさん@お腹いっぱい。:2016/02/28(日) 02:28:46.68 ID:0r4UbGuu0.net
- >>716
しつこいぞ
- 718 :名無しさん@お腹いっぱい。:2016/02/28(日) 02:38:57.53 ID:9QYQdQG/0.net
- 的外れにも程があるな阿呆は
- 719 :名無しさん@お腹いっぱい。:2016/02/28(日) 02:40:28.35 ID:qefict4b0.net
- いや707は言うとおりだけど708は論理的じゃないしさ
あと一応>>711の名誉のために言っておくと自分はそのヒトとは別人です
- 720 :名無しさん@お腹いっぱい。:2016/02/28(日) 03:55:09.54 ID:+XXpVUCC0.net
- random関数にバグがあるかも知れないからとか
そもそもコンピュータには本物の乱数の生成は不可能だとか
そういう話をしてるんだろうか?
- 721 :名無しさん@お腹いっぱい。:2016/02/28(日) 04:18:12.48 ID:8+yUHWxH0.net
- 自分か運用する上で許容できる範囲内かどうかという話なんだけれどね
- 722 :sage:2016/02/28(日) 07:54:55.15 ID:k7lnu1y6g
- ここで質問して良い内容でしょうか。
ロードス島戦記オンラインにて、KBD関数が動作しません。
原因、対策等わかりましたら教えてください。
- 723 :名無しさん@お腹いっぱい。:2016/02/28(日) 11:33:31.44 ID:pR7C6fW20.net
- >>716
自分のにたいしてだと思うから一応答えておくと
それは単なるバグで元の質問とは無関係でしょ
- 724 :名無しさん@お腹いっぱい。:2016/02/28(日) 12:59:00.66 ID:f5PR4wTV0.net
- 元質問の人明らかにrandom関数の仕様を理解してないところから来てるから…
バグとそうでないものの違いを判別できない。
だから何回ループしてもその結果をもって仕様通りに動いていると結論付けられない。
- 725 :名無しさん@お腹いっぱい。:2016/02/28(日) 13:04:53.34 ID:9oz8zZQ80.net
- 実はPCを揺らすと数値が飛ぶバグがあるんだ
- 726 :名無しさん@お腹いっぱい。:2016/02/28(日) 14:07:12.58 ID:fiqkpaBc0.net
- 落下中のPCはランダムを返してくれないとかなりそうだなおい。
- 727 :名無しさん@お腹いっぱい。:2016/02/28(日) 14:27:31.94 ID:blrfAobm0.net
- 実は念を送るとランダムの確率が変動するんだ
- 728 :名無しさん@お腹いっぱい。:2016/02/28(日) 15:35:04.40 ID:WeWO61jV9
- Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
実際の待ち時間が20+120秒以上にならないという保証は無いよ
普通はそこまで気にする必要が無いってのも言うまでも無い
- 729 :名無しさん@お腹いっぱい。:2016/02/28(日) 15:34:52.99 ID:Xg5e+H4y0.net
- UWSCは大昔のBASICみたいに、何度走らせてもRANDOM関数は同じ乱数と思ってた。
BASICでは、RANDOMIZEでタイマーを引数にしてたなぁ。
- 730 :名無しさん@お腹いっぱい。:2016/02/28(日) 15:38:07.16 ID:n2+v+wZb0.net
- Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
実際の待ち時間が20+120秒以上にならないという保証は無いよ
普通はそこまで気にする必要が無いってのも言うまでも無い
- 731 :名無しさん@お腹いっぱい。:2016/02/28(日) 19:51:10.87 ID:5dU2/tOb0.net
- >>730
> Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
> 実際の待ち時間が20+120秒以上にならないという保証は無いよ
そんな厳しい精度で動かす言語じゃないからね。Windows自体がRTOSじゃないからネイティブアプリでも
保証はないし。
- 732 :名無しさん@お腹いっぱい。:2016/02/28(日) 20:34:52.25 ID:J1sXa2fC0.net
- ごめん単純に使い方が間違ってないかって質問だったごめんなさい
- 733 :名無しさん@お腹いっぱい。:2016/02/29(月) 01:14:12.41 ID:kLHNktmf0.net
- 式による設定のところで7時から19時までの間に9分間隔で実行て出来ます?
- 734 :名無しさん@お腹いっぱい。:2016/02/29(月) 02:57:03.79 ID:Y5wKBi2d0.net
- GETTIME()でG_TIME_HHを取得して
7時から19時までの間は実行させて
9分間隔はSLEEP(540)でいけるのではないかと
- 735 :名無しさん@お腹いっぱい。:2016/02/29(月) 03:01:49.33 ID:kLHNktmf0.net
- >>734
すいません
初心者すぎてよくわからないです
例えばこういう場合だと○月○日の7時からのみになってしまうんですよね
(YMDNN>=7894680) AND (YMDNN<=7894980) AND ((YMDNN MOD 60)=0)
毎日7時からというその方法はどう書けば良いのでしょうか
- 736 :名無しさん@お腹いっぱい。:2016/02/29(月) 03:11:25.69 ID:vc3n0bkN0.net
- >>735
書いてあることそのままやればいいと思うけどな
GETTIME()を実行するとG_TIME_HHに実行時の時間が格納される
あとは7とは19と比較すればいい
GETTIME()
If (G_TIME_HH>=7) and (G_TIME_HH<19) then
やりたいこと
EndIf
- 737 :名無しさん@お腹いっぱい。:2016/02/29(月) 03:20:04.69 ID:kLHNktmf0.net
- >>736
やりたい事が複数あって時間間隔も色んなパターンがある場合もそれで出来ますか?
- 738 :名無しさん@お腹いっぱい。:2016/02/29(月) 03:40:29.09 ID:vc3n0bkN0.net
- >>737
条件式変えてやれば大体の動きはできると思うけど…
とりあえず自分で書いてみないと覚えないぞ
- 739 :名無しさん@お腹いっぱい。:2016/02/29(月) 03:44:48.44 ID:kLHNktmf0.net
- >>738
ちょっと色々と試してみます
どうもです
- 740 :名無しさん@お腹いっぱい。:2016/02/29(月) 05:02:19.00 ID:UwM6ts+X0.net
- ヘルプも読まずに拾ったマクロの改造法を聞いてるだけっぽいな
- 741 :名無しさん@お腹いっぱい。:2016/02/29(月) 05:23:18.45 ID:kLHNktmf0.net
- いやもう初心者なんで全然わからんのですよ
- 742 :名無しさん@お腹いっぱい。:2016/02/29(月) 06:20:04.43 ID:W4Lx+MiB0.net
- 初心者っていちいち書くな わかってる
- 743 :名無しさん@お腹いっぱい。:2016/02/29(月) 09:56:53.47 ID:S3AkKIbC0.net
- なんでも只で手に入ると思うなよw
プログラムの基礎教養があればネット上の情報だけで理解できるが、
それがなければ情報の取捨選択すらできずやりたいことにたどり着けない
1冊くらいは金出して本を読め
- 744 :名無しさん@お腹いっぱい。:2016/02/29(月) 10:13:32.76 ID:7awlWggQw
- 式による設定 7時から19時までの間に9分間隔で実行
HH>=7 AND HH<19 AND (YMDNN MOD 9)= 0
- 745 :名無しさん@お腹いっぱい。:2016/02/29(月) 11:07:56.89 ID:W4Lx+MiB0.net
- それよりプログラマ雇えといいたい
- 746 :名無しさん@お腹いっぱい。:2016/02/29(月) 11:11:22.54 ID:OC88kjRQ0.net
- プログラムの素養もネットで身に着けられるし
プログラムの素養が必要って情報もこうやって手に入ってるし
やりとりしてれば2chでのイラつかせるワードも分ってくるし
地道に調べて試してけばいいと思うよ
- 747 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:08:54.45 ID:zgYAM+0i0.net
- 質問してる程度の知識ならすぐにネットで手に入る
だから「初心者なのでわからん」が通用しない
もう少し自分で調べて、具体的にわからない部分が出たらもう一度質問しに来れば良いよ
- 748 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:22:07.58 ID:yBnnbdV70.net
- 初心者さんはまずフローチャート書くか日本語で処理手順を箇条書きにするようにしたらええのよ
んでヘルプなり解説サイトの熟読
いきあたりばったりでスクリプトに手を入れようとするとわけわかんなくなって当たり前よ(´・ω・`)
- 749 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:32:25.62 ID: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
となります。
- 750 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:38:11.72 ID:3ZfsBzX30.net
- すいません
プリント結果はSLCT_1を選んだ時です
- 751 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:45:54.58 ID:Hitpgwgs0.net
- CASEに入ってからPUBLIC使ったら見た目通りの順序じゃなくなるよ
実行時にPUBLICを付けた行は先頭に移動するイメージなのです
そのような使い方をしたければPUBLIC宣言は空宣言か0代入をSELECT前に行って下さい
(つまり移動しても大丈夫な所に置く)
- 752 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:47:46.09 ID: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
- 753 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:50:36.85 ID:7tqwHv410.net
- OPTIONと同じやね
後勝ちになる
つーか、同じ変数を何度もPUBLICで宣言なんてするもんじゃない
- 754 :名無しさん@お腹いっぱい。:2016/02/29(月) 12:57:09.80 ID:3ZfsBzX30.net
- >>751-753
ありがとうございます納得できました
なるべく簡潔に書こうと思っていたのですが良くない書き方だったみたいですね
グローバル変数は極力使わないようにとよく目にするので気をつけます
- 755 :名無しさん@お腹いっぱい。:2016/02/29(月) 17:14:21.74 ID:7awlWggQw
- >>744 自己レス
式による設定 7時から19時までの間に9分間隔で実行
毎日7時からカウントスタートする式
HH>=7 AND HH<19 AND ((HH*60+NN-(7*60)) MOD 9)= 0
- 756 :名無しさん@お腹いっぱい。:2016/02/29(月) 19:14:05.70 ID:7awlWggQw
- >>704
if -1 <> CHKBTN(GID,"閉じる") then CLKITEM(GID,"閉じる")
- 757 :名無しさん@お腹いっぱい。:2016/02/29(月) 20:24:39.97 ID:7awlWggQw
- >>709
http://www.uwsc.info/faq.html#N15
CLKITEM関数のCLK_ACC指定にてダイアログを出すと閉じるまで制御が戻らない #N15
CLK_LEFTCLK を付加してください。
CLKITEM(id, "xxx", CLK_ACC or CLK_LEFTCLK)
- 758 :名無しさん@お腹いっぱい。:2016/03/01(火) 00:51:55.84 ID:Hw/6RB5N0.net
- 基本的な操作でお恥ずかしいのですが、どうしても自力で解決できなかったので
ヒントだけでもお教えください。
Win 7 Professional 64 bit + IE 11での操作です。
テーブル内にダウンロード用リンクが複数(*および青文字のアルファベット部)あり、
それらを自動でひとつずつダウンロードしようとしています。
http://s1.gazo.cc/up/179236.jpg
画面の状態までは持ってこれたのですが、どうしても赤枠で囲った保存(S)を
押すことが出来ません。サンプルコードも試してみたのですが、
理解不足かIE, OSのバージョン違いなのか、上手く動作させられませんでした。
クリックすると緑枠部に一瞬新しいタブが出来ているのでそこが関係あるのか、
或いはCLKITEM部が間違っているとは思うのですが……。
A = 0
Repeat
DLLTEXT = IE.document.links[A].innertext
IfB DLLTEXT <>
- 759 :名無しさん@お腹いっぱい。:2016/03/01(火) 01:30:04.42 ID: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〜部は、ソースを確認したところ見えないリンクがあったので、それを回避しようと思い付け加えました。
長々とすみません。よろしくお願いします。
- 760 :名無しさん@お腹いっぱい。:2016/03/01(火) 04:46:22.39 ID:mSZ5heBH0.net
- IEの "ファイルのダウンロード" にて "保存" ボタンが反応しない #N23
http://www.uwsc.info/faq.html#N23
- 761 :名無しさん@お腹いっぱい。:2016/03/01(火) 07:01:07.94 ID:pMN1suyz0.net
- エクセルのマクロでリンクを取り出してファイルに書き出して、ロダに食わせるほうがいんでないのかね
- 762 :名無しさん@お腹いっぱい。:2016/03/01(火) 07:34:10.51 ID:uRkQmwxK0.net
- >>760-761
ありがとうございます。
#N23は試してみたのですが、上手く出来なかったのでWin7だからかIE11だから無理なのかと
思っていたのですが、何か間違えていたのかもしれません。
エクセルマクロの方は考えてもいませんでした。
あまりに手間取るようなら別の方法を試したほうがいいですね……。
もう少し自分でやってみます。ありがとうございました。
- 763 :名無しさん@お腹いっぱい。:2016/03/01(火) 07:53:15.84 ID:mSZ5heBH0.net
- であればクリックに必要なタイトル、クラス名を調査用のスクリプトを書いて調査したり
開発環境にあるSPY++をつかって調査したりすると良いよ
問題点は
保存ボタンがあるウインドウ(ポップアップ)のIDが取得できていない
保存ボタンのアイテム名が正しくない
のどちらかだからね
後、リンクのクリックまで手動でやってみて
保存ボタンのクリックだけスクリプトで可能かも評価が必要
失敗するなら
IEの操作(COM)にて、ダイアログが出ると動作が停止する #N25
http://www.uwsc.info/faq.html#N25
- 764 :名無しさん@お腹いっぱい。:2016/03/01(火) 07:57:24.35 ID:mSZ5heBH0.net
- あ、ごめん
リンククリック(手動)、保存ボタンクリック(スクリプト)→成功
リンククリック(スクリプト)、保存ボタンクリック(スクリプト)→失敗
なら
IEの操作(COM)にて、ダイアログが出ると動作が停止する #N25
http://www.uwsc.info/faq.html#N25
の対処も必要かも
- 765 :名無しさん@お腹いっぱい。:2016/03/01(火) 08:07:35.16 ID:w83/qWlj0.net
- ようわからんが
win7のie11で下を走らせて置いてダウンロードダイアログだしたら普通に押してくれるが
while true
if CLKITEM(GETID("Internet Explorer"),"保存(S)", CLK_ACC) then break
sleep(1)
wend
#32770これいらんのとちゃうんか
- 766 :名無しさん@お腹いっぱい。:2016/03/01(火) 22:50:42.13 ID:HDjL1sAH+
- >>763-764
親切にありがとうございます。
SPY++はVisualStudio?を持っていないので用意できなかったのですが、
類似のuuSPYを使用して調べたところ
親の"IEFrame"→子"Frame Notification Bar"→孫"DirectUIHWND"というクラス名の
ダイアログだと分かったので、そこから調べて操作できるようになりました。
問題点の洗い出し方も勉強になりました。これでもう少し自分で調べて解決できるように
なれそうです。
>>765
サンプルまで用意して頂きすみません。
実際に動かしてみたのですが、やはりIDが取得できていないのか
押してくれず……。
お二人とも親切にありがとうございました。
- 767 :749:2016/03/02(水) 01:27:17.46 ID:41jBzZAb0.net
- >>763-764
一応動作させることが出来ました。
結果的には、保存ボタンのウィンドウIDが取得できていなかったようです。
(クラス名IEFrameだと思っていたのですが、ダイアログは別の名前でした)
SPY++はVisualStudio?を持っていないので用意できなかったのですが、
uuSPYという類似ソフトで調べられました。
SPY++的なソフトの存在(というか問題の洗い出し方?)すら知らなかったので勉強になりました。
丁寧にありがとうございました。
>>765
サンプルまで提示して頂き、すみません。
流してみたのですが、やはり反応せず……
ダイアログが出た後もそのまま動いていったので、
動作停止したわけでもなさそうなんですが……
ともかく、ありがとうございました。
- 768 :名無しさん@お腹いっぱい。:2016/03/02(水) 20:36:33.34 ID:TfJohTOi0.net
- A.bmpがあったとき
Aからx+30、y+30の場所にB.bmpがあったときのみC.bmpを押す
画像範囲について検索しましたが画面全体から範囲を指定するみたいですし
Aはいろいろな場所に現れます Bは複数現れます
Aから相対座標で検索範囲指定するためにはどうすればいいのですか?
- 769 :名無しさん@お腹いっぱい。:2016/03/02(水) 20:39:40.47 ID:yBkd0HNE0.net
- >>768
【ヘルプより引用】
座標情報は配列変数 ALL_IMG_X[], ALL_IMG_Y[] に格納(配列はゼロから)
B探してから配列変数をコピー
ループさせながら相対範囲指定でAを探して
あればCをクリックしたら良いんじゃないかな
- 770 :名無しさん@お腹いっぱい。:2016/03/02(水) 21:39:50.37 ID:TfJohTOi0.net
- ありがとうございます いろいろ試してみます
- 771 :名無しさん@お腹いっぱい。:2016/03/03(木) 12:25:37.00 ID: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
格納がよくわかんないし雑だけどこんな感じは
- 772 :名無しさん@お腹いっぱい。:2016/03/03(木) 12:50:46.44 ID:Ck6IE5Sq0.net
- PCからスマホの内臓ストレージにファイルやフォルダを転送したいです。
アイテムには日本語が含まれているため、DOSCMD+ADBでは文字化けしていたので、
[MultiByteToWideChar][WideByteToMultiChar]を組み合わせましたが、
半角スペースや特定の文字のため、転送ができませんでした。
何か回避策はないでしょうか?
- 773 :名無しさん@お腹いっぱい。:2016/03/03(木) 14:01:05.13 ID:0xlIg63T0.net
- よく知らんから適当いうけど、コマンドプロンプトのshift_jisをUTF-8にするとかで解決しない?
- 774 :名無しさん@お腹いっぱい。:2016/03/03(木) 14:38:58.59 ID:o8n0++8T0.net
- UWSCってどう?
ブラウザとか制御しにくい気がするんだけど
- 775 :名無しさん@お腹いっぱい。:2016/03/03(木) 16:23:03.08 ID:Ck6IE5Sq0.net
- > 759
それも試しました。
CHCPでSHIFT−JISからUTF-8に変換して、書き込みに行ったんですが、
UTF-8化した文字列が受け付けませんでした。
- 776 :名無しさん@お腹いっぱい。:2016/03/04(金) 02:14:39.26 ID:EA8iP2810.net
- すみません、助けてください
bluestacks uwscをつかって自動化しようとしてるのですが
uwscのクリックを認識?してくれません
マウスでツムツムの操作は普通にできます。
bluestacksの代わりにエクセルを起動させておく(画面に表示)とクリックも認識してくれています。
非アクティブの問題かとおもいアクティブ化もいれてみましたがだめでした
助言お願いいたします
- 777 :名無しさん@お腹いっぱい。:2016/03/04(金) 02:49:01.44 ID:sp+52hH20.net
- UWSCが使いないアプリもある
bluestacksはそれ
以上
- 778 :名無しさん@お腹いっぱい。:2016/03/04(金) 04:06:59.33 ID:32k0gAq70.net
- genymotionで散々やったけど無理だったよ
ウィンドウは掴めるけど内部idが掴めない
- 779 :名無しさん@お腹いっぱい。:2016/03/04(金) 09:01:58.98 ID:lSRUIbNn0.net
- >>776
絶対座標は?
両方ともプロパティ-互換性-管理者として実行を試す
他にもgoogleでいろいろ試す
ダメならダメ
- 780 :名無しさん@お腹いっぱい。:2016/03/04(金) 17:10:22.64 ID:qcabtBIu0.net
- プログラミングって具体的な目標が無いと向上しないな
- 781 :名無しさん@お腹いっぱい。:2016/03/04(金) 19:28:46.89 ID:0avFt52T0.net
- MOUSEORG関数でMORG_DIRECTを指定するとCHKIMG関数とBTN関数の座標に
ズレが発生します。
どうせればズレを解消または補正できますか?
- 782 :名無しさん@お腹いっぱい。:2016/03/04(金) 20:28:03.15 ID:Cx1nPm1Z0.net
- >>781
たぶん、ウィンドウ座標とクライアント座標のズレが原因だから
ウィンドウ座標を基準にすれば一致すると思う。
- 783 :名無しさん@お腹いっぱい。:2016/03/04(金) 22:31:12.71 ID:6AjLUgCP0.net
- >>782
ウィンドウ位置を(0,0)に合わせて起動してもズレます
- 784 :名無しさん@お腹いっぱい。:2016/03/04(金) 22:53:16.26 ID:ojY0v8Jg0.net
- >>783
たいていウィンドウには枠があるでしょ
タイトルバーとかウィンドウを広げたり縮めたりする細い線
アレが影響してると思われるから
ウィンドウ位置を00にしても・・・
- 785 :名無しさん@お腹いっぱい。:2016/03/04(金) 22:54:21.95 ID:1DETh6nk0.net
- これはさすがにネタだろw
uwsc以前のWindowsの基礎知識の問題だぞ
- 786 :名無しさん@お腹いっぱい。:2016/03/04(金) 23:02:35.51 ID:Cx1nPm1Z0.net
- >>783
MOUSEORG( ID, MORG_CLIENT ) と MOUSEORG( ID ) で比較してみて
あと、CHKIMG で取得する座標は画像の左上になるけど、
検索画像と座標の間にどのようなズレがあるのか書いてね。
- 787 :名無しさん@お腹いっぱい。:2016/03/05(土) 04:26:25.45 ID: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
- 788 :名無しさん@お腹いっぱい。:2016/03/05(土) 04:31:42.39 ID:TP9s+Xc10.net
- MOUSEORG(id)とMOUSEORG(id, MORG_CLIENT)の座標逆でした
- 789 :名無しさん@お腹いっぱい。:2016/03/05(土) 05:02:22.36 ID:PQgaMRcF0.net
- >>787
http://www.vuzix.jp/dev/images/asm/device_list.png
この画像と比較すると、横の枠がない状態なので
タイトルバーの幅の分だけ MORG_CLIENT のありなしで違う状態ですね。
MORG_DIRECT の方は訳が分かりませんね。
原因を調べるには、MORG_DIRECT を指定した状態で SAVEIMG することです。
画面が崩れて見えると思います。
画面が崩れて見えるだけで、クリックが正常に行えるなら、
MOUSEORG をその都度実行して
CHKIMG のときは MORG_DIRECT なし
BTN のときは MORG_DIRECT あり とかにすればいいと思います。
- 790 :名無しさん@お腹いっぱい。:2016/03/05(土) 23:00:40.60 ID:+UaXZBac0.net
- WinnyでMP3ファイルを手に入れたのだが、10曲が1つのMP3ファイルになっている。
これを1曲ずつ10個のMP3ファイルに分けたいのだがどうしたらいいのかね?
- 791 :名無しさん@お腹いっぱい。:2016/03/05(土) 23:04:45.09 ID:t6t79+190.net
- うーん
わかんない!
- 792 :名無しさん@お腹いっぱい。:2016/03/06(日) 00:14:59.81 ID:dCUjX7lH0.net
- >>790
torスレに回答してくれてる人がいるぞクソ虫
- 793 :名無しさん@お腹いっぱい。:2016/03/06(日) 09:47:42.18 ID:TvpTaFVp0.net
- >>790
.zipをつけて解答
- 794 :名無しさん@お腹いっぱい。:2016/03/06(日) 10:49:16.69 ID:zGk8lpZo0.net
- >>790
手動でやればいいんじゃない?
- 795 :名無しさん@お腹いっぱい。:2016/03/06(日) 11:37:41.69 ID:RRLqddKE0.net
- 10個のmp3のアーカイブならともかく、10曲が一つのmp3になってるなら
編集ソフトで切り出すしかないのでは
- 796 :名無しさん@お腹いっぱい。:2016/03/06(日) 12:04:50.72 ID:WY+6IsJt0.net
- なんでおまえら答えてんの
- 797 :名無しさん@お腹いっぱい。:2016/03/07(月) 14:52:09.82 ID:9LHTjHFn0.net
- 関数の呼び出しで参照引数の初期値代入とか出来ないんでしょうか?
あらかじめ先に初期値代入するしかない?
abc(hoge=111)
print hoge
procedure abc(var hoge)
hoge = hoge + 100
fend
- 798 :名無しさん@お腹いっぱい。:2016/03/07(月) 15:09:06.92 ID:WbyHlW0e0.net
- なんじゃそれ
abc(111)
でいいだろ
- 799 :名無しさん@お腹いっぱい。:2016/03/07(月) 15:12:10.38 ID:WbyHlW0e0.net
- ああ、そんでhogeを続きの処理で使いたいのか
それで動かないんならできないんだろ
大人しく先に代入しとけよ
1行増えるだけじゃん
どうしてもそうしたい理由でもあんの?
- 800 :名無しさん@お腹いっぱい。:2016/03/07(月) 15:51:15.35 ID: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
- 801 :名無しさん@お腹いっぱい。:2016/03/07(月) 15:58:21.83 ID:9LHTjHFn0.net
- 上で挙げてるのはただの例です。
実際は参照引数が多く、引数の一部だけ初期値代入したいのと
print文は無いですね。
- 802 :名無しさん@お腹いっぱい。:2016/03/07(月) 16:09:04.11 ID:gjVyQnvH0.net
- はげ+150本 = そんなに増えていませんよ
- 803 :名無しさん@お腹いっぱい。:2016/03/07(月) 20:04:53.77 ID:tjYcm4Q90.net
- それは参照渡しを使うことが間違いなんじゃね?
- 804 :名無しさん@お腹いっぱい。:2016/03/07(月) 20:20:19.36 ID:tjYcm4Q90.net
- 参照引数ってのは値じゃなくてメモリの番地とかそういうものを入れてるんじゃなかったっけ?
だから参照引数に値は代入できない
- 805 :名無しさん@お腹いっぱい。:2016/03/07(月) 21:49:34.48 ID:Yt8oL/UZ0.net
- そもそも一度も代入も宣言もしていない変数は使えないよ
dim hoge
abc(hoge , 111)
print hoge
sleep(10)
procedure abc(var hoge , hoge0 = hoge)
hoge = hoge0 + 100
fend
これなら動くけど最初のdim文外すと怒られるから意味が無い
- 806 :名無しさん@お腹いっぱい。:2016/03/07(月) 22:27:49.67 ID:9LHTjHFn0.net
- 一つの関数で複数の変数を変更するのだけど、その関数より前には使わない
結果受け取り専用の引数で
a=0;b=0;c=0;…10個くらい //まあこれが無意味な文に思えてならない
abc(a,b,c,…)
procedure abc(var a, var b, var c,…)
…
fend
- 807 :名無しさん@お腹いっぱい。:2016/03/07(月) 22:43:28.84 ID:YgJHqyxo0.net
- >>797を見ると受け取り専用とは見えなかったけど
単にその目的なんだったら>>805の人が書いてるように
Dim a,b,c...
abc(a,b,c...)
でいいんじゃないの?
- 808 :名無しさん@お腹いっぱい。:2016/03/08(火) 09:25:26.60 ID:X39hgh8s0.net
- 1つの引数に参照渡しが多すぎるのは関数分割が出来てなくて
無駄に粒度が大きすぎる疑いがあるが、UWSCの言語仕様上仕方ない面もある。
それより使用する変数については、module変数とそのコンストラクタを利用して
初期化すれば何の問題もなくスマートに書けるはず。
ただし最初からそう書いていればスマートで苦労もないが、
後から直そうとすると抜本的な書き直しとなり苦労する俺。
- 809 :名無しさん@お腹いっぱい。:2016/03/08(火) 11:36:49.32 ID:mdQ0PQ+40.net
- >>808
正にそんな感じ…
参照引数が多いのは外部からのデータ取得を一気にやるせいで
その関数の内部は整理されてるんだけど。
最初は小規模なスクリプトで変数の管理とか適当で、後から書き加えていったから
今はこんなはずじゃなかったorzって状態になってて後悔してる。
- 810 :名無しさん@お腹いっぱい。:2016/03/08(火) 14:04:27.07 ID:EYyC3Yny0.net
- 質問です。
MOUSEORGを使用したバックグラウンド操作で、
マウスオーバーする方法ってありますかね?
マウスオーバーして出てくる画像の認識をしたいんだけどできぬ
- 811 :名無しさん@お腹いっぱい。:2016/03/08(火) 15:29:09.82 ID:X39hgh8s0.net
- それはバックグラウンドのウィンドウにマウスオーバーイベントを
発生させろと言っているに等しいんだが…
これ自動化ツールよ?
まずあなたが手動で隠れたウィンドウにマウスオーバーしてみなさいよ!
とんちかな?
- 812 :名無しさん@お腹いっぱい。:2016/03/08(火) 15:47:28.50 ID:YrarT/t10.net
- 一休さんのトラの屏風の事だな
次の方どうぞ
- 813 :名無しさん@お腹いっぱい。:2016/03/08(火) 15:52:30.08 ID:uEQeFD2u0.net
- mmvのこといってるんじゃない?
- 814 :名無しさん@お腹いっぱい。:2016/03/08(火) 15:58:04.94 ID:/957NIFT0.net
- 煽りたいだけで答えられないならちょっと黙ってろよ
俺は黙る
- 815 :名無しさん@お腹いっぱい。:2016/03/08(火) 16:05:17.57 ID:CELrwcnT0.net
- >>811
どういう理屈だよ
元々UWSCで出来るバックグラウンド操作は手動で出来ないでしょ
- 816 :名無しさん@お腹いっぱい。:2016/03/08(火) 16:25:16.15 ID:XRfaJMaM0.net
- バックグラウンド操作でもマウスオーバーイベントが発生するかどうかという
その対象ソフト側の問題なんだから、UWSCの質問じゃないぞ。
- 817 :名無しさん@お腹いっぱい。:2016/03/08(火) 16:54:18.27 ID:oQSRIGCR0.net
- なんかレベル下がったなここ
- 818 :名無しさん@お腹いっぱい。:2016/03/08(火) 17:08:25.81 ID:X39hgh8s0.net
- >>815
バックグラウンド操作は元々のUWSCのコンセプトPC操作の自動化を
あくまで拡張したものであって、
出来なくて当然のことが出来るようになった機能だよ。
それをあたかも出来て当然のように認識されても困るわな。
まぁこんなソフトが無料で使えるだけでも奇跡的なんだが。
マウスオーバーイベントをマウスオーバーせず強制的に
外から発生させることが可能なAPIが公開されてるならば、
もはやマウスオーバー画像を直接ぶっこ抜くことも出来るんじゃね?
自動操作というよりアプリハッキングだわな。
まぁこれであっさり出来ますよとかコードが出てきて
俺が逆立ちするハメになるかもしれんがw
- 819 :名無しさん@お腹いっぱい。:2016/03/08(火) 17:29:48.80 ID:d7jVEpko0.net
- Win32ApiのSendMessage(PostMessage)等を使ってイベントを発生させる方法はあるにはあるよ
それをアプリハックと呼ぶかは置いておいて
重要なのは作業中のマウスは普通に存在し続けているって事なので
バックグラウンドだと資源衝突が発生するのでやっぱり安定しないのよ
平たく言うとスクリプトがここにマウスがあるよとした直後に
本当のマウス位置に更新されるのでここにはマウスは無いよとなる
だからよく分からなければ別PC用意して最前面でやる
仮想環境が分かるならそっちの最前面でやれ(内部的なマウス位置が存在するので資源衝突しない)がFAQとなってるのよ
- 820 :名無しさん@お腹いっぱい。:2016/03/08(火) 17:39:00.04 ID:OiSIw5XY0.net
- VBScript で一般的なキー入力のエミュのやり方
https://msdn.microsoft.com/ja-jp/library/cc364423.aspx
"2"のキーをクリック
> WshShell.SendKeys "2"
ドライバ→Windows→アプリってのを
自動化ソフト→アプリって短縮しただけでしょ。
アプリに直接送る方が簡単だけど(それで動くとは言ってない)
UWSCが選ばれる理由は画像認識と操作の記録再生が簡単ってところだよ。
別に自動操縦が特別ってことはない。(特許を取ってるところはある)
- 821 :名無しさん@お腹いっぱい。:2016/03/08(火) 17:41:37.94 ID:EYyC3Yny0.net
- >>811-817
無知でごめんな
>>818-819
詳しく教えてくれてありがとう
やっぱり仮想環境構築か物理的にもう一台PC用意するのが手っ取り早いってことですね
仮想環境構築してやってみます
- 822 :名無しさん@お腹いっぱい。:2016/03/08(火) 17:43:25.86 ID: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,
- 823 :名無しさん@お腹いっぱい。:2016/03/08(火) 17:44:19.61 ID: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させるには
どうしたらいいでしょうか。
- 824 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:06:11.90 ID:mdQ0PQ+40.net
- ユーザー作成関数を組み込み関数であるかのように書かれても…
- 825 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:10:36.84 ID:mdQ0PQ+40.net
- あとそれスレッド1とスレッド2とほぼ同時に走るから実質同じものかと
- 826 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:16:33.76 ID:X39hgh8s0.net
- たしかUWSCのスレッドは、スレッド無いから呼び出したユーザー定義関数を、
そのスレッド内で実行しなかったような気が?
引数だけで算数して結果を返すだけのようなリエントラントな関数ならいいけど、
Windows上のリソースにアクセスするようなのは期待した動きをしなかった気がする。
試しに、自作関数を一時的にスレッドで呼び出すプロシージャ内に展開してやってみて。
- 827 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:32:29.53 ID: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
- 828 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:41:58.65 ID:bSkm1Om50.net
- 連投ですいません。
>>826
Windows上のリソースにアクセスするようなものではないですね。
ブラウザを2個起動した状態で同じ動作を並列処理させようとしてるのですが
>>827 の関数を使うと相対座標が片方に寄ってしまうんですよね。。。
展開すると関数が入れ子しているか、閉じていませんでエラーになります。。
- 829 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:46:18.69 ID:4EtCLtde0.net
- ID[i] = GETID(GET_FROMPOINT_WIN)
これってカーソルの下のウィンドウよね?
スレッドでほぼ同時に取得してるのにこれでIDきちんと2つ取れてるん?
- 830 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:49:12.06 ID:4EtCLtde0.net
- どっちか片方のIDしか取れてなくて2つのスレッドが同じウィンドウにMOUSEORGしているような気がする
ID二つとも確認してみたら
- 831 :名無しさん@お腹いっぱい。:2016/03/08(火) 18:59:56.84 ID:bSkm1Om50.net
- >>829
スレッド2側の処理ですが、以下のように処理されますので、
可能性としては低いと思われますが、念のため確認してきます。
UNTIL CheckColorScope(124,374,"R",35,10) ←×こっちがスレッド1側の相対座標に
BTN(LEFT,CLICK,80,108,100) ←◯こっちはスレッド2側の相対座標
- 832 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:03:16.67 ID:X39hgh8s0.net
- 今テストプログラムで確認してみたら、
PCが高負荷でなければスレッドがリソース云々は無かった。
それよか、各スレッドのpeekcolorが対象にするウィンドウIDが
mouseorgで指定されないから、
たまたまアクティブなウィンドウが対象になる。
ウィンドウID管理しなきゃ。
- 833 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:05:47.87 ID:X39hgh8s0.net
- 具体的には、スレッドにする関数の引数にウィンドウIDを追加して自作関数呼び出す直前にmouseorg
または自作関数の引数にも追加してpeekcolorの直前にmouseorg
- 834 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:22:19.67 ID:bSkm1Om50.net
- >>830 PRINTにID表示させてみました。1と2でしっかり別れてました。
>>832 助言感謝です。さっそくやってみます。
- 835 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:24:40.32 ID:X39hgh8s0.net
- mouseorg使ってたねスマンね、きっと想定通りにウィンドウIDが取れてないんだろうね。
現在対象にしてるウィンドウIDをball0onで表示するようにしてみるといいよ
(スレッドごとに表示されるのでID*100ぐらいの座標指定して重ならないよう別位置に表示)
- 836 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:27:50.46 ID:X39hgh8s0.net
- 被った、IDがいいなら後は判らんな
判定直前に対象ウィンドウをCTRLWIN(ID, ACTIVATE)してみるとか、
判定対象の位置付近にballoonを表示してみて見てるとこ合ってるかどうか確認
ぐらいかな
- 837 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:32:50.77 ID:bSkm1Om50.net
- >>836 了解です。バルーンで追うのはまだやってなかったので
バルーンでしばらく追いつつ試してみます!
- 838 :名無しさん@お腹いっぱい。:2016/03/08(火) 19:57:44.27 ID:OiSIw5XY0.net
- >>822
CALL をスレッド関数内でやってんの?
これはスレッドで動かないんじゃない?
あと、スレッドを使うならグローバル変数使うんじゃなく
データを渡してしまった方がいい。
なんで添え字を渡してグローバル変数の配列にアクセスさせるのかわからない。
そういうのはC言語でやってください。
C言語でも配列の添え字を渡してグローバル変数にアクセスとかしないと思うけど。
普通はアドレスを渡しますね。
別にグローバル変数にアクセスしてもいいんだけど
それは変化するデータをリアルタイムにアクセスする必要があるときや
スレッド関数から値を戻すときくらいですね。
一度取得したIDは変化しないからコピーを渡してしまって構わない。
- 839 :名無しさん@お腹いっぱい。:2016/03/08(火) 20:13:05.28 ID:X39hgh8s0.net
- それは多分ね、UWSCのスレッドとして呼び出した関数は、
戻り値を得ることが出来ないから、スレッドで取得した値を
メインから得る方法はグローバル変数しか無く、
スレッドがGETIDしたウィンドウIDをメインから見たいんじゃないかな。
CALLをスレッド内に入れるのはちょっと変態的なのは同意
- 840 :名無しさん@お腹いっぱい。:2016/03/08(火) 20:44:35.98 ID:bSkm1Om50.net
- 返事遅れて申し訳ないです!
別の方法(スレッド化せず処理)でさっくり想定通りの結果が得られました!
無駄に難しい処理しようとしてたんだなと・・・
ハマって色々学べたのでよかったです。
>>838 今後のために参考にさせて頂きますOTZ
>>839 他皆様、ご助言たくさんいただき有難う御座いました!
- 841 :名無しさん@お腹いっぱい。:2016/03/09(水) 17:41:50.93 ID:mQOmooo80.net
- getidで2窓で開いているIE上の同じページを区別させたいんですが、
クラス名で区別させるんだと思いますがそのクラス名が分かりません
今現在は
getid("ウインドウタイトル","IEFrame")
でやっています
どなたかお願いします
- 842 :名無しさん@お腹いっぱい。:2016/03/09(水) 18:17:29.81 ID:llmIWySs0.net
- やれているならそれで良いんじゃないの
クラス名が知りたいなら
自分で調査スクリプトを描け(個人的には最初に造るもんだと思う)
SPY++使えVisualStudioCommunityは無料でコレも付いてる
過去レスにSPY++互換ツールもあってそれを使っている人も居る
でもURLとかでクラス名は変わったりしないから一緒だよ
- 843 :名無しさん@お腹いっぱい。:2016/03/09(水) 18:25:43.67 ID:sRxQkC9R0.net
- >>841 教えてヤフーにあったよ
オイラもそれでフラッシュゲームのバックグラウンド化に成功した
(´・ω・`)
- 844 :名無しさん@お腹いっぱい。:2016/03/09(水) 18:47:20.16 ID:mQOmooo80.net
- >>842
ごめんなさい
今現在↓こう書いてるのですが、このIEFrameというのがクラス名ですよね?
getid("ウインドウタイトル","IEFrame")
二つ目のIEではこれはなんと書けばいいんでしょう?
>>843
お手数ですが、そのURL教えてもらえませんか?
- 845 :名無しさん@お腹いっぱい。:2016/03/09(水) 19:04:38.44 ID:sRxQkC9R0.net
- おいおい それぐらい自分で探しなよ
オイラはそれを保存してるからもうそのページに用はないんだよね
(´・ω・`)
オイラもフラッシュゲームのバックグラウンド化について
検索しながら試行錯誤しながら廻りまわってたどり着いたんだよね
オイラたちはヒントをだす
あとは自分で調べる、試す これは基本だよ
- 846 :名無しさん@お腹いっぱい。:2016/03/09(水) 19:26:22.70 ID:llmIWySs0.net
- 一般論として
クラス名は単なるウインドウの種類の宣言でしかない
従ってほぼ全てのアプリで2つ目のウインドウだからといって違うクラス名になったりはしない
それぞれのウインドウはIDで区別される
UWSCの機能だけでやろうとしたらGETALLWINを使ったりする
個人的にはIEのタブを探して操作するなら
SHDocVw.ShellWindows から目当ての SHDocVw.InternetExplorer を見つけてCOM操作するけれどね
どっちにしてもいきなり二つ目のウインドウってアクセスは出来ない
IEのウインドウをループで回して対象URLのウインドウをピックアップして集めてから
その何個目ってしないと駄目
- 847 :名無しさん@お腹いっぱい。:2016/03/09(水) 19:28:29.35 ID:llmIWySs0.net
- で、面倒臭いなと思ったら半自動スクリプトにしたら良いんだよ
スクリプトの最初に操作対象をクリックして下さいとか表示するとかね
完全自動化はそのための知識が揃ってからチャンジしたら良い
- 848 :名無しさん@お腹いっぱい。:2016/03/09(水) 19:59:37.81 ID:ZH6SCA5x0.net
- UWSC公式サイトのFAQに載ってる毎度の質問だな
- 849 :名無しさん@お腹いっぱい。:2016/03/10(木) 00:09:29.62 ID:kbf2APsQ0.net
- http://canal22.org/kansu/getctlhnd/
- 850 :名無しさん@お腹いっぱい。:2016/03/11(金) 02:09:47.22 ID:vpN6R87y0.net
- AutoHotKeyとの違いってなに?
こっちに出来て向こうにできない、またはその逆とか
- 851 :名無しさん@お腹いっぱい。:2016/03/11(金) 02:24:04.07 ID:q9CfIyKs0.net
- 日本語変数は無理なんじゃないかな
- 852 :名無しさん@お腹いっぱい。:2016/03/11(金) 02:34:58.77 ID:ZLCOlBAo0.net
- 自作関数をEXITで抜けるみたいに、CALLで呼んだものを途中で抜けるってできるの?
- 853 :名無しさん@お腹いっぱい。:2016/03/11(金) 03:46:02.49 ID:fLUkQ1x50.net
- EXITじゃないの?
- 854 :名無しさん@お腹いっぱい。:2016/03/11(金) 03:53:20.39 ID:8BXL68Gt0.net
- CALLが何かを全く理解してない奴って多いよね
- 855 :名無しさん@お腹いっぱい。:2016/03/11(金) 13:22:41.14 ID:TzmisRaw0.net
- 「呼んだもの」のなかで途中で抜けるように作れば抜けるし、最後までやるように作れば最後までやるだけだが。
- 856 :名無しさん@お腹いっぱい。:2016/03/11(金) 15:51:14.74 ID:9MIhB+Zw0.net
- Firefox系ブラウザ って
FLASHブラウザゲームに
MOUSEORGのMORG_DIRECTって使えないの?
BTNが反応しませんでした
Chromeは使えましたが、
Chromの方は、MORG_BACKがCHKIMGで認識しませんでした
- 857 :名無しさん@お腹いっぱい。:2016/03/11(金) 17:05:56.39 ID:xL247s8c0.net
- 煽りじゃなくて頑張った結果が使えないのなら使えないのでしょう
ブラウザはIE以外はマルチプラットフォームのため標準コントロールを使用していないし
裏になったら再描画しないパターンもあるしね
裏動作は出来る時もある位の気持ちで
仮想化環境を使って最前面か別PCが安定ってのがFAQだよ
- 858 :名無しさん@お腹いっぱい。:2016/03/11(金) 17:41:53.19 ID:uLXjBvrS0.net
- hoge=
- 859 :名無しさん@お腹いっぱい。:2016/03/11(金) 17:52:21.69 ID:uLXjBvrS0.net
- すいません、NGワードで弾かれたっぽいです
hoge="あいうえおあいうえお"
上記変数の、左から5番目の「お」だけを
「ん」に変えたいんですけど、そんな命令ありますか?
置換命令のREPLACEだと、番号指定は無理ですよね?
hoge=COPY(hoge,1,4)+"ん"+COPY(hoge,6)
遠回りな気がしますが、こんな感じにするしかないんでしょうか?
- 860 :名無しさん@お腹いっぱい。:2016/03/11(金) 17:57:29.45 ID:8eZkzZWt0.net
- 仮想化はOS用意しないといけないからなあ
linuxとか無料らしいからそれ使えればいいけどな
- 861 :名無しさん@お腹いっぱい。:2016/03/11(金) 18:21:03.26 ID:xL247s8c0.net
- >>859
それしかないって事はないけれど特に近道も無いよってのが答えだと思う
VBSの文字列操作用や正規表現用のオブジェクトを生成して処理したり出来るが
特に行数が減るわけではない(寧ろ増える)
昔と違ってメモリを節約する努力なんて不要なんだから
行数や命令を減らす努力はそれ程重要じゃない
最適化しすぎて同じ結果になるけれどやりたい事との文脈が違う場合とか
後から見ると混乱のもとになるからね
メインの処理のやりたい事が「文字列のn文字を入れ替える」なら
そういうユーザ関数を作成して抽象化したら良いのよ
- 862 :名無しさん@お腹いっぱい。:2016/03/11(金) 18:28:44.96 ID:HWMGVE3/0.net
- 遠回りどころか、処理的には replace よりむしろ近道なのでは
- 863 :名無しさん@お腹いっぱい。:2016/03/11(金) 19:10:33.56 ID:9aIMxtHY0.net
- >>856 ただのバックグラウンドならできる
(画面が隠れてたり最小化だとできない)
クラス名を取得してハンドルする
教えてヤフーにやり方のヒントがある
(´・ω・`)
- 864 :名無しさん@お腹いっぱい。:2016/03/11(金) 19:19:08.73 ID:LoB9QIb70.net
- バックグラウンドと画面が隠れていることの違いって何
- 865 :名無しさん@お腹いっぱい。:2016/03/11(金) 20:39:57.96 ID:9MIhB+Zw0.net
- >>863
クラス名なら、Firefoxは、MizillaWindowsClass
Chromeは、Chrome_RenderWidgetHostHWND
これは取得できて、ハンドルも取得できていて
それは、わかってるんです。
ただのバッググラウンド状態でももちろん試しました
Yahoo知恵袋なども結構参照した方です
ですが、IEとChromeは、MORG_DIRECTが使えて
Firefoxだけは、MORG_DIRECTが使えませんでした。
BTNが反応してくれない。それってあり得るんですかね?
- 866 :名無しさん@お腹いっぱい。:2016/03/11(金) 23:22:31.33 ID: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秒くらいの間隔で連打させたいのですが何を弄ればいいのでしょうか?
- 867 :名無しさん@お腹いっぱい。:2016/03/11(金) 23:37:24.40 ID:q9CfIyKs0.net
- 0.3秒+500ミリ秒+0.1秒=0.9秒
当たり前の話でんがな
- 868 :名無しさん@お腹いっぱい。:2016/03/11(金) 23:40:11.60 ID:q9CfIyKs0.net
- 間違えたハズカシ
つかchkimgは範囲が広いとそれだけ時間かかるからPCのスペック次第で時間が変わる
- 869 :名無しさん@お腹いっぱい。:2016/03/11(金) 23:55:24.06 ID:V+G/WUuc0.net
- >>868
なるほど、処理が追いついていないと
そこそこのスペック持たせてるはずなのに画像認識の処理ってけっこうパワーいるのに驚きです
- 870 :名無しさん@お腹いっぱい。:2016/03/12(土) 00:22:19.71 ID:vIYJtZWi0.net
- × BTN(LEFT,CLICK,1000,500)
○ BTN(LEFT,CLICK)
- 871 :名無しさん@お腹いっぱい。:2016/03/12(土) 00:58:30.41 ID:JA7kKoOW0.net
- >>870
その場合どうやって座標の指定をするので?
- 872 :名無しさん@お腹いっぱい。:2016/03/12(土) 05:37:53.21 ID:vIYJtZWi0.net
- あ、つい。数字をミリ秒と読んでしまって。
画像を小さくして範囲を絞れば速くなります。
範囲を絞るために GETID() で対象ウィンドウを特定して
STATUS() で座標を取って CHKIMG() で範囲を指定します。
MOUSEORGで基準座標を対象ウィンドウにすれば
範囲は 0, 0 からサイズ x, y で指定できるので楽です。
他の方法としては
数ドットの色だけで判定できる場合は
検索範囲の画像を SAVEIMG() でクリップボードにコピーして
クリップボードから PEEKCOLOR() で検索すると早いです。
でも、数ドットで済むようなら1秒もかかってませんね。
- 873 :名無しさん@お腹いっぱい。:2016/03/12(土) 08:55:36.12 ID: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要らないのでは
- 874 :名無しさん@お腹いっぱい。:2016/03/12(土) 12:51:15.36 ID:ah+GWDsu0.net
- ヒント@
ループ開始時に開始時間を記録
その他のボタンクリック前の時間と開始時間を引いて経過時間を記録
経過時間が300ミリ秒以内ならその時間だけスリープ
ヒントA
DEF_DLL timeGetTime(): LONG: winmm.dll //ミリ秒単位の時間を取得
(わざわざwin32api使うのはUWSCは経過時間の取得は小数点(割合)になるので直感的じゃないから)
- 875 :名無しさん@お腹いっぱい。:2016/03/12(土) 12:54:01.60 ID:fkR2rJoF0.net
- まあ今回の場合、処理が0.6秒位かかっているようだから
スリープ0にしたところでダメだし時間測るのは無意味と思うけどね。
どちらかというと範囲制限の方が有効だろう
- 876 :名無しさん@お腹いっぱい。:2016/03/12(土) 13:11:01.48 ID:ah+GWDsu0.net
- それ前提のつもりでした言葉足らずだったね
0.3秒感覚でクリックしたいならそうなるようなロジックが必要ですよと
- 877 :名無しさん@お腹いっぱい。:2016/03/12(土) 20:47:24.15 ID:XzxPU9E/0.net
- タイミングはシビアになるかもだけど、Thread()で0.3秒ごとにクリック
メインではChkimg()してヒットしたらフラグを立てて
Threadのほうのクリックを抑止してメイン側でクリック
とか?
- 878 :名無しさん@お腹いっぱい。:2016/03/13(日) 01:10:40.53 ID:yStCxW+O0.net
- まず最初にみんなありがとう
せっかく教えてくれるのにごめん
ミジンコにとっては半分近くが呪文だったのです
>>872
もうちょい画像絞ってみます
知らない関数もあるのでそれも調べてみます
>>873
sleepよりも何よりもelseifの存在を忘れてた自分が馬鹿でした
適当なサイトのコピーから改竄してたのですがこれでC+齧ってたのかと思うと恥ずかしいです
>>874
誤差分だけスリープなんてできたんですね
>>875さんの件も含めて考えて、それで処理時間含めての最短を設定できるように調整してみます
>>877
並列は考えたのですが他の作業中に「そこ」をクリックされると困るので破棄しました
それを破棄した理由が連打させたい時に画面には決まった画像というのがないという事なのです
拾い物の改竄だけだと何も身につかないと再確認して自分を恥じます
勉強しなおして出直しますのでその時また困ったらお力をお貸しください
- 879 :名無しさん@お腹いっぱい。:2016/03/13(日) 05:59:29.63 ID:Oa7DQQ9u0.net
- chkimg3つをそれぞれ別スレッドで動かして
発見フラグが一つもない時だけ1000,500をクリックでいいのでは
これなら今どきのマルチコアCPUなら3倍速で動くはず?
- 880 :名無しさん@お腹いっぱい。:2016/03/13(日) 10:34:38.97 ID:5BxruRGM0.net
- いまどきの Core i5 でも安いのは物理2コアなので3倍速になんてなりません。
タスクマネージャで4コアに見えても、2つは論理CPUかもしれません。
仮に4コアあったとしても、3コアをUWSCが独占したら残り1コアでアプリが動くわけで
ちょっと重すぎますね。
どうしてもクリック速度を上げないといけないなら
画像を工夫するか、ほかの画像処理ツールを使うべきでしょう。
UWSCだと3つの画像で3回キャプチャしますが、
キャプチャをして画像比較を別の画像処理ライブラリを使って比較すれば
1回のキャプチャで3回比較できます。
が、UWSCで比較しても遅いので高速な言語を使う必要が・・・
- 881 :名無しさん@お腹いっぱい。:2016/03/13(日) 10:38:41.65 ID:5BxruRGM0.net
- ARToolKitで複数マーカーを使ってみた
https://youtu.be/uoncHfnYWHM
ARToolKitを使った 「拡張現実感」
http://kougaku-navi.net/ARToolKit/
これだけグリグリ動くんだから
ビットマップの完全一致くらい一瞬じゃないとおかしいんだけどね。
おまけ
http://astertune.com/?p=1374
> OpenGLより高速で、iOSに特化したMetalというAPIが昨年登場 (2015年8月30日の記事)
http://codeit.blog.fc2.com/blog-entry-18.html
> SSE を使用することにより約二倍の高速化が見込まれ
http://tanakah.blogspot.jp/2011/02/gt5directx1.html
> 車速とギアを認識するDirectXフィルター
> やり方ですが、OpenCV1.0についてくるproxytransフィルターを改造してつくります。
> OpenCV cvMatchTemplate()
OpenCvSharp 投稿日: 2014年2月6日
https://jpusergis.wordpress.com/2014/02/06/opencvsharp/
C#ならUWSCからPowerShell経由で呼び出せるけど
呼び出しに1秒くらいかかるんだよね。
> 315 名前:Nekorabbit ◆jpnWwiLScI [sage] 投稿日:2014/11/30(日) 07:16:25.97 ID:aCUfDH4j0.net
> 画像認識関数 ChkImgX-ver1.2.0
> ttps://googledrive.com/host/0B83tioTzFacPRExEWlpEOXhWbDQ/ChkImgX-ver1.2.0.zip
>
> やっぱりOpenCVを使うようにした。それとソースコードを追加
- 882 :名無しさん@お腹いっぱい。:2016/03/13(日) 10:40:01.87 ID:5BxruRGM0.net
- やっぱりシンプルで高速なライブラリってのは他にないんだな。
シンプル過ぎてな。
- 883 :名無しさん@お腹いっぱい。:2016/03/13(日) 13:21:20.33 ID: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は片方の条件を見つけた時点で以降の条件は探さないらしい
これで動いてくれると思う
- 884 :名無しさん@お腹いっぱい。:2016/03/13(日) 13:44:27.34 ID:MyuwQ+3+0.net
- >>883
それ一緒だから。
実質スリープ無くしただけ
- 885 :名無しさん@お腹いっぱい。:2016/03/13(日) 14:35:12.26 ID:0ijLe2jo0.net
- UWSCのSHORTCIRCUITはオール・オア・ナッシングで
副作用への注意が必要だからあまり好きじゃない
短絡評価の条件式があれば良いんだけれどね
- 886 :名無しさん@お腹いっぱい。:2016/03/13(日) 16:32:38.86 ID:nEkRwzyP0.net
- ただの秒数設定ミスのクソ質問かと思いきや微妙に建設的な質問になっててワロタ
- 887 :名無しさん@お腹いっぱい。:2016/03/13(日) 16:45:35.50 ID:E0WmGTEK0.net
- >>878
いろいろな事を考えるとelseifでは対応できない場合も想定されるから
総合的に考えると
else
if
のままのほうがいいみたい?
まぁその分endifが増えるんだけど
- 888 :名無しさん@お腹いっぱい。:2016/03/14(月) 19:14:44.98 ID:i2rVe3gR0.net
- それは総合的に考えるモノじゃないだろう
必要に応じて使い分けるだけで
- 889 :名無しさん@お腹いっぱい。:2016/03/14(月) 22:57:21.23 ID:yWL5pN6J0.net
- 保守のやりやすさまで考えるとelseif一択
else ifのほうが綺麗に書けるケースはちょっと思い浮かばない
- 890 :名無しさん@お腹いっぱい。:2016/03/15(火) 01:55:30.43 ID:47j5cpZS0.net
- 個人的にifは二択のときだけ
それ以外の選択肢が増えそうなときとかはcase文の方を使いたいとこだ…。
- 891 :名無しさん@お腹いっぱい。:2016/03/15(火) 03:45:02.21 ID:SCAnh7Td0.net
- ifとcaseでは明確に用途が違うような。
- 892 :名無しさん@お腹いっぱい。:2016/03/15(火) 03:50:19.31 ID:dAPydsp10.net
- 俺はcaseは限定的な時にしか使いたくないな
逆にそれ以外はif分岐させてる
- 893 :名無しさん@お腹いっぱい。:2016/03/15(火) 04:07:47.33 ID:SCAnh7Td0.net
- いやいやいや
caseはひとつの条件式の結果で分岐するもので
elseifは複数の条件式を使うものでしょう?
かぶる部分も無いではないけど、普通は用途で決まるような。
- 894 :名無しさん@お腹いっぱい。:2016/03/15(火) 05:28:13.13 ID:47j5cpZS0.net
- 確かに用途でも決まるね。。
俺が想定してのが単純な一つの値の判定だったから混乱させて申し訳無い
複数の判定が一つの条件式にあると
後から読みにくかったり理解しにくくなったりしそうで
ifの中には一つの判定だけをなるべく書く様にしてるからつい…。
中にどんどんif入れてくのも同様の状態になるから入れ子は少なくすることを検討した作りにしてる
- 895 :名無しさん@お腹いっぱい。:2016/03/15(火) 11:35:32.40 ID:Ye8AnKp+0.net
- caseはbreakさせないって使い方もあるから、一概にどっちがいいとは言えないね
- 896 :名無しさん@お腹いっぱい。:2016/03/15(火) 11:57:04.20 ID:RI0XNTAs0.net
- なるほど思い出した
- 897 :名無しさん@お腹いっぱい。:2016/03/15(火) 13:32:13.65 ID:H7Ch8AYF0.net
- UWSCのSELECTはフォールスルー使えなくない?
ELSEIF連鎖はメーラーの振り分けみたいな優先順位付き判定群だから使い道が違う。
SELECTは1つの判定で複数の分岐。
UWSCのSELECTは、SELECTに書く式を空にして、CASE側に判定式書いても使えるんで、
ELSEIFと同様のこともできるってだけ。
- 898 :名無しさん@お腹いっぱい。:2016/03/15(火) 14:33:20.13 ID:K82PCnuw0.net
- >>897
> SELECTに書く式を空にして、CASE側に判定式書いても使える
なにそれ。そんなこと出来る?
試した限りではselectに式書かなかったら
case側に何を書いても最初のcaseが実行されるんだが。
select
case 0=1; print "0=1"
case 1=1; print "1=1"
selend
こんなのでも0=1って表示されちゃう。エラーも出ん。
- 899 :名無しさん@お腹いっぱい。:2016/03/15(火) 14:44:41.61 ID:zE0f+pvP0.net
- 空は無理だけど
Select trueとかにしておけばいける
- 900 :名無しさん@お腹いっぱい。:2016/03/15(火) 14:51:16.05 ID:215if6Wy0.net
- Selectの式の結果 と Caseの式の結果が
最初に一致するCase文が実行される感じなんかな
- 901 :名無しさん@お腹いっぱい。:2016/03/15(火) 15:13:32.26 ID:H7Ch8AYF0.net
- すまんね空は無理だった
ご指摘の通りtrueにすれば、式がtrueとなる最初のcaseが実行され、
空欄もしくはfalseだと、式がfalseとなるcaseが実行されるね。
- 902 :名無しさん@お腹いっぱい。:2016/03/15(火) 23:51:21.72 ID:PCeK8oit0.net
- CHKIMGで画像判別 一致したら then で
SOUNDでmp3を再生にしたんですが
音が出たり出なかったり
SLEEPでウエイトを入れたり 構文に trueにして同期させたりしても変わらない
レジストリ関係なのかな?
どこを弄れば直るんでしょうか?
- 903 :名無しさん@お腹いっぱい。:2016/03/16(水) 07:35:12.72 ID:LJ+euZnJ0.net
- 画像判別ができてないのか、音が出てないだけなのか切り分けできてんの?
- 904 :名無しさん@お腹いっぱい。:2016/03/16(水) 08:34:48.88 ID:nAh2yAGb0.net
- 単にChkimg()で一致してないだけじゃないのか
- 905 :名無しさん@お腹いっぱい。:2016/03/16(水) 08:56:46.03 ID:yzWTIl7F0.net
- あるある
- 906 :名無しさん@お腹いっぱい。:2016/03/16(水) 10:52:10.44 ID:8JIJQW6i0.net
- Windows7では問題なく動いていたのですが
仮想環境のWindows Vistaでは一部画像認識が上手くいきません
同じく仮想環境下のWindows7では問題ありませんでした
認識しない画像をVista内で切り取るとうまくいくのですが
それでは膨大な作業量になります
ご助言をお願い致します
- 907 :名無しさん@お腹いっぱい。:2016/03/16(水) 11:09:21.22 ID:/XbN41Fg0.net
- chkimgの色幅を試す
ChkImgXを試す
照合画像を造り直す
基本的にグラフィックドライバでイメージは変わる可能性があるという事を覚えておこう
だから使用する環境でキャプチャするのが鉄板
- 908 :名無しさん@お腹いっぱい。:2016/03/16(水) 11:16:46.80 ID:8JIJQW6i0.net
- ありがとうございます
ちょっと量が量なのでWindows7のライセンスもう一つを購入したいと思います
- 909 :名無しさん@お腹いっぱい。:2016/03/16(水) 18:04:20.19 ID:2Mv7Yb1h0.net
- >>907
グラフィックドライバで変わるのか
キャプチャのやり直しは正直疲れる
- 910 :名無しさん@お腹いっぱい。:2016/03/16(水) 19:52:25.50 ID:0mxs1TOv0.net
- 変わるんだよな〜 アンチエイリアスなんだろうな。
あとOSやブラウザの変更でフォントも変わることがあり、
文字列取得できなくて画像判定で代用してるとハマるね〜
環境で変わるのに対抗するのにも、一番有効なのは仮想化。
- 911 :名無しさん@お腹いっぱい。:2016/03/18(金) 14:40:05.44 ID: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でこういう事は絶対出来ないんでしょうか?
- 912 :名無しさん@お腹いっぱい。:2016/03/18(金) 15:05:30.02 ID:Y8LfVAQe0.net
- for は 初期値 終了値 加算値 をシンプルに表現してループさせる構文なので無理
- 913 :名無しさん@お腹いっぱい。:2016/03/18(金) 17:26:15.26 ID:Dic6Ty9l0.net
- if i<k then continue
...
if array[j]=t then k=i+t
とかじゃだめ?
- 914 :名無しさん@お腹いっぱい。:2016/03/18(金) 18:48:34.55 ID:37KGhb4W0.net
- 申し訳ない・・・知恵を貸して下さい・・・。
やりたい流れのイメージ
@一致画像をクリック
↓
画像判断。画像によって条件分かれ
(ここの作り方が不明・・・)
↓
B一致画像をクリック
↓
C一致画像をクリック
- 915 :名無しさん@お腹いっぱい。:2016/03/18(金) 18:50:26.76 ID: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がある場合は「B」へ
3、画像Aが無く画像Bがあった場合は↓
(Cの画像をクリック)
(Dの画像をクリック)
4、順番にC.Dの画像をクリックし終わったら
「@」最初の動作にへ戻る、
又は「B」へ通常移行。
又は「B」をスキップし「C」へ移行
――――――――――――――――――
- 916 :名無しさん@お腹いっぱい。:2016/03/18(金) 18:51:32.08 ID:37KGhb4W0.net
- 素人すぎて正しく伝わっているか心配ですが、
アドバイスを貰えると有り難いです・・・。
- 917 :名無しさん@お腹いっぱい。:2016/03/18(金) 18:56:09.29 ID:37KGhb4W0.net
- 尚、
「@」最初の動作にへ戻る、
又は「B」へ通常移行。
又は「B」をスキップし「C」へ移行
この3パターンは「3個同時で判定」ではなく、
全て「単体」で動作させる事を前提とした場合のスプリクトです。
- 918 :名無しさん@お腹いっぱい。:2016/03/18(金) 19:01:31.23 ID:JI+YMOVs0.net
- そうだね!がんばれ!
- 919 :名無しさん@お腹いっぱい。:2016/03/18(金) 19:13:18.26 ID:cs2HMD100.net
- フローチャート作って
- 920 :名無しさん@お腹いっぱい。:2016/03/18(金) 19:14:32.75 ID:37KGhb4W0.net
- >>919
了解致しました。
少々お待ち下さいませ。
- 921 :名無しさん@お腹いっぱい。:2016/03/18(金) 19:44:54.92 ID:37KGhb4W0.net
- >>919
お待たせしました。2パターン作りました。
画像Cからのジャンプ先は@にしてますが、場合によってBやCにも変えたいです。
http://www.dotup.org/uploda/www.dotup.org783399.jpg
http://www.dotup.org/uploda/www.dotup.org783402.jpg
シンプルに作ってみたのですが、どうでしょうか。
- 922 :名無しさん@お腹いっぱい。:2016/03/18(金) 20:28:40.25 ID:3mTNmK/i0.net
- そこまで出来てるならそのままコーディングすればいいだけじゃ?
- 923 :名無しさん@お腹いっぱい。:2016/03/18(金) 20:41:45.76 ID:XTMTGWl20.net
- >>922
元々スプリクトを使わない自動化ソフトを使っており、頭の中で流れの構築は出来ているのですが、
スプリクト上に起こすのがどうしても難しく、、。
頭でイメージ出来ているのに、絵に描けない状態です、、、。
- 924 :名無しさん@お腹いっぱい。:2016/03/18(金) 20:49:53.51 ID:wiffpfVZ0.net
- @, B, C をそれぞれ関数化するといいような気がするよ
- 925 :名無しさん@お腹いっぱい。:2016/03/18(金) 21:06:54.37 ID:a/2iCbr10.net
- >>921です。
正直センスが無さ過ぎて、見せるのも恥ずかしいのですが・・・。
一応途中まで作ったスプリクトです。
http://www.dotup.org/uploda/www.dotup.org783529.jpg
- 926 :名無しさん@お腹いっぱい。:2016/03/18(金) 21:43:41.41 ID:p+rJK2780.net
- >>925
画像1と画像2の関係性は?
画像1をクリックしたら画像1が消えて画像2がでてくる?
画像1をクリックしたら画像1も画像2も表示されてる?
- 927 :名無しさん@お腹いっぱい。:2016/03/18(金) 22:12:44.85 ID:a/2iCbr10.net
- >>926
画像はクリック毎に、前の画像は消えて、
次は必ず決まった画像が一個出ます。
画像判断の所だけ、別の画像が出てくる場合がある為、
この様な条件付き画像判断スプリクトを組み込む必要があります。
- 928 :名無しさん@お腹いっぱい。:2016/03/18(金) 23:36:00.24 ID:lyGpkKZO0.net
- たぶん、"IF"ってのの使い方を勉強するといいと思う
- 929 :名無しさん@お腹いっぱい。:2016/03/18(金) 23:44:46.31 ID:p+rJK2780.net
- >>927
while 1
if chk 画A
if chk 画C
elseif chk 画B
endif
elseif chk 画B
if chk 画D
elseif chk 画C
endif
elseif chk 画A
elseif chk 画@
endif
wend
こういう感じ?
- 930 :名無しさん@お腹いっぱい。:2016/03/19(土) 00:04:11.56 ID:SY2bECL70.net
- while true
画像クリック("画像@")
画像クリック("画像A")
if chkimg("画像A") then break
画像クリック("画像B")
画像クリック("画像C")
wend
画像クリック("画像B")
画像クリック("画像C")
procedure 画像クリック(画像)
chkimg(画像)
btn(left, click, G_img_X, G_img_Y)
fend
- 931 :名無しさん@お腹いっぱい。:2016/03/19(土) 00:08:39.27 ID:BW58rut60.net
- フローチャート作れるならトライアンドエラーで頑張れ
- 932 :名無しさん@お腹いっぱい。:2016/03/19(土) 01:41:22.95 ID:bIkT5e8S0.net
- >>930
素人の私でもめちゃくちゃ分かりやすいです、激しく感謝します!
動作確認してみましたが、全く問題なく希望通りの動きをしてくれました!
最後にもう一つだけ教えてください・・・。画像Cの後に「wend」を持ってきて
一番最初の「while true 」に戻らせてループさせようとしたらエラーが出ました。
これは何が原因になるのでしょうか??
- 933 :名無しさん@お腹いっぱい。:2016/03/19(土) 01:43:58.70 ID:4bvWfFXm0.net
- whileとwendは必ず1個ずつのセットじゃないとだめ
一連の処理を繰り返させたいなら、wendを画像Cの下に置くだけじゃなくて最初のwhileの更に上にwhileを置かないと
- 934 :名無しさん@お腹いっぱい。:2016/03/19(土) 01:56:50.27 ID:bIkT5e8S0.net
- >>933
私も最初そう思ったんですが、なんかエラーが出たのであれ・・?と思いまして
http://www.dotup.org/uploda/www.dotup.org784002.jpg
こういう事ですよね?
- 935 :名無しさん@お腹いっぱい。:2016/03/19(土) 02:07:08.90 ID:FgddRy/I0.net
- trueが無いじゃん。
- 936 :名無しさん@お腹いっぱい。:2016/03/19(土) 02:07:45.33 ID:4bvWfFXm0.net
- ワロタ
- 937 :名無しさん@お腹いっぱい。:2016/03/19(土) 02:08:06.81 ID:jrQgNiRM0.net
- 最初のwhileの条件が無いとか?
ヘルプで分かる内容は質問しない方がいいよ
- 938 :名無しさん@お腹いっぱい。:2016/03/19(土) 02:35:41.05 ID:bIkT5e8S0.net
- while true
初歩的なミスでした、、、申し訳ないです。
皆様のアドバイスのお陰で本当に捗りました。
繰り返しになりますが、有り難うございます!
wend
- 939 :名無しさん@お腹いっぱい。:2016/03/19(土) 02:56:04.14 ID:tZvnxb2Q0.net
- インデント入れろよ。
- 940 :名無しさん@お腹いっぱい。:2016/03/19(土) 03:59:10.94 ID:aYU7I2EX0.net
- みんな優し過ぎてww
- 941 :名無しさん@お腹いっぱい。:2016/03/19(土) 08:12:31.88 ID:BINz+wH10.net
- 優しいな
俺がこんな質問した時は完全スルーされたぞ
- 942 :名無しさん@お腹いっぱい。:2016/03/19(土) 08:20:59.56 ID:fFrQFvev0.net
- 自分でコードを書く努力している人だからでしょ
- 943 :名無しさん@お腹いっぱい。:2016/03/19(土) 11:07:56.96 ID:YmXGVn/20.net
- フロチャート作ってちょっとづつスクリプトを書いてまめにテストする
オイラの経験上ifb while たまにbreakでたいがいのゲームは動く
コツは最初はsleepに余裕をもって書く
パートを分けるんだな 戦闘、補給、修理 これらをcallで呼び出す
そうするとイベントやりながら通常戦闘もできるぞ
ゲームの完全自動化までがんばれ
(´・ω・`)
- 944 :名無しさん@お腹いっぱい。:2016/03/19(土) 11:21:09.91 ID:YmXGVn/20.net
- あとゲームにありがちな点滅、明滅するボタン
ボタンの上に光がもやもやしてたり炎がメラメラしてるときは
他の安定してる画像をchkimgしてそこからx+A y+Bするときっちりボタン押せるぞ
(´・ω・`)
- 945 :名無しさん@お腹いっぱい。:2016/03/19(土) 14:27:55.04 ID:7vlPDXm10.net
- >>944
そういうのは短い時間でchkimgを繰り返せば認識できるぞ
- 946 :名無しさん@お腹いっぱい。:2016/03/19(土) 14:43:51.18 ID:w1t+Hd6h0.net
- >>945
それするぐらいなら>>944のほうが確実
- 947 :名無しさん@お腹いっぱい。:2016/03/19(土) 14:54:36.33 ID:7vlPDXm10.net
- >>944では通用しないケースは割とあるからな
- 948 :名無しさん@お腹いっぱい。:2016/03/19(土) 20:11:11.15 ID:BINz+wH10.net
- メラメラはいつもは諦めてほかの画像からの相対座標使ってますけど
メラメラは一致するまでwhile chkimgでいいのですか?
メラメラは私も苦手です
- 949 :名無しさん@お腹いっぱい。:2016/03/19(土) 20:26:21.82 ID:71k0Vm/10.net
- 色幅を持たせてchkimgすればいい
- 950 :名無しさん@お腹いっぱい。:2016/03/19(土) 20:52:39.80 ID:BINz+wH10.net
- >>949
ありがとうございます。感謝します
もう一つ質問失礼します
今色幅IMG_MSK_BGR4でやったのですがもっと広げる方法ありますか?
メラメラが水色-黄色-赤みたいな感じのメラメラです
- 951 :名無しさん@お腹いっぱい。:2016/03/19(土) 20:57:57.92 ID:bgGs7ybY0.net
- そこまでは無理
- 952 :名無しさん@お腹いっぱい。:2016/03/19(土) 21:02:17.45 ID:BINz+wH10.net
- >>951
ありがとうございます。素直に相対座標を使います
- 953 :名無しさん@お腹いっぱい。:2016/03/19(土) 21:04:56.10 ID:szW1lJKS0.net
- 色無視入れたらどう
- 954 :名無しさん@お腹いっぱい。:2016/03/19(土) 21:49:17.82 ID:BINz+wH10.net
- gifのメラメラは色幅と色無視両方1秒以内で認識しました
FFのような(画像?)メラメラはどちらもダメでした。10秒タイムアウト
では失礼します
- 955 :名無しさん@お腹いっぱい。:2016/03/19(土) 21:50:22.43 ID:71k0Vm/10.net
- >>950
定数じゃなくても、自分で好きな数値指定できるよ
- 956 :名無しさん@お腹いっぱい。:2016/03/19(土) 22:48:20.75 ID:ejAiv50P0.net
- 不特定多数の場で堂々とゲームの自動化を口にするでないグラブル厨か?
ぼかして言うのが作法だぞ。
作法を守らないならネトゲそのものが嫌になるような脱洗脳スクリプト貼るからな。
- 957 :名無しさん@お腹いっぱい。:2016/03/19(土) 22:49:54.86 ID:ejAiv50P0.net
- にしても本当にフローチャート書いてくるのは珍しいな。
構造文もまともに知らない時点でこれなら十分適正あるな。
- 958 :名無しさん@お腹いっぱい。:2016/03/20(日) 02:13:45.61 ID:PtQjd96F0.net
- 以前まではここでゲームの話題はNGだったんだけどね
質問者も変われば回答者も変わった
- 959 :名無しさん@お腹いっぱい。:2016/03/20(日) 02:49:33.10 ID:157+05md0.net
- その以前の前のことも知らんのか
ほんとに変わったな
- 960 :名無しさん@お腹いっぱい。:2016/03/20(日) 07:39:38.49 ID:6LNOBso90.net
- peekcolor関数を使う際に範囲が 指定できますが、
マウスカーソル周囲を指定することってできないのですか?
- 961 :名無しさん@お腹いっぱい。:2016/03/20(日) 07:45:07.67 ID:6rS3nJ0Q0.net
- 範囲でない座標のみ
そしてマウス座標は特殊変数に入っている
ヘルプの スクリプト→スクリプト関数→特殊変数 辺りを見ろ
あと本当に周辺を調べたいなら
PEEKCOLORをループさせるユーザー関数化する必要があるぞ
- 962 :名無しさん@お腹いっぱい。:2016/03/20(日) 08:00:40.40 ID:6LNOBso90.net
- ありがとう
マウス座標そのものではなく、
マウス座標から、その周辺を調べたいんです
最終的にPEEKCOLORでマウス座標周辺の色を取得し続けるという動作をしたかったのですが
すみませんPEEKCOLORをループさせるユーザー関数とは、どんなものでしょうか
もう少し詳しく教えてくれませんか
- 963 :名無しさん@お腹いっぱい。:2016/03/20(日) 08:17:15.47 ID:h63WLHEt0.net
- フローチャートじゃなくてそのまんまコードじゃん
- 964 :名無しさん@お腹いっぱい。:2016/03/20(日) 08:51:03.34 ID:6rS3nJ0Q0.net
- 考える事を否定している人にはヒントすら惜しいなぁ
マウス座標は特殊変数に入っている
マウス座標の周辺とは矩形であれば−10と+10とかで表現可能
Forは変数に初期値、終了値、増減値を設定してループ可能
後はユーザー関数の引数と戻り値かな
判断材料(引数)とその結果(戻り値)なんで
同じ色が複数あった場合にどうしたいかとか
考えることは色々あるよ
- 965 :名無しさん@お腹いっぱい。:2016/03/20(日) 16:51:23.89 ID:xNax6tI9f
- peekcolorが遅い。
具体的には1点15msくらいかかる。
UWSCが全体画像取得から1点取り出して調べてるから遅いんであって、
ある程度範囲をまとめて取得したいってのがこの質問の趣旨じゃないかな?
そんな方法ありませんか?
ないです。
このスレにある画像判定Xを使うと、3つの画像判定が1回分の画像判定の処理速度でできたりとかするんですか?
それなら画像をドットにして代用できそうですが?
- 966 :名無しさん@お腹いっぱい。:2016/03/21(月) 19:07:10.29 ID:7t5Ndceu0.net
- >>932です。以前、皆様より頂いたアドバイスを元に自分なりにスプリクトを考えてみました。
一応希望通りの動作はしてくれる為、内容としては完成しました。
もしよろしければ「もっとこうしたらいいよ」「こういうやり方もあるよ」等
厳しいお言葉でも結構ですので、アドバイスを頂けると幸いです。
http://www.dotup.org/uploda/www.dotup.org787636.jpg
http://www.dotup.org/uploda/www.dotup.org787638.jpg
- 967 :名無しさん@お腹いっぱい。:2016/03/21(月) 19:43:31.70 ID:FyEV7Y7F0.net
- 斬新なインデントですね
- 968 :名無しさん@お腹いっぱい。:2016/03/21(月) 19:49:10.85 ID:WT79cWH60.net
- エクセルかこれ…?
まずはまともなテキストエディタを拾ってくるのが先だろ
- 969 :名無しさん@お腹いっぱい。:2016/03/21(月) 19:54:36.21 ID:JOINNpX40.net
- やっぱりゲームか・・・
- 970 :名無しさん@お腹いっぱい。:2016/03/21(月) 20:02:44.88 ID:ZoeE04qr0.net
- >>967
インデントというか、自分なりに見やすくした結果
こういう分け方になりました・・
- 971 :名無しさん@お腹いっぱい。:2016/03/21(月) 20:09:11.46 ID:ZoeE04qr0.net
- >>968
テキストエディタという物の存在自体をしりませんでした・・・。
サクラエディタという物をDLしてみましたが・・・めちゃくちゃ便利ですねこれ・・。
- 972 :名無しさん@お腹いっぱい。:2016/03/21(月) 23:00:19.32 ID:+SrzIg6H0.net
- サクラエディタは強調ワードにUWSCスクリプトを指定できるのは過去ログ読めば出てくるしやってるよな?
インデントはこれかな〜
https://ja.wikipedia.org/wiki/%E5%AD%97%E4%B8%8B%E3%81%92%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB
https://www.google.co.jp/search?&q=%E5%AD%97%E4%B8%8B%E3%81%92%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB
- 973 :名無しさん@お腹いっぱい。:2016/03/21(月) 23:20:08.26 ID:Dl8KMauT0.net
- >>966
ゲームマクロはにごせって言われただろ馬鹿
- 974 :名無しさん@お腹いっぱい。:2016/03/22(火) 00:18:54.15 ID:YYqgpZK30.net
- >>971
emEditorってのもオススメ
サクラと使い分けるのもいいけど
- 975 :名無しさん@お腹いっぱい。:2016/03/22(火) 04:46:30.63 ID:DDV+vLl80.net
- ゲームマクロの質問に答え始めるとド初心者のマクロの話題だらけになるぞ
- 976 :名無しさん@お腹いっぱい。:2016/03/22(火) 07:19:13.62 ID:ey+ZWHj+0.net
- インデント難しい
字下げすると見にくくなって自分でよく解らなくなる
- 977 :名無しさん@お腹いっぱい。:2016/03/22(火) 07:41:59.43 ID:GjQDazUb0.net
- 字下げして見難くなるとか何かがおかしい
- 978 :名無しさん@お腹いっぱい。:2016/03/22(火) 08:10:41.21 ID:C5ffbueJ0.net
- while x
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
//komento
while y
if x = y then break
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
wend
//komentoooo
while z
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
if x = y //komentoooooo
xxxxxxxxxxxxxx
xxxxxxxxxxxxxx
else
xxxxxxxxxxxxxx //komento
xxxxxxxxxxxxxx //komento
endif
wend
wend
- 979 :名無しさん@お腹いっぱい。:2016/03/22(火) 08:45:39.65 ID:1TlcaC730.net
- aaa(){
// こっちつかう
}
aaa()
{
// これの人も多い
}
- 980 :名無しさん@お腹いっぱい。:2016/03/22(火) 09:00:46.38 ID:C5ffbueJ0.net
- } else { //これが無性に気にくわない
- 981 :名無しさん@お腹いっぱい。:2016/03/22(火) 09:02:54.38 ID:1TlcaC730.net
- となると下が一般的なのかな?
- 982 :名無しさん@お腹いっぱい。:2016/03/22(火) 09:35:25.64 ID:S1yVAMwN0.net
- ここは幼稚園か
uwscと関係ない話はほどほどにな
- 983 :名無しさん@お腹いっぱい。:2016/03/22(火) 23:47:34.60 ID: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
お願い致します。
- 984 :名無しさん@お腹いっぱい。:2016/03/23(水) 00:11:32.78 ID:Y8+Uhjvq0.net
- ゲームマクロの質問に安易に答えるとこうやって調子こいて次から次へとこういう質問をしてくる
- 985 :名無しさん@お腹いっぱい。:2016/03/23(水) 00:23:26.39 ID:F3sbSHdJ0.net
- >>983
スレチ。
特異点を見つけるだけ。
- 986 :名無しさん@お腹いっぱい。:2016/03/23(水) 00:24:03.93 ID:LGiv8vs60.net
- >>983=>>920じゃないの
当人だとしても別人だとしてもばかちんにかわりは無いけど
- 987 :名無しさん@お腹いっぱい。:2016/03/23(水) 00:53:32.64 ID:Y8+Uhjvq0.net
- どう見ても同一人物
- 988 :名無しさん@お腹いっぱい。:2016/03/23(水) 01:37:19.33 ID:ojrTHT/Q0.net
- しょうもない質問で埋まってきたな
- 989 :名無しさん@お腹いっぱい。:2016/03/23(水) 11:51:42.28 ID:CF5/3UwB0.net
- 同一人物じゃねぇだろ。
前のヤツはもう完成したスプリクト張ってたし
- 990 :名無しさん@お腹いっぱい。:2016/03/23(水) 12:00:41.47 ID:CF5/3UwB0.net
- >>983
>>945これでいいじゃん。なにが問題なの?
- 991 :名無しさん@お腹いっぱい。:2016/03/23(水) 12:34:28.58 ID:Pb+9aq2M0.net
- > スプリクト
- 992 :名無しさん@お腹いっぱい。:2016/03/23(水) 14:20:10.33 ID:LGiv8vs60.net
- スプリクトで検索した結果くそわろち
903 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 18:56:09.29 ID:37KGhb4W0 [4/6]
尚、
「@」最初の動作にへ戻る、
又は「B」へ通常移行。
又は「B」をスキップし「C」へ移行
この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です。
正直センスが無さ過ぎて、見せるのも恥ずかしいのですが・・・。
一応途中まで作ったスプリクトです。
http://www.dotup.org/uploda/www.dotup.org783529.jpg
913 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 22:12:44.85 ID:a/2iCbr10 [2/2]
>>926
画像はクリック毎に、前の画像は消えて、
次は必ず決まった画像が一個出ます。
画像判断の所だけ、別の画像が出てくる場合がある為、
この様な条件付き画像判断スプリクトを組み込む必要があります。
- 993 :名無しさん@お腹いっぱい。:2016/03/23(水) 14:21:00.41 ID:LGiv8vs60.net
- 951 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/21(月) 19:07:10.29 ID:7t5Ndceu0
>>932です。以前、皆様より頂いたアドバイスを元に自分なりにスプリクトを考えてみました。
一応希望通りの動作はしてくれる為、内容としては完成しました。
もしよろしければ「もっとこうしたらいいよ」「こういうやり方もあるよ」等
厳しいお言葉でも結構ですので、アドバイスを頂けると幸いです。
http://www.dotup.org/uploda/www.dotup.org787636.jpg
http://www.dotup.org/uploda/www.dotup.org787638.jpg
974 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/23(水) 11:51:42.28 ID:CF5/3UwB0 [1/2]
同一人物じゃねぇだろ。
前のヤツはもう完成したスプリクト張ってたし
- 994 :名無しさん@お腹いっぱい。:2016/03/23(水) 14:49:52.58 ID:q+4+2VgZ0.net
- www
- 995 :名無しさん@お腹いっぱい。:2016/03/23(水) 14:53:03.90 ID:Y8+Uhjvq0.net
- ブラゲクソガキは自演までしてんのか
この共通した無駄な部分がある糞コード見りゃ同じってすぐに分かるのにな
- 996 :名無しさん@お腹いっぱい。:2016/03/23(水) 15:24:33.17 ID:tn83PLJk0.net
- >>989
>>989
>>989
- 997 :名無しさん@お腹いっぱい。:2016/03/23(水) 15:24:46.46 ID:NjVpGs9j0.net
- 最初に突っ込んでやろうかと思ったけどスルーしておいてよかった
- 998 :名無しさん@お腹いっぱい。:2016/03/23(水) 15:29:26.46 ID:iSrnwjTb0.net
- 975 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/23(水) 12:00:41.47 ID:CF5/3UwB0 [2/2]
>>983
>>945これでいいじゃん。なにが問題なの?
このレスがまた笑えるw
- 999 :名無しさん@お腹いっぱい。:2016/03/23(水) 15:49:32.31 ID:SZmWshPl0.net
- 画像認識ってゲーム系以外だと主に何に使うの?
- 1000 :名無しさん@お腹いっぱい。:2016/03/23(水) 16:32:45.56 ID:U9esxu690.net
- スプリクト
- 1001 :名無しさん@お腹いっぱい。:2016/03/23(水) 18:53:42.87 ID:2z8VVxvV0.net
- スクリプトをスプリクトというのは既出をガイシュツ(何故か変換できない)みたいなもんだろ。
動きのある画像判定は工夫次第、方法を自分で編み出して秘密にしておかなければ広まったら対策されるだけ。
ヒントとしては状況を特定するための手段なのであれば、その状況を確定できる動きのない不透過部分がないか探すのが第一。
直接だけではなく対象のソフト上でサブメニュー出してみたり何なりの間接的な手段も併用する。
動きのある画像しかなければ、その動きが一番遅くなる時の1コマの画像を使い、
動きがループして最初に戻るまでの間、継続的に判定し続ける。当然処理は遅く重くなる。
- 1002 :名無しさん@お腹いっぱい。:2016/03/23(水) 19:01:18.76 ID:VyfxdPXZ0.net
- すぷりくと という間違いがバカにされてるわけじゃないんだよ?
- 1003 :名無しさん@お腹いっぱい。:2016/03/23(水) 19:24:36.03 ID:qNW8EAYN0.net
- >>1001
すぐに誤字や変換ミスを指摘するのは病んでるよ
もっと余裕持たないと顔に出ちゃうよ
- 1004 :名無しさん@お腹いっぱい。:2016/03/23(水) 19:33:23.63 ID:OFvmjkT/0.net
- ゲシュタルト崩壊してきた
- 1005 :名無しさん@お腹いっぱい。:2016/03/23(水) 19:56:05.50 ID:NgjE2cjv0.net
- 現在タイマー設定の式による設定で
(9<=HH AND HH<18) AND ((YMDNN mod 25) = 0)
として9時から18時までプログラムを実行させているのです。
これをもう少し細かく8時40分から17時55分までにしたいのですが、
どのように設定したらよいでしょうか?
- 1006 :名無しさん@お腹いっぱい。:2016/03/23(水) 20:06:18.89 ID:vA7M7au70.net
- >>1005=ID:kLHNktmf0
だからここは拾ったスクリプトの改造法を聞くとこじゃない
- 1007 :名無しさん@お腹いっぱい。:2016/03/23(水) 20:12:20.70 ID:LGiv8vs60.net
- >>1001
これ以上わらかさないで
次スレいってくる
- 1008 :名無しさん@お腹いっぱい。:2016/03/23(水) 20:14:26.73 ID:LGiv8vs60.net
- http://potato.2ch.net/test/read.cgi/software/1458731603/l50
はい
- 1009 :991:2016/03/23(水) 20:18:27.14 ID:vA7M7au70.net
- >>1005
と思ったら、これってUWSC本体のスケジュール設定のことか。失礼。
こんな機能は自分でスクリプトに組み込んだ方が楽だから、使う人少ないと思う。
- 1010 :名無しさん@お腹いっぱい。:2016/03/23(水) 20:30:41.58 ID: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)
- 1011 :名無しさん@お腹いっぱい。:2016/03/23(水) 21:21:44.74 ID:xEMVsYD30.net
- >>1005
時間を分に直せばいいんじゃない?
- 1012 :名無しさん@お腹いっぱい。:2016/03/23(水) 21:43:13.06 ID:OPsOkY1U6
- >>1005
スケジュール設定->タイマー設定->式による設定 8時40分から17時55分まで25分間隔で実行
(840<=HHNN AND HHNN<1755) AND (YMDNN mod 25) = 0
- 1013 :名無しさん@お腹いっぱい。:2016/03/24(木) 00:46:59.95 ID:WL420SBN0.net
- >>1010
ありがとうございました
- 1014 :名無しさん@お腹いっぱい。:2016/03/24(木) 06:03:20.37 ID:IqeVqZIs0.net
- > YMDNN mod 25) = 0)
これって日によって起動時間が変わると思うけどそれでいいの?
- 1015 :名無しさん@お腹いっぱい。:2016/03/24(木) 12:03:56.76 ID:WL420SBN0.net
- >>1014
確認してみたら日によって起動時間変わっちゃってました
毎日8時40分から17時55分まで25分おきに実行させたいのですが…
分に直して
(520<=NN AND NN<1075) AND ((YMDNN mod 25) = 0)
と入力すると「1年以内での実行はなし」と出てしまいました
- 1016 :名無しさん@お腹いっぱい。:2016/03/24(木) 12:43:37.75 ID:LgRlES+x0.net
- >>1015
HHを分に直せよ・・・
- 1017 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
- 1018 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1018
304 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★