- 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/
- 80 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 15:14:10.19 ID:r3ygr5190.net]
- > CALL UWSファイル名.uws(xxx, xxx, ...) // 引数を付けた場合に値は PARAM_STR[] 変数に入る
CALLでスクリプトを呼んだ時のように、不定個の引数を受け取って 内部で配列として扱う関数を作りたいのですが、どうしたら出来るでしょうか?
- 81 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 16:20:50.27 ID:t2yi2j7b0.net]
- SafeArry使いなよ
- 82 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 16:58:26.39 ID:r3ygr5190.net]
- SafeArrayを使うとは具体的には?
引数が不定数だと、実行時に引数の数が違うと怒られてしまうんですが。 配列を作る関数が欲しいのですが、順序が逆の 先に配列を作ってから関数に入れる事しか思いつかないです。
- 83 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 19:35:50.10 ID:kvx4k+FL0.net]
- pram[] が使える言語も受け側は配列として処理するだけの糖衣構文
あると便利な機能だけど無いとコレが出来ないって事はない 結果に加工した配列が欲しい場合はSafeArray使えって話でしょ UWSCはpram[] は使えないので配列長なしの配列を引数に使うしか無いので こんな感じで引数用の配列を用意する必要があるのは仕方ない Dim a[] = 1,2,3 Dim b[] = 5,10 Print JOIN(test(a), ",") Print JOIN(test(b), ",") Function Test(value[]) Dim iMax = Length(value) - 1 result = SAFEARRAY(0, iMax) For i = 0 To iMax result[i] = value[i] * 2 //2倍に加工 Next Fend //実行結果 //2,4,6 //10,20
- 84 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 23:27:48.86 ID:3Sfs5iCK0.net]
- 引数を多目に書いておいて関数内で処理するんはダメなのか?
- 85 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 00:57:58.26 ID:DCQo+QOr0.net]
- 要するに不特定の因数を受け取って配列を吐き出したいんだろ?
関数内で配列を作るか関数外で用意しておいたところに入れるかの差はあるが 関数内で配列を作って外に放り出すにはSafeArrayしかないし 関数外であらかじめ用意しておくなら配列数でリサイズすればいいだけじゃないっていう話 関数に不特定の因数を渡す際には セパレータ記号を付けて一つの因数にしておいて、関数内で分解すればよろし dim array = test(a+"#"+b+"#"+c+"#"+d+"#"+e) function test(param) testarray = safearray(0, 0); testarray[0] = token("#", param) while pos("#", param); testarray[resize(testarray, resize(testarray)+1)] = token("#", param); wend result = testarray; fend
- 86 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 10:58:24.63 ID:R9oruk2c0.net]
- UWSC初心者です。つまづいてしまったのでどなたかお教えください。
Bluestacks上でアプリを起動してマウス操作などの自動化を行いたいのですが記録されても再生するとマウスがBluestacks上動いたりクリックしたりしません。PCゲーでは今まで動いていたのですが‥ なぜでしょう?どなたかお
- 87 名前:願いします。 []
- [ここ壊れてます]
- 88 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:08:48.43 ID:6gzLq2020.net]
- >>80
内部で配列として扱いたいだけで、出力は配列というわけではないのです。 結局のところ、不特定数の引数を受け取りたいだけなんですが、 そのままの入力はどうやら無理のようですね。 素直に配列作って渡すことにします。 無名配列でも作れたらよかったのですが。 ありがとうございました。
- 89 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:24:54.22 ID:zICgyZ9/0.net]
- >>82
単純に受け側でsplitで良いような…
- 90 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:37:45.83 ID:6gzLq2020.net]
- 受け取る変数も不特定なのでセパレータが被る恐れがあります
- 91 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 14:17:53.45 ID:95T98vMj0.net]
- 特定の画像が出た時に直前の作業をもう一度起こす事で安定性を上げたいです
a→b→cと処理勧めてきて while if checking 処理dに進む break elseif checkingエラー画面 call b→c処理を書いた別ファイル endif wend みたいな形でなんとか動かせてはいるんですけど修正の作業とかが面倒なので別のアイデア無いでしょうか
- 92 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:02:48.84 ID:WUTAg8ze0.net]
- >>85
b→cを別ファイルにするだけではあかんの? a→ call b→c処理を書いた別ファイル while if checking 処理dに進む break elseif checkingエラー画面 call b→c処理を書いた別ファイル endif wend
- 93 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:07:24.77 ID:WUTAg8ze0.net]
- 安定性を上げる手段としては、状態判定と処理をループにしておくという手も。
while true 状態判定 a →処理 a 状態判定 b →処理 b 状態判定 c →処理 c 状態判定 d →ループ抜ける wend 処理 d
- 94 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:15:35.51 ID:gRViVlbY0.net]
- >>84
分ってるかもだけれど セパレータは2文字でも3文字でもOK
- 95 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:38:20.45 ID:bJyAh8OV0.net]
- >>88
自前でセパレータを仕込むのなら もう自分で配列造るのと何も変わらないさ
- 96 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 16:34:39.80 ID:95T98vMj0.net]
- >>87
なるほど 手探りで一本で書いて後から必要な部分だけ別ファイル用意してcall・・・みたいな事してぐちゃぐちゃになってしまったんですが最初かは処理毎に作っておいて判定してcallする形にすればあちこち修正しなくても済みそうですね その方向で整理してみます ありがとうございました
- 97 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 16:56:34.30 ID:nYaQHfF60.net]
- >>90
お前は次に、長時間動作させているとエラーでUWSCが落ちる、と書き込む
- 98 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 17:20:08.96 ID:bJyAh8OV0.net]
- そして私はスタックオーバーフローしないようにCALLは出来るだけ最初に1回
CALL先のスクリプトは関数化して本処理ではその関数を呼ぶと安定するよとFAQなアドバイスしておくのだった CALLをループ内に仕込むのは展開された動作を把握しきっていないと 資源の衝突や初期化周りで予期しない動作が発生するトラブルの原因のトップランカーさんです
- 99 名前:名無しさん@お腹いっぱい。 [2015/11/18(水) 20:34:52.95 ID:ya19mM+o0.net]
- 下記のように画像判定を使ってループを処理した際に
repeat 状態判定a →処理a 状態判定b →処理b until chkimg(処理abが実行された後の画像) ループ中にエラー(Flashがクラッシュするなど)が発生した際にどのように対処すればいいでしょうか。 現在苦肉の策としてFlashがクラッシュした際に出る画像を判定するプロシージャをThreadで走らせておいて エラー画像を検出したらエラーフラグ(Publicなエラーフラグ変数)をTrueにして各repeat内でフラグが立っていたら breakするように記述しているのですが、repeatすべてにこの処理を導入しているため大変見苦しいコードとなって しまっているので何かいい方法はないかと・・・
- 100 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 20:52:19.47 ID:bJyAh8OV0.net]
- エラー画像を発見したら終わらせるだけなら
寧ろメインループをそっちにして 別スレッドで他の処理すると
- 101 名前:yだよ
終わらせたくなったらメインループを抜けるだけで全て終わるからね 処理毎の終了処理が必要なら今の方法しか無いかな [] - [ここ壊れてます]
- 102 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 20:57:06.76 ID:bJyAh8OV0.net]
- 但し、デバッガがメインスレッド以外のスレッドのデバッグにマトモに対応していないから
完成した後にそうするか最初からprintデバッグする必要があるけれどね
- 103 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 20:57:49.77 ID:JQ1Q8izi0.net]
- Flashのクラッシュみたいな大きなエラーはもう別プロセス(別UWSC)で監視しちゃえば。
- 104 名前:名無しさん@お腹いっぱい。 [2015/11/18(水) 21:23:51.36 ID:ya19mM+o0.net]
- クラッシュを検出したらリロードを行ってまた処理を行うようにしているので
メインループを抜けてしまうのは出来ないです。 別プロセスでエラーを監視した場合、メインプロセスを再起動させて処理を再開するというような感じになるのでしょうかか?
- 105 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 21:49:32.35 ID:bJyAh8OV0.net]
- 終わらせないなら特に楽にならないから今まで通りで良いんじゃないかな
UWSCから他のスレッドを殺す事はやろうと思えば出来るけれど 予めスレッドの起動毎にプロセス番号をグローバルな配列に保存して それらをゴニョゴニョって感じになるから 今のフラグでループ制御しているのと面倒臭さは大して変わらない でも一旦終わらせて、それを検知する別スクリプトが再起動させるという考え方もあるんだけれどね (ログに書き出すとか色々方法はある)
- 106 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 23:05:59.51 ID:R9oruk2c0.net]
- >81です
初歩的な質問すぎて呆れてしまわれましたかね?ごめんなさい
- 107 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 23:15:08.17 ID:xUeF/cfW0.net]
- 失せろカス
- 108 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/19(木) 00:52:14.47 ID:d6Osv4Zy0.net]
- 誰か教えてやれよ
- 109 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/19(木) 19:16:18.41 ID:5LbifL7P0.net]
- >>97-98
その辺の実践経験者から言わせてもらうと、 結局は人間が操作するならどういう流れで操作するか、その流れのコード化に尽きる。 処理の区切り区切りの尽くに、クラッシュその他の予期しない自体を検知する処理を行う関数を挟み込む。 何らかの無限ループがあればその内側に必ず挟みこむか、無限ループをやめて回数制限またはタイムアウトを設ける。 クラッシュを検知してリロードして処理を1からやり直すということは、 その1からの部分に何時でも戻れるよう、プログラムの十分な構造化が要求されることは言うまでもない。 関数化、関数化そして関数化だ。関数が出来過ぎてしまうので分類だ。凄まじい数の独自関数群になる。 >>81 使ったことのない対象なので無責任に答えるが、 記録できないだけなのであればキャプチャ画像から割り出した座標をDOWN-UPでゆっくりクリックするのを書いて、 それでも認識されないか否か試してみたら?認識されないのなら不可能だから諦めろってことだ。
- 110 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/19(木) 22:29:12.84 ID:ZWZs69JY0.net]
- >>81
高レベルではなく低レベル記録する
- 111 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/19(木) 22:43:42.91 ID:oG2sQJna0.net]
- 仮想OS上のアプリをホスト側から操作しようなんてのは無理
- 112 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/20(金) 09:33:31.45 ID:Pd39Iv5K0.net]
- フラッシュは、ジョブズが嫌ってた。
firefoxとも相性が悪くてクラッシュしまくりだから大嫌い!
- 113 名前:名無しさん@お腹いっぱい。 mailto:sage [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("www.google.co.jp")
- 114 名前:PRINT "IE Navigate end"
wait(IE) fend procedure wait(IE) REPEAT SLEEP(0.1) UNTIL !IE.busy AND IE.READYSTATE = 4 fend [] - [ここ壊れてます]
- 115 名前:名無しさん@お腹いっぱい。 mailto:sage [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 にしたら良いと思う
- 116 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 12:11:56.37 ID:kt2iHckZ0.net]
- >>107
サンクス メイン側で生成したオブジェクトをスレッドに渡しても(グローバル変数でも駄目だった)、動かないって事で すかね。 メインでタブを二つ作ってそれぞれのオブジェクトをスレッドに渡して処理させようとしてたんだけど、タブは 作ったうえでスレッド側でオブジェクトを生成するようにしたら期待する動作になったようです。
- 117 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 17:03:31.49 ID:+ESe50Z90.net]
- UWSCでループを用いないキー入力待ちって作れる?
- 118 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 17:25:25.61 ID:B04dZN/C0.net]
- SETHOTKEYを使えば出来るよ
でも厳密にはこれは待たないからね イベントドリブンなスクリプトになるイメージ
- 119 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 18:07:35.61 ID:+ESe50Z90.net]
- それってホットキーの入力を待つ時には結局ループ系必要にならない?
- 120 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 18:24:22.67 ID:valwfeOZ0.net]
- ならない
- 121 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 18:34:12.81 ID:+ESe50Z90.net]
- >>110,111
ありがとう やってみるわ
- 122 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 18:38:50.90 ID:B04dZN/C0.net]
- ホットキーで割り込む隙もなくメイン処理が終わるなら当然終わるよ
キー入力の待機ループが不要なだけさ
- 123 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/21(土) 21:26:37.91 ID:+ESe50Z90.net]
- >>114
sleep中でも無視して関数呼び出してくれるんだね これでPCへの負荷が激減した ありがとう
- 124 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 17:32:21.47 ID:3BpSGfNj0.net]
- test
- 125 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 22:48:31.92 ID:JF3Q3VkF0.net]
- UWSCのウィンドウを出しておいて
右クリックからランチメニューを辿って スクリプトを実行しようとしたとき メニューにある「タスクトレイに格納」で 左クリックしてるわけでもないのに タスクトレイに格納されてしまうことがあるけど これは仕様なの? ゆっくりやれば問題ないけど ササッとやりたいときに タスクトレイに格納されてしまって萎える Free版 ver5.2.0
- 126 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 22:55:07.30 ID:qS8AAPnY0.net]
- マウスが古くなっていてチャタリングが発生している可能性はゼロなの?
- 127 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 23:07:09.04 ID:W5FAQXAx0.net]
- 何言ってんだと思ってやってみたらなるほど
右クリックするとメニューが表示されるわけではなく、右ボタンを押下した時点(離す前)でメニューが表示される そして丁度カーソルの位置にタスクトレイに格納がある。 そのため、メニューを開く時に右クリック(押して離す)をしてしまうと格納されてしまうことがある。 こういうことかな? それなら右ボタン押してメニューを開いたら、押したままドラッグでランチメニュー→スクリプトの上で離すってやればいいんじゃね
- 128 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 23:30:20.08 ID:s/LW23zM0.net]
- HOTKEYじゃ駄目なの?
- 129 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 23:32:44.91 ID:JF3Q3VkF0.net]
- 右クリックメニュー上で右クリックしても
決定したことになるのか それは知らなかった
- 130 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/24(火) 23:53:35.41 ID:qS8AAPnY0.net]
- だからチャタリングが発生するマウスだとコンテキストメニューが誤爆しやすくなってしまうのよね
- 131 名前:名無しさん@お腹いっぱい。 [2015/11/25(水) 11:13:45.29 ID:rJNaTAeQ0.net]
- 今Windows8.1を使用しているのですが
外付けHDDが短時間で休止状態になってしまって困っています UWSCで定期的にアクセスして休止に入らないようなスクリプトは どうやったらかけるのでしょうか
- 132 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 12:42:30.98 ID:txG9N8jK0.net]
- がんばって調べれば書けるよ
つか、わざわざUWSCでやることでもないだろそれ
- 133 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 15:20:51.71 ID:S/4vbjYn0.net]
- USBかATAコントローラーのドラ
- 134 名前:Cバ設定かサスペンドの設定だろUWSC関係ねえ
OSがスリープ命令出したらたとえUWSCで自動書き込みさせても電源落ちるぞ [] - [ここ壊れてます]
- 135 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 15:51:54.62 ID:Iap/Z3Jk0.net]
- UWSCでやる意味は全くないけど、OSのスリープタイマーをリセットするコマンドがあったような
- 136 名前:名無しさん@お腹いっぱい。 mailto:sage [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をクリック。 頭爆発しそう
- 137 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 17:19:07.03 ID:rT4L+apC0.net]
- ここはお前の日記帳じゃない
- 138 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 17:29:57.74 ID:y0cJp4zm0.net]
- ABCいずれかがなければDで
ABCいずれかあれば終了 どっちも同じ? A がなければ D だけど AがなくてもBとCがあるから終了? でもBとCがあってもAがないからD?
- 139 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 17:37:42.03 ID:txG9N8jK0.net]
- WHILE TRUE
IF Aあり BREAK IF Bあり BREAK IF Cあり BREAK Dクリック WEND じゃいかんのか?
- 140 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/25(水) 19:31:02.42 ID:JO/DUQA90.net]
- >>129
>>130 初歩的な勘違いやった。 申し訳ない
- 141 名前:名無しさん@お腹いっぱい。 mailto:sage [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です デスクトップコンポジションを無効にする以外の解決法はないでしょうか?
- 142 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 03:10:30.73 ID:6LeH5ZQ60.net]
- どうでもいい指摘だけど i が加算されないからそれ延々ループしまくるよね
CPUパワーの可能な限り延々チェックし続けて、そりゃウインドウも点滅するさね リソース不足じゃない?
- 143 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 03:24:45.08 ID:uYW4zJhI0.net]
- >>133
chkimgの後のi=i+1が抜けてましたね ご指摘の通り非力なPCを使っているのですが、 タスクマネージャーで確認したところCPU使用率は50%を下回っているようでした chkimgの後にsleep(1)を入れても点滅するのでパワーの問題じゃないと思ってたのですが…
- 144 名前:名無しさん@お腹いっぱい。 [2015/11/27(金) 04:39:10.35 ID:gIPgqqH30.net]
- クリックしたときにその下のウィンドウのID取得してるのにわざわざMORG_BACKを指定してる
理由がよくわからないけど試しにMORG_FOREにしてみたらどうなるかな?
- 145 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 11:40:45.00 ID:qwTQlhP30.net]
- peekcolor・chkimgは実行された瞬間にウィンドウ内にちらつきが走る。
実際にどうなってるのかは一瞬過ぎてわからないが、タイトルバーの明滅からして ウィンドウがアクティブ→非アクティブ→アクティブというようになっている感じがする。 大量にchkimgすると結構チラチラとして不快に感じる。
- 146 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 12:27:45.06 ID:AjRZAbKp0.net]
- MORG_BACKでやってるとなるよね
バックグラウンドでやる必要ないならFOREでやれば点滅しないはずだけど
- 147 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 12:32:28.19 ID:wntLhT
]
- [ここ壊れてます]
- 148 名前:d20.net mailto: MORG_BACKでなるなら相手に再描画をお願いするためっぽいね
仕方なかろう [] - [ここ壊れてます]
- 149 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 14:12:30.76 ID:FeZzskVz0.net]
- >>134
2コアなら1コアがフルに使ってても50%超えないから
- 150 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 14:23:32.71 ID:qwTQlhP30.net]
- >>137,137
バックグラウンドで動作させてるわけではないんだが、IEだとちらつく。 他のアプリではあまり見ないのでIEだけが問題なのかもしれん。 あとposaccもちらつくな。 使ってる量的にはchkimgよりpeekcolorが、peekcolorよりposaccの方が多いから 原因はposaccかも。
- 151 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 14:33:55.72 ID:AjRZAbKp0.net]
- え、MORG_BACKにする=バックグラウンドだろ
だったらMORG_FOREにしとけよ
- 152 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 19:20:14.27 ID:qwTQlhP30.net]
- 俺と>>132は別人だよ。
最初からバックグラウンドにはしていない。
- 153 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/27(金) 21:21:48.29 ID:AjRZAbKp0.net]
- おお、すまんな
IEだとFOREでもちらつくのか
- 154 名前:131 mailto:sage [2015/11/27(金) 23:19:54.60 ID:uYW4zJhI0.net]
- みなさんありがとうございます
バックグラウンドで動かしたかったんですがMORG_BACKだと仕方ないみたいですね 諦めてちらつきは我慢することにします
- 155 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 18:17:20.79 ID:FR9Rv/l10.net]
- VMwareのゲストOS上で主に、たまにホストOS上で動かすスクリプトがあるんですが
スクリプトからホストかゲストか否かを判定する方法ないですかね?
- 156 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 20:22:07.03 ID:dldTCCO80.net]
- >>145
c:\ほにゃ.txt とか置いといてそん中に Guest or Host って書いておく 起動時にそれを読んで判断じゃダメ?
- 157 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 20:39:20.97 ID:wN8TzbSm0.net]
- レジストリ読めばいいだけじゃん
UWSCじゃなくてバッチでもできることだしこのスレでは特に関係ない話題よね
- 158 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 20:53:54.86 ID:FR9Rv/l10.net]
- >>146
それ単純でいいですね。146さんもありがとうございます。
- 159 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 21:25:51.53 ID:qtPTFMZU0.net]
- >>146
もっと言えば、ほにゃがGuest or Hostで、そのファイルがあるかないかだけで、中まで見なくていいよね
- 160 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 21:43:33.70 ID:oqtIKp380.net]
- GET_APPDATA_DIRでユーザーネームあたりを確認してもいいよね
同じじゃなければだけど
- 161 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 23:05:00.83 ID:wN8TzbSm0.net]
- だからレジストリ見れば一発だろうが
DosCmd("wmic csproduct") の戻り値を参照しろ VMware Virtual Platform ってのが入るから
- 162 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/28(土) 23:25:03.94 ID:FR9Rv/l10.net]
- 別に無視してるわけではないですが、ファイル作って判別する方が
仮想か否かだけでなくどのPC/OSかという判別が容易なのでこっち採用です
- 163 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/29(日) 00:47:57.33 ID:JUXVZ/4C0.net]
- iniファイルで良いような…
- 164 名前:名無しさん@お腹いっぱい。 mailto:sage [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
- 165 名前:名無しさん@お腹いっぱい。 [2015/11/29(日) 22:40:44.71 ID:PLkzB9890.net]
- callってどういう時に使えばいいんだろう
少しずつ部品となるプログラムを作って、それを大元のプログラムで呼び出すような作り方をしてるんだけど、 uwscファイルがどんどん増えていって、どんどんわかりにくくなる ・何度も、何行も書かなきゃならない処理を一行で書ける ・変更する場合も呼び出し先のファイルを変更するだけでいい こういうのが利点なのかな?
- 166 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/29(日) 22:51:34
]
- [ここ壊れてます]
- 167 名前:.18 ID:Eprjqt/E0.net mailto: >少しずつ部品となるプログラムを作って、それを大元のプログラムで呼び出すような作り方をしてるんだけど
>uwscファイルがどんどん増えていって、どんどんわかりにくくなる 1処理に1ファイル作ってんの? 関数にして1ファイルにまとめて、callで呼び出すのは最初に1回だけやるんだよ [] - [ここ壊れてます]
- 168 名前:名無しさん@お腹いっぱい。 [2015/11/29(日) 23:10:30.89 ID:PLkzB9890.net]
- やっぱり自作関数をつくるべきなのか
引数とか処理の流れとかがよくわからんままだったから敬遠してた
- 169 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/29(日) 23:16:48.50 ID:Eprjqt/E0.net]
- 今だとまんまファイル=処理になってるんだろ?
それぞれ頭にprocedure 処理名、尻にfendつけて1ファイルにまとめるだけや んでcallしてるところでcallやなしに処理名を書くだけのことや
- 170 名前:名無しさん@お腹いっぱい。 [2015/11/29(日) 23:26:27.99 ID:PLkzB9890.net]
- それだけでいいのか
やたら引数とか書いてあるから後回しにしてた
- 171 名前:名無しさん@お腹いっぱい。 [2015/11/30(月) 04:20:23.49 ID:FBOUUxt90.net]
- >>81
Androidエミュレータの事なら Win10Pro 64bit だとUWSCを管理者権限で起動したら反応する 逆に管理者権限で立ち上げないと書いてある通り反応しない
- 172 名前:名無しさん@お腹いっぱい。 [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)
- 173 名前:名無しさん@お腹いっぱい。 [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 同じような処理を関数化しておくと可読性と保守性が上がるのが利点かな
- 174 名前:名無しさん@お腹いっぱい。 mailto:sage [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%ちょいになっちゃうんです。 たぶん↑の求め方が悪いんだと思うんですけど、なんでなのかわかりません・・・ 他に良い確率の求め方・確かめ方があればご教示お願いします
- 175 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/01(火) 08:00:28.88 ID:rjvF5ULZ0.net]
- 明確に擬似乱数なのを精査する必要性がちょっとわからない
ガチな計算したかったら乱数生成もガチなのを使えば良いと思うな
- 176 名前:名無しさん@お腹いっぱい。 [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+"%でした")
- 177 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/01(火) 12:47:54.59 ID:CNS9MKt70.net]
- おぉ素晴らしいです、シンプルでわかりやすく動作も軽い!
考え方や
- 178 名前:CALC_AVRの理解を誤っていたのがようやくわかりました。
ありがとうございます、精進いたします [] - [ここ壊れてます]
- 179 名前:名無しさん@お腹いっぱい。 [2015/12/01(火) 13:21:03.45 ID:+tH8B3qd0.net]
- >>161-162
遅くなったけどありがとう 勉強になった おかげで引数とかも理解できるようになったよ 最近は関数の名付けに悩むようになった
- 180 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/01(火) 15:00:00.63 ID:zTQCTmEm0.net]
- プログラミングのエントリーにはもってこいだなUWSCは。
|
|