- 1 名前:名無しさん@お腹いっぱい。 [2015/11/11(水) 13:45:28.80 ID:+oPzgSay0.net]
- Windowsの作業を自動化するツール
フリーソフト版とシェアウェア版の2種類がある ttp://www.uwsc.info/download.html ●UWSC 掲示板(※作成依頼掲示版ではありません) 質問の際には自力で作ったスクリプトを晒すか、具体的な解らない場所を提示すること 上級者が常駐、たまに作者も現れるため過去ログには有益情報の宝庫 www3.rocketbbs.com/13/bbs.cgi?id=umiumi www3.bigcosmic.com/board/s/board.cgi?id=umiumi&mode=past ●UWSC - Wikipedia ja.wikipedia.org/wiki/UWSC ●使い方・基礎解説学習サイト uwsc.g.hatena.ne.jp/cx20/20100131/1264938584 www.confrage.com/uwsc/ necro.jp/dev/uwsc/ park14.wakwak.com/~simizu/uwsc/fruwsc.html canal22.org/ big.tm.land.to/handbook/uwsc.htm www.game-rev.com/review/gameut/uwsc.html ●スクリプトテンプレサイト izagne.com/uwsc/ scripts.web.fc2.com/ www.nagomi-jp.net/~liners/ nem.symphonic-net.com/uwsct/0610uwsct.html siromasa.digi2.jp/uwsc/ iriyak.adam.ne.jp/uwsc.html 前スレ 自動化ツールUWSC使いよ集まれ15 anago.2ch.net/test/read.cgi/software/1436671958/
- 390 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 11:17:24.22 ID:mAXZzVR/0.net]
- >>360
if文の「then」が抜けてるからじゃね? uwscの昔のバージョンは?昔はifbとか必要だったし
- 391 名前:330 mailto:sage [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つの問題の切り分けを正確にやれ これも色んな所で応用できそうです。 勉強になりました。 ありがとうございました。
- 392 名前:名無しさん@お腹いっぱい。 [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
- 393 名前:名無しさん@お腹いっぱい。 mailto:sage [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()
- 394 名前:363 mailto:sage [2016/01/24(日) 18:57:49.92 ID:8jDz2v8Q0.net]
- ありがとうございました。
Thread FunctionA()でProcedure FunctionA()を呼び出すようにしたら、1ファイルでもうまく走りました。 そんな使い方ができるとは、勉強になりました。
- 395 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/25(月) 05:10:15.14 ID:pb4QYEcB0.net]
- SETHOTKEYで、現在実行中の関数を抜けるようにしたいのですが、可能でしょうか
SETHOTKEYは引数で関数を指定しますよね そこでEXITをしてもその関数を抜けるだけで意味がないし、EXITEXITだと全体が終了してしまうしで・・・ その時やっている関数だけ終わらせて次の関数へ移る、ってのは無理なんでしょうか
- 396 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/25(月) 06:22:07.25 ID:6V8NCtbv0.net]
- mode=数字 とかで対処したらどうなの?
- 397 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/25(月) 10:52:45.34 ID:fsXZoFnX0.net]
- SetHotKeyで数値を変えてその数値を見てExitさせるかGetKeyStateでExitをぶち込むか?
- 398 名前:名無しさん@お腹いっぱい。 mailto:sage [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
- 399 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/25(月) 12:31:13.16 ID:pb4QYEcB0.net]
- >>372-374
ありがとうございます やっぱりそういう感じしか無理ですかね・・・ SETHOTKEYでフラグの値変えて判定するん
- 400 名前:セったら
>>373さんの言うようにGETKEYSTATEでEXITしちゃえばいいだけなんですよね・・ [] - [ここ壊れてます]
- 401 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/25(月) 18:14:55.64 ID:B+E8sfr+0.net]
- YOU ! EXIT しちゃいなよ!
- 402 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 01:24:28.70 ID:jn4ZRk/I0.net]
- 前にwhileを一杯並べてbreak2みたいな構図にするなっていうタブー的なこと話してたけど
関数から関数よんで関数関数からなかなか抜け出せなくなるのもやっぱりタブーだったりするの?
- 403 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 02:14:56.87 ID:deFC+MwW0.net]
- それはスタックオーバーフローを起こしやすい件とは全然関係ないから
自分で管理できているならそれでいいんだよ グループで構築していてメンテナンスを他人がする場合は グループ内のコーディングルールが必要なだけさ
- 404 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 06:08:30.62 ID:ApvsqQfK0.net]
- >>375
GETKEYSTATEは呼ばれたタイミングでしか評価しないから、取りこぼしが発生する。 SETHOTKEYは取りこぼさないけど、フラグ見るまでディレイが生じる。 全く同じではないよ。用途次第でどっちが適しているか考えないと。
- 405 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 06:31:22.72 ID:ApvsqQfK0.net]
- >>379
すまん。 実験してみたら、コール時点で評価ってわけじゃないんだな。 sleep(19
- 406 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 06:34:49.06 ID:ApvsqQfK0.net]
- 送信ミス。
sleep(10) if GETKEYSTATE(VK_A) then PRINT "A" endif でスリープ中に押したAが認識されてた。
- 407 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 07:15:35.06 ID:jehVgdMQ0.net]
- なにこの一人相撲
- 408 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/26(火) 10:40:36.70 ID:deFC+MwW0.net]
- FAQなのよー
プログラム開始時点で全てのKEYSTATEはクリアされていて GETKEYSTATEが呼ばれたら、呼ばれるまでに押下されていたらTRUEを返すって関数 つまりループ前に終了用のキーが押下されていればループしないケースとかあるので 空呼び出ししてクリアする必要があったりする
- 409 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 07:36:27.55 ID:12Zxt+CV0.net]
- サブ機のWindows10環境で動作確認して上手く行ったからメインも10にしたんだが
Windows10環境だとモニタがオフになったらCHKIMGで画像認識出来なくなる・・・ 動作確認が甘かったぜ・・・何か対処方法ありませんか?
- 410 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 09:50:24.39 ID:Gihgo/qC0.net]
- スリープしない設定にしてモニタの電源を切る
- 411 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 10:00:04.50 ID:12Zxt+CV0.net]
- いや当然Windows7時代から、そうしてるんだが・・・
- 412 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 10:12:50.14 ID:jZMYF+Ys0.net]
- 10はモニターの電源切ると画面の描画もしなくなるってことか
すごいな
- 413 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 11:00:11.15 ID:12Zxt+CV0.net]
- >>387
そうみたいだね モニタにハードスイッチ付いてれば良いんだが・・・ OSの制御でモニタの電源切るしか無いのがイタイ Windows7の時はこれでも描画してたんだがグラフィック関係ごと電源落としてるのかね
- 414 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 11:19:55.96 ID:4oyilgdN0.net]
- ハードスイッチがついたモニタを買う
モニタのコンセントを抜く ハードスイッチがついてないモニタってなんだ?一体型?
- 415 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 11:47:36.48 ID:12Zxt+CV0.net]
- 隣のPCのモニタの開いてる端子に繋いでマルチモニタとして認識させたら行けたわ・・・
(隣のPCモニタの表示は切り替えず元のまま) 無理矢理感MAXだけど仕方ないね こんなところで仕様変更有るとは想像もしてなくて参った
- 416 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 12:08:40.68 ID:x0sPMmFo0.net]
- 一部のゲームとかソフトとかでGetkeyとか使えなくなってたりしてるの確認してる
ウィンドウ指定するとき右クリック入れてからやるようにしてるからその辺使えないと困る うぃん10使ってたの1時間未満ですぐに戻した 戻してもいいなら戻したほうがいいのではとも思う た
- 417 名前:だよくある質問でchromeがmouseorgでバックグラウンド画像認識しようとしたらできないって人がいるけど
win10だと出来るっていうことは確認した >>188の件 [] - [ここ壊れてます]
- 418 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/27(水) 18:55:11.83 ID:baMEr/z1e]
- //test.uws
DIM A=999999999999999 PRINT A //999999999999999 PRINT A+1 //1E15
上記のテストで変数が15桁まで対応してるのがわかる
- 419 名前:名無しさん@お腹いっぱい。 [2016/01/28(木) 20:52:58.52 ID:ARfwwneo0.net]
- 皆さんこんばんは
スケジュール機能で40以上登録したいのですが、増やすにはどうしたら良いでしょうか?
- 420 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 21:16:25.64 ID:vsEjcj1E0.net]
- UWSC.INIの
[SCHEDULE] MaxNumber=**←ここいじれ
- 421 名前:名無しさん@お腹いっぱい。 [2016/01/28(木) 21:28:21.68 ID:ARfwwneo0.net]
- >>394
できたーーーーーーー!!!! ありがとう!マジ感謝!ちゅちゅちゅちゅちゅ
- 422 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/29(金) 10:51:30.38 ID:jpG6pbsk0.net]
- YOU ! EXITしちゃいなよ!
- 423 名前:名無しさん@お腹いっぱい。 [2016/01/30(土) 03:55:44.75 ID:M5n6V6080.net]
- >>390
たとえば俺の Lenovo のノーパソだと Fn+F2 キーでモニタOFFにできるんだけど これならBIOSレベルでやってるだろうから大丈夫だったりするんじゃないかな。
- 424 名前:名無しさん@お腹いっぱい。 [2016/01/30(土) 04:03:53.47 ID:Kxa/SQA40.net]
- 今日始めたばかりなのでわからない事だらけですがよろしくお願いします
下記の作業をさせたい場合どうすればいいですか? ・画像1がある時に画像1をクリック ・画像2がある時に画像2をクリック ・画像3がある時に画像3をクリック 同じ画像が同時に出てくる事はありません 画像が出てくるのに少し時間がかかるので見つかるまで再検索 下記の文で実行したところ最初の時点で画像は出ていてもクリックをしてくれません エラーも吐かずずっと再生状態のまま何もしてくれませんでした 一応自分なりに調べてみたのですが解決しなかったので知恵をお貸しください repeat sleep(0.2) until chkimg(
- 425 名前:名無しさん@お腹いっぱい。 [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)
- 426 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 04:16:36.53 ID:Q6ySmrDa0.net]
- そりゃ画像見つかるまでループで順番に1、2、3ってやったら
画像2か3が出た場合、画像1のチェックを延々やるだけになるに決まってるだろ ループ1回の間に3つチェックにしないと IFBで3段階入れ子にするとかしないと
- 427 名前:名無しさん@お腹いっぱい。 [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 これでも無理でした
- 428 名前:名無しさん@お腹いっぱい。 [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の実行ファイルと同じところに置いています
- 429 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 04:41:16.12 ID:RmoOYQCx0.net]
- IFB chkimg("1.bmp")がFALSEなら、画像が間違ってるとしか言いようがない
- 430 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 05:15:28.84 ID:Q6ySmrDa0.net]
- うん、>>398で言ってるやりたいこと以前に画像が検出できてないだけじゃん
- 431 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 06:28:10.77 ID:Fh+9y7iS0.net]
- >>398は見当違いな事言ってるように見えるが
画像2や画像3以前に画像1の時点でダメなんだろ 画像1のみでやってもミスってんだから
- 432 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 09:07:24.64 ID:2SEEQedG0.net]
- どこまで行ったのかを確認できるようにログを残すようにしてるんだけど普通何の関数使うんだろ
今はSendStrでやってるんだけど
- 433 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 09:31:52.50 ID:Q6ySmrDa0.net]
- ?
PRINT使えば普通にログ残るだろ? わざわざ別の方法でログ取ってるのか?
- 434 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 10:03:26.42 ID:BggHBUaW0.net]
- uwsc
- 435 名前:うそつかない 1.bmp一致しない 画像変えるよろし []
- [ここ壊れてます]
- 436 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 10:09:18.79 ID:2SEEQedG0.net]
- なんだよそれちょっと調べてくるわ
- 437 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 14:56:11.94 ID:RmoOYQCx0.net]
- 最近のchromeの更新でflashの表示のされ方がかわったっぽい気がする
以前に作った画像が認識されず、システムの復元で戻したら認識された
- 438 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 14:58:21.22 ID:t4gyFyGY0.net]
- ChromeはFlash内蔵しちゃったからな
- 439 名前:名無しさん@お腹いっぱい。 mailto:sage [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 って書かないとだめな事をついさっき知った 多分これで今まで挫折したほとんどの操作ができる気がする これについて勉強したいんだけどどこかに記載ってある?
- 440 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 17:22:29.38 ID:xqf/0swG0.net]
- 最近getElementsByTagNameなんか使ったこと無いわ…
querySelectorばっかり
- 441 名前:名無しさん@お腹いっぱい。 [2016/01/30(土) 19:15:44.12 ID:M5n6V6080.net]
- >>412
XPath で記述して展開させたらシンプル
- 442 名前:名無しさん@お腹いっぱい。 [2016/01/30(土) 20:53:56.31 ID:CxNcpNVU0.net]
- 最近はじめたのですがUWSCスクリプト編集に最適なおすすめエディタはなんですか?
とりあえずnotepad++を使ってますが「\」が使えのがイマイチだと思ってます
- 443 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 21:20:46.06 ID:Pytl/RXf0.net]
- atom
- 444 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 00:29:08.15 ID:osD6olzu0.net]
- サクラエディタのUWSCキーワードモード
- 445 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 00:30:58.41 ID:TDN+J1+m0.net]
- 標準で関数名に色が付くMeryでいいんじゃね?
つづりで間違って悩んだりもしないだろうし
- 446 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 00:51:01.33 ID:pVIrtpdo0.net]
- >>416-418
ありがとうございます いろいろ試してみます
- 447 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 06:56:23.26 ID:MAkpvZ6c0.net]
- >>403-405,402
ありがとうごさいました 画像を差し替えたところ成功しました
- 448 名前:名無しさん@お腹いっぱい。 [2016/01/31(日) 08:29:30.29 ID:kKfsHKLi0.net]
- 質問なのですが、UWSCでサーチエンジンと言うソフトを操作しようと思っても
全く動作してくれません。これは自動化するにあたって、UWSCでは操作ができないアプリもあるということなのでしょうか?? ご教授いただけると幸いです。
- 449 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 08:38:31.98 ID:sUTMeQpI0.net]
- できないアプリもある
- 450 名前:名無しさん@お腹いっぱい。 [2016/01/31(日) 09:35:09.11 ID:/i6usHVb0.net]
- >>422
やはりですか、、、それがわかっただけでも得るものは大きいです
- 451 名前:名無しさん@お腹いっぱい。 mailto:sage [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の配列戻しが上手くいかないでしばらく頭抱えてた
- 452 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 15:20:17.78 ID:cL2tI1rC0.net]
- Split()の返値はSafeArrayだから定義するならSafeArray()じゃない?
- 453 名前:名無しさん@お腹いっぱい。 mailto:sage [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 これだけでもうごくみたいだけど・・・どうなの?
- 454 名前:名無しさん@お腹いっぱい。 mailto:sage [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) //←ここ
- 455 名前:
next の書き方がわかんなかった dim a[3] にすれば通るのねってことで土日が終わった [] - [ここ壊れてます]
- 456 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 20:16:13.80 ID:rJZHZ5Hk0.net]
- そうですか
- 457 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 20:28:40.93 ID:cL2tI1rC0.net]
- >>427
>戻値 = SPLIT( 文字列, [区切文字列, 空文字処理フラグ, 数値処理フラグ] ) >戻値 > 作成された一次元配列(SAFEARRAY型) 返値がSafeArrayなのにDIM定義の配列で受けるのがおかしいだろって 遠回しに言ったつもりだったんだけど・・・
- 458 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 20:48:30.79 ID:W6132sy20.net]
- SAFEARRAYとはなんぞやDIMとの違いはって
HELPみてもさっぱり載ってないもんでよくわかんなかったのです 戻値 = SAFEARRAY( [下限, 上限]) ↑の定義はどこでするのん?みたいな
- 459 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 21:06:58.46 ID:RkOVI4vxn]
- 気になって見ていたら本当に載ってなくてワロタ
- 460 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 21:04:45.22 ID:mevx1vWE0.net]
- SAFEARRAYはメモリ内での並び順が保証されている配列で宣言したければ普通の変数としてDIMしたら良いだけの話
- 461 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 22:04:46.46 ID:ymVVdFl90.net]
- リファレンス見たり、マクロ記録してコピペして作るクソ汚いコードなら簡単なやりたい事作れるようになってきたんだけど、スッキリした綺麗なコーティングとかは何を勉強すれば出来るようになるの?
- 462 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/31(日) 22:28:54.39 ID:h2MIJWcH0.net]
- 他人の綺麗なコードを見て弄って真似をする
- 463 名前:名無しさん@お腹いっぱい。 mailto:sage [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型がないとは言ってない) って感じでわけわかめ
- 464 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 00:37:00.65 ID:+rnmEAjm0.net]
- 変数の名前で後になって困ることが多い
・適当に名づけて似たような変数名があふれてごっちゃに ・名前を決めかねて、後から読むと意味の読み取れない変数名に ・コードをなおしていくうち、当初の意図とは違うコードになり意味が合わなくなる ・コピペしてきたコードなので意味が合わなくなる こういうのを最初から見越してきちんと決めていくと良いコードになるのかなあ でも、変数使うときって、思考の中心は「こういうコードを作ろう」だから、 変数名に気を取られると「こういうコードを作ろう」の中身を忘れちゃったりするんだよな
- 465 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 00:42:55.69 ID:baaBe9/W0.net]
- せっかく日本語使えるんだから日本語でつけちゃえばいい
- 466 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 01:03:00.84 ID:VsiPttLF0.net]
- 単純にスコープの管理が甘いと思う
広いスコープの変数なら「何を保持しているのか」が中心にした方が良い UWSCはクラスのインスタンスを作れないから オブジェクト指向的に変数を管理し難いのが難点だよね それでも自分はある程度の規模のスクリプトならクラスを造って変数を管理するけれどね
- 467 名前:429 mailto:sage [2016/02/01(月) 01:45:10.84 ID:+rnmEAjm0.net]
- >>438
そういうものがあるのか 関数まとめて別ファイルに入れてこっちで呼び出して……みたいなことやってるからちょうど良さそう オブジェクト指向と言う名前は聞いたことある、程度の初心者だけど、いい機会だから勉強してみるよ ありがとう
- 468 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 02:55:35.27 ID:BoGYQ2nB0.net]
- 名前が決まらないのはその目的(責務)が明確になってないのが原因でもある
- 469 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 08:25:33.84 ID:8RvGbPw20.net]
- 未熟な自分では考えてもできなかったのでご教授ください
t=
- 470 名前: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つ目文に対してのみというのができなくて詰まってしまいました [] - [ここ壊れてます]
- 471 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 09:04:45.92 ID:g7iI5XSU0.net]
- if X and A
elseif !A endif
- 472 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 09:33:11.94 ID:pZZgy3PS0.net]
- ifb CHKIMG("X.bmp") AND CHKIMG("A.bmp")
こんだけのことやんけ
- 473 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 15:18:36.89 ID:hzvm75kL0.net]
- option shortcircuit付けてな
- 474 名前:名無しさん@お腹いっぱい。 mailto:sage [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
- 475 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 16:12:58.29 ID:hzvm75kL0.net]
- 使わずにっていうのは、本体の一時停止をやりたくないのか
それとも本体に設定されたホットキー以外のキーで一時停止したいのか どっち?
- 476 名前:名無しさん@お腹いっぱい。 mailto:sage [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
- 477 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 17:20:38.17 ID:Th0k4/oZ0.net]
- あと、本体の一時停止ホットキーは
本体から動かしてるスクリプトには有効ですが ランチャー等から起動した別のスクリプトには無効みたいです
- 478 名前:名無しさん@お腹いっぱい。 mailto:sage [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でコードの頭に登録すればそれ以降の処理内で一々中断用のコード書かなくてもいいから保守性も高いよ
- 479 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/01(月) 17:41:43.95 ID:hzvm75kL0.net]
- UIが無い別プロセスのスクリプトにも有効なのは有効だよ。
ただ、2つ以上のスクリプトが動作してると、キーが消費されちゃうので 連打するとか押しっぱなしにするとかしないと効かない。 あーでも一時停止は連打はダメか。 停止のホットキーは押しっぱなしで全プロセス停止に効く。 本体を一時停止してもいいなら、SETHOTKEYで任意のキーを押した時に UWSC本体に一時停止のホットキーを送るってのもありかと。 あと停止はループさせるよりMSGBOXとか出す方が便利とは思うが。
- 480 名前:名無しさん@お腹いっぱい。 mailto:sage [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
- 481 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/02(火) 07:05:55.13 ID:Mf47p9PS0.net]
- >>451
ttp://uproda.2ch-library.com/916238SO2/lib916238.uws 俺はこんな感じでやってる 実際に使うときはウィンドウ指定してアクティブ時にキーチェック
- 482 名前:オてる []
- [ここ壊れてます]
- 483 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 13:22:20.05 ID:bYNIn2Du0.net]
- Google Speech API と組み合わせて音声入力させるものって作れるかなあ?
- 484 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 14:03:46.64 ID:fyQC3oxA0.net]
- すみません、UWSCってこのスレで初めて知ったんですが、業務で利用されてる方いらっしゃいますか?
- 485 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 15:21:36.98 ID:ja3vwQ+v0.net]
- いますよー
- 486 名前:名無しさん@お腹いっぱい。 mailto:sage [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) 上記のように指定しても画像検索はできますが座標がおかしくなってまともに動きません。 座標を直接指定しても、画像の場所に直接クリックにしても常に左上の端のみをクリックする状態となっています。 どのように指定をすればいいでしょうか?
- 487 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 18:42:53.73 ID:Ml8C21Ff0.net]
- mouseorgは通用するアプリとしないものがあると何度いわれたらry
- 488 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 19:06:31.07 ID:zrOVrXZR0.net]
- >>456
teamviewer昨日導入したわ。タイムリーな。ツムツムかな? 俺はダイアログ消す方で解消したわ。 UWSCのスケジュールの指定ウィンドウが現れた時で、ダイアログを消すスクリプト登録したらいい感じ。
- 489 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 19:21:35.52 ID:cVw67MCx0.net]
- >>457
ありがとうございます。 自分では通用するのかどうかがわからなかったのと、画像検索はできたので方法があるのかと思い聞いてみました。 申し訳ありませんでした。 >>458 そうだったんですね。 俺は別のゲームです。 プログラミング初心者の為勉強しながらになりますが頑張って組んでみます。 ありがとうございます。
- 490 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 19:25:47.32 ID:I350w/WA0.net]
- >>456
MORG_DIRECTをMORG_CLIENT変える
|
|