自動化ツールUWSC使いよ集まれ16at SOFTWARE
自動化ツールUWSC使いよ集まれ16 - 暇つぶし2ch2:名無しさん@お腹いっぱい。
15/11/11 13:46:14.33 +oPzgSay0.net
Q.シェアウェア版で「L20が存在しません」「L22が存在しません」とエラーが出て一部機能が動作しない
A.割れシリアルを使った時に出�


3:驕Aささやかな割れ対策 Q.購入したのに上記エラーが出る A.ライセンスキーが正しいか確認(ベクターで購入した場合、登録するのは 伝票番号の xxxxxxxxx ではありません) UWSCをアンインストール後、再インストールして正しい17桁のライセンスキーを入力してください。 ●Pro版の追加機能 EXE化ツールが付属しています。(EXE化後は単体での実行が可能であり、ライセンスフリーにて配布できます) IE(Web)用記録ツールが付属しています。(Web上の動作をUWSCのスクリプトとして記録する事ができます) HTMLを利用した画面関数が使えます。 EXCELシート用関数が使えます。(OpenOffice.org/LibreOfficeの表計算(Calc)に対しても可) デバッガが付属しています。 ●質問したい方へ 「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」 「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる 「○○作って下さい」→ 依頼スレじゃありません。 過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。 自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。 備考:PRI NT文を利用してデバッグする。管理者権限で起動してみる。AEROを切る。fcuc.uwsを走らせてみる。 ●スクリプトを晒す上での注意 他人が読みやすいようにインデントを付けるように。解らない人はググレ。 (タブインデントは使えないんだぜ 全角スペース等に 変換しておくべし) 言いたい事に関係無い部分は ~○○の処理~ や 処理A 等のようにし、 必要な部分を晒すようにする。 ●他人の書いたスクリプトを安易に実行しないように。 ハードディスクをフォーマットされたりしても、自己責任。



4:名無しさん@お腹いっぱい。
15/11/11 13:46:50.79 +oPzgSay0.net
画像認識関数 ChkImgX-ver1.2.1(2015/02/03)
URLリンク(googledrive.com)
スレリンク(software板:673番)
UWSC向け画像認識関数です。CHKIMGは(ほぼ)一致画像しか探すことができませんが、
CHKIMGXは似た画像の検出が可能です。使い方は中身のsample.uws や ChkImgX.uws を見てください。

5: 【だん吉】
15/11/11 13:54:22.45 k95kaPQv0.net
      _
      |O\
      |   \ キリキリ
    ∧|∧   \ キリキリ
ググゥ>(;⌒ヽ    \
    ∪  |     (~)
     ∪∪   γ´⌒`ヽ
     ) )    {i:i:i:i:i:i:i:i:}
     ( (    ( ´・ω・)、>>1
           (O ⌒ )O
            ⊂_)∪

6:名無しさん@お腹いっぱい。
15/11/11 15:15:54.45 QGUfCker0.net
>>前スレ1000
>そんな当たり前の事一々指摘せんでもいいわw
>UWSC単独で出来ないのが残念って言ってるだけだろ
え、UWSC単独でできるよね・・・何言っ・・え?

7:名無しさん@お腹いっぱい。
15/11/11 15:40:01.62 DWR2WWEp0.net
当たり前の事指摘されたくなかったら条件や情報を後出しにしないことだな
コードまで貼って教えてくれた丁寧な回答者に対する態度じゃないだろ二度と来るな

8:名無しさん@お腹いっぱい。
15/11/11 16:00:51.36 uAtR0Bu+0.net
知識のないぼくちゃんは別プロセスで常時表示させてるslctboxとかinputでWriteiniして
threadでReadiniして無理矢理変更してたわ
前スレのやり方も試してみようかな

9:名無しさん@お腹いっぱい。
15/11/11 16:28:56.45 MrsBdBBf0.net
シェアウェア版に付いて来るデバッガで、変数の書き換えとか出来るといいね。知らんけど

10:名無しさん@お腹いっぱい。
15/11/11 17:06:46.18 rpEewyDo0.net
実行中の UWSC の挙動をGUIで変えるために、
AutoIt3 + KODA FormDesigner で .ini ファイルを編集するGUIアプリ作って
UWSC からは、必要に応じて .ini を読み直すという構成にしたよ。

11:名無しさん@お腹いっぱい。
15/11/11 17:07:15.29 oN5GYFPP0.net
そもそもoleevent使えばcreateformだろうが
非シェアのIEを使った擬似createformだろうが
イベントドリブンなスクリプト作れるしなぁ
まぁ其処までする位ならGUI構築、連動できる言語の出番って考え方もあるけれどね
(自分はどちらかと言うとそっち派)

12:名無しさん@お腹いっぱい。
15/11/11 17:26:50.51 jGEVW+4x6
過去ログ
自動化ツールUWSC使いよ集まれ15
スレリンク(software板)

自動化ツールUWSC使いよ集まれ14
スレリンク(software板)

自動化ツールUWSC使いよ集まれ13
スレリンク(software板)

自動化ツールUWSC使いよ集まれ12
スレリンク(software板)

自動化ツールUWSC使いよ集まれ11
スレリンク(software板)

10 スレリンク(software板)
9 スレリンク(software板)
8 スレリンク(software板)
7 スレリンク(software板)
6 スレリンク(software板)
5 スレリンク(software板)
4 スレリンク(software板)
3 スレリンク(software板)
2 スレリンク(software板)
1 スレリンク(software板)

13:名無しさん@お腹いっぱい。
15/11/11 20:30:11.22 mvp9IgBe0.net
UWSCでシェアウェアのシリアル入力欄に値を・・・
3日かかってやっと1つ見つけた

14:名無しさん@お腹いっぱい。
15/11/13 08:45:57.85 3qksjFX10.net
uwsファイルをexe化したいんですがfree上位版じゃなく何かやり方ありませんか?

15:名無しさん@お腹いっぱい。
15/11/13 08:54:17.45 Mcz5MFKc0.net
Free上位版て何だ? 金払えよ。その機能は無料じゃねえんだよ

16:名無しさん@お腹いっぱい。
15/11/13 10:01:53.16 NDAx3tp60.net
>>13
exe化できる人に 金払ってやってもらう。

17:名無しさん@お腹いっぱい。
15/11/13 15:46:47.76 wNx4EtEV0.net
自己解凍アーカイブでも作ればいいんじゃないかな

18:名無しさん@お腹いっぱい。
15/11/13 22:05:27.26 Uo/qbExH0.net
UWSCに備わっているマウスの移動を手動で記録(座標指定や画像指定とか無し)
させたものをブラウザゲームにて使いたいのですが運営側に不振な動きとかってばれるものなんでしょうか?
24時間使うとかじゃなく1日数時間程度なのですが、どなたか教えて下さい。

19:名無しさん@お腹いっぱい。
15/11/13 22:06:59.66 Z3RRarm70.net
巣に帰れ

20:名無しさん@お腹いっぱい。
15/11/13 22:13:32.82 b0VOgiyP0.net
UWSCの質問ですらねぇwww

21:名無しさん@お腹いっぱい。
15/11/13 22:49:34.51 xAhnpw3q0.net
運営に問い合わせして どう�


22:シ



23:名無しさん@お腹いっぱい。
15/11/13 23:13:38.61 b445lS/m0.net
league of legendsってゲームでmouseorg(pvp.net Client, 1)
使うとPVPが定義されてません って出てくるんだけどGETIDでアクティブ取得してPRINTしてやったらpvp.net Clientで間違っては無いんだがなんなのこれ?

24:名無しさん@お腹いっぱい。
15/11/14 00:17:35.92 FIcKEvAv0.net
巣に帰れ

25:名無しさん@お腹いっぱい。
15/11/14 00:18:11.82 mvqgNrFZ0.net
>>21
""

26:名無しさん@お腹いっぱい。
15/11/14 03:37:05.40 BoPLs7GB0.net
ぐぐってみたのですがわからないので教えてください。
UWSC初心者ですが、bluestacks上のアプリを画像認識で無限ループするマクロを作りました。
しかし、アプリがフリーズすると画像が表示されずマクロが止まってしまいます。
そこで、マクロのループ処理が止まった場合、アプリを再起動してループを再開するような例外処理を作りたいのですが良い関数があれば教えてください。
ループ処理の前に時間を設定してもしタイムアウトが発生したら再起動をするといったものを作りたいです。

27:名無しさん@お腹いっぱい。
15/11/14 03:49:36.32 mvqgNrFZ0.net
>>24
自分がコードを書けるように日本語を変換する
「マクロのループ処理が止まった場合」というのは「画像がなかった場合」のことで大丈夫だろう
それ以外で止まるならその条件も加える
「ループ処理の前に時間を設定してもしタイムアウトが発生したら」というのを、
「画像がなかった場合の回数を設定してもしその回数を超えたら」とすればいい

28:名無しさん@お腹いっぱい。
15/11/14 04:43:03.64 uyToSXci0.net
while chkimg("a.bmp")
~処理~
wend
みたいに書いてるからループを抜け出して止まってしまうとかいうことなのかな?

29:名無しさん@お腹いっぱい。
15/11/14 08:59:23.55 IhUc+KMu0.net
初歩的でスマンが質問させてくれ
去年の12月にDLしたフリー版を使ってたんだがwin10環境で動くのか試したら動かなかった
最新版DLしてもう一回動かしてみたら今度はIF文が閉じてませんみたいな構文エラーが出た
UWSC本体のバージョンで構文まで変わっちゃうのか?
win10で使おうと思ったらまた組み直さないとダメ?

30:名無しさん@お腹いっぱい。
15/11/14 09:42:35.18 IpRJAxcj0.net
破壊的な仕様変更があれば更新履歴にあるさ
IF絡みだと
14/02/03 ver4.9c IF文のブロック文にてIFB-ENDIFではなく、IF-ENDIFでも可にした
これかな

31:名無しさん@お腹いっぱい。
15/11/14 09:52:52.41 IhUc+KMu0.net
使ってた方のバージョン見たらVer 5.0.4.0 2014-12-14ってなってるから多分違うかな
でも更新履歴ざっと見てもそれらしいのが見当たらないし、ちょっと弄ってみるか

32:名無しさん@お腹いっぱい。
15/11/14 09:56:22.61 tGYrtzLK0.net
仮想化でwin10使ってるが、win7で組んだ物をそのまま持って行っても動く
特定の構文にバグが起きてる可能性もあるが、勘違いの可能性のほうが大きいだろうな

33:名無しさん@お腹いっぱい。
15/11/14 10:01:32.40 IhUc+KMu0.net
最新版をwin7でやってみたらやっぱり今まで使えてたのが構文エラー出たわ
過去のバージョンで大丈夫だったのがダメになってるっぽい

34:名無しさん@お腹いっぱい。
15/11/14 10:59:52.55 PfOb/o3h0.net
そういうのは大体お前の記述ミスだ

35:名無しさん@お腹いっぱい。
15/11/14 11:48:55.59 BNINhbNt0.net
>>27
せめて動いたUWSCのバージョンとOS、動かないUWSCのバージョンとOSを教えてあげないと
>>29さんでもエスパーしきれないかもしれない

36:名無しさん@お腹いっぱい。
15/11/14 13:03:47.71 9wBwsNfQ0.net
構文エラーが出るソース


37:コードを提示できないってことは そもそも過去に動いてたってのが勘違い、あるいは妄想だろう どうせコードを全行コピーしてなかったとかいうオチだろ



38:名無しさん@お腹いっぱい。
15/11/14 13:10:52.02 NA9ksDwd0.net
>>31
いいからさっさとコードうpしてみろよ解析好きなおせっかいがいっぱいいるぞ

39:名無しさん@お腹いっぱい。
15/11/14 13:22:40.54 IIbYKaCR0.net
win7からwin10にしたらスクリプトエラーではなくてフリーズするようになったな
そこまで実害はないけどちょっと面倒

40:名無しさん@お腹いっぱい。
15/11/14 13:22:56.45 GE7AjOYz0.net
俺も5以上のバージョンのUWSCだと頻繁にフリーズするので未だに4.9c使ってる。
構文エラーだとどこの行がおかしいってすぐにわかるんだが固まるだけなのでわからん。
5000行近くあるのでどこがどうなってるのか調べる気が起きない…

41:名無しさん@お腹いっぱい。
15/11/14 16:56:44.98 RCUdLg7b0.net
5000行とか。どんだけ低レベルなコーディングしてんだよ

42:名無しさん@お腹いっぱい。
15/11/14 17:18:01.21 GE7AjOYz0.net
流石に1ファイルじゃないよ。
関数は分類して5つほどの別ファイルにして
CALLで一まとめにしてるけど、関数のどこがガンなのかわからんし。

43:名無しさん@お腹いっぱい。
15/11/14 17:58:18.92 IpRJAxcj0.net
ある程度以上の規模になったら
デバッグ(トレース)フラグを用意して開発
普段はオフにしつつ運用
何かあったらオンにして診断するでしょ

44:名無しさん@お腹いっぱい。
15/11/14 18:38:55.24 GE7AjOYz0.net
やたら大きくなってしまって収拾がつかないけど、プログラミング全般において素人で
遊びでやってるもんなので所謂デバッグとかやり方知らない。
触らぬ神にたたりなしって感じでバージョンアップできずにいる

45:名無しさん@お腹いっぱい。
15/11/14 22:00:21.04 oICue9LH0.net
いつやるの?今でしょ!
書き溜めた無駄に長いコードの整理は考えてる以上に身になる
これとないチャンスやで

46:名無しさん@お腹いっぱい。
15/11/15 01:28:43.76 l+eb1X660.net
おれが300行にまとめてやんよ

47:名無しさん@お腹いっぱい。
15/11/15 11:15:02.57 De6xOu7/0.net
ちゃんと確認したら11ファイルに267個の関数になってた
どの関数がどの関数から呼び出されてるのかちゃんと把握してないし
フローチャートとか書いてないし、あんまりコメントも残してないから
我ながら訳が分からん。大体の流れしか把握してない…
こっちを書き換えたらあっちでトラブってとか日常茶飯事orz

48:名無しさん@お腹いっぱい。
15/11/15 11:27:52.84 hnZ7/qL70.net
> ある程度以上の規模になったら
> デバッグ(トレース)フラグを用意して開発
> 普段はオフにしつつ運用
> 何かあったらオンにして診断するでしょ

フラグだと On/Off しかできないから DebugLevel で制御してる。

49:名無しさん@お腹いっぱい。
15/11/15 11:29:41.24 tIw6v2Vv0.net
変更が怖いならバージョン管理導入すればいいよ

50:名無しさん@お腹いっぱい。
15/11/15 12:10:43.83 wd/6nnII0.net
ちゃんと動いて目的果たしてるなら
バージョンアップとかいらなくね

51:名無しさん@お腹いっぱい。
15/11/15 12:23:24.06 De6xOu7/0.net
それ。
ただ、4.9cではfor-in構文が使えない。使いたいなとは思ってるんだけど。

52:名無しさん@お腹いっぱい。
15/11/15 13:26:11.73 L+1ycDEI0.net
言うほど使うか? for to で十分なんだけど

53:名無しさん@お腹いっぱい。
15/11/15 13:51:26.50 3LQPqe8Y0.net
for inてfor eachと同じ内容?

54:名無しさん@お腹いっぱい。
15/11/15 14:11:04.40 yRPypCxb0.net
Dim array[2];
print VARTYPE(array);
上記を実行すると、以下のエラーがでます。
なぜなのでしょうか。(uwscのverは5.2.0)
変数:ARRAY 次元


55:数が合いません 2行目:PRINT VARTYPE(ARRAY);



56:名無しさん@お腹いっぱい。
15/11/15 14:44:31.81 3LQPqe8Y0.net
>>51
引数の配列に添字追加

57:名無しさん@お腹いっぱい。
15/11/15 17:30:57.89 Xc7Hv4el0.net
SafeArray()で取った配列ならVAR_ARRAYが返るのに
DIMの配列だとVAR_ARRAYが返らないどころかエラーになるのは何故?って質問なのでは?

58:名無しさん@お腹いっぱい。
15/11/15 18:03:21.92 JWUP4/i00.net
普通の配列はLENGTHかRESIZE使って判断しろって事でしょ
要するにVARTYPEは配列の中身のチェックしか出来ない

59:50
15/11/15 18:37:18.45 yRPypCxb0.net
>>53さんが書いてくれている通りの疑問です。

60:名無しさん@お腹いっぱい。
15/11/15 20:41:38.88 YS+SiHiA0.net
>>55
作者がそう作ったからそうなのであって、作者以外の誰がその疑問に答えられると思ったの?

61:名無しさん@お腹いっぱい。
15/11/15 23:16:55.13 UTZQ0cqw0.net
Dimで0~9を定義した配列から最後の数字(9)を取り除くにはどうしたらいいでょうか。
再定義するとエラーになり、SETCLEAR、RESIZEはうまく扱うことができませんでした・・・。
現在定義した数をシャッフルしていて、その結果から9を省きたいのです。
単純に任意の配列を削除、或いは再定義できればいいのですが・・・。
初心者のため発想が貧弱でして手詰まりです・・・アドバイスお願いします!
シャッフルはこんな感じのをCallで呼び出してます。
Procedure shuffle(var CarSel[])
Dim n = length(CarSel)
Dim i, r, tmp
for i = 0 to n -1
r = random(n)
tmp = CarSel[r]
CarSel[r] = CarSel[i]
CarSel[i] = tmp
next
Fend

62:名無しさん@お腹いっぱい。
15/11/15 23:44:35.20 De6xOu7/0.net
普通にRESIZEすればいいだけの話では?
RESIZE(CarSel, 8)

63:名無しさん@お腹いっぱい。
15/11/15 23:45:03.04 YS+SiHiA0.net
>>57
本当に配列のサイズを変更して最後を取り除くことができないなら、
扱う配列の長さをlengthで取るのではなく、
別の変数や配列の頭に入れるなりして管理すればいいのでは?
ちなみに
DIM CarSel[]=1,2,3,4,5,6,7,8,9
print length(CarSel) + ":" + JOIN(CarSel,",")
RESIZE( CarSel, length(CarSel)-2 )
print length(CarSel) + ":" + JOIN(CarSel,",")
を実行したら
9:1,2,3,4,5,6,7,8,9
8:1,2,3,4,5,6,7,8
となる

64:名無しさん@お腹いっぱい。
15/11/16 11:34:56.95 kzKcDPQp0.net
シャッフルで混ぜてるせいかうまくいかないですね・・・
URLリンク(i.imgur.com)
Dim n = length(CarSel) を毎回変化させられればResizeと合わせて実現できるっぽいんですが、
引数で変化させようとCALL ShuffleNumbers.uws(10)
として Dim n = PARAM_STR[0]にするとエラー、
Resizeのあとに手動で Dim n = 9 と
記述しても再定義でエラーになってしまいます。
多分Procedureで10桁用、9桁用みたいにそれぞれ作ればいいんでしょうが
できればシンプルなコードで柔軟に使っていけたらいいなと思っております・・・

65:名無しさん@お腹いっぱい。
15/11/16 12:07:44.32 Xu2hTlmU0.net
>>60
shuffle関数に要素数の引数追加してみたら?

66:名無しさん@お腹いっぱい。
15/11/16 12:45:32.71 9wFZf3al0.net
>>60
再定義でエラーってことは、nを2回定義してるんじゃないの?

67:名無しさん@お腹いっぱい。
15/11/16 14:40:41.84 W0rLrKGS0.net
>>60
期待値が良くわからないけど、こういうこと?
Dim Original[] =0,1,2,3,4,5,6,7,8,9
Dim CarSel[0]
copyArray(Original, CarSel)
shuffle(CarSel)
print Length(CarSel) +":"+Join(CarSel,",")
copyArray(Original, CarSel)
Resize(CarSel,8)
shuffle(CarSel)
print Length(CarSel) +":"+Join(CarSel,",")
Function copyArray(var src[], var dst[])
  for i=0 to Length(src)-1
    Resize(dst, i)
    dst[i] =src[i]
  next
  Result =i
Fend

68:名無しさん@お腹いっぱい。
15/11/16 15:44:23.25 9tIhQjLx0.net
再定義でエラーになってるってことはその言葉通り定義が再び行われてるからエラーになってるんであって…
定義している部分を見れば一目瞭然なんでは?
既に定義された変数に値を代入するなら定義をする必要ないんだから
その部分のDIM外せばいいだけなんじゃ…

69:名無しさん@お腹いっぱい。
15/11/16 15:55:39.20 9tIhQjLx0.net
今まで何を問題としてるかわからなかったけど、もしかして問題となってるのはここ?
> //結果(9通り最大8)
> 9: 9,1,4,6,8,5,7,3
2回目のシャッフル結果に9が入ってて最大が8ではないのは
1回目にシャッフルされた配列を入力してるから当然の話だよ。
resizeでは配列の最後を切り飛ばすだけで、内容の最大値を定義するなんて機能は無いから
1回目の結果の最後が9で無ければ2回目の結果に9が入る。

70:名無しさん@お腹いっぱい。
15/11/16 16:32:44.46 NGCV+QQo0.net
「0-9の数字をランダムに使用するが、ある条件下で0-8、0-7のように振れ幅が変わる」
というような挙動をするものが必要だったのですが、>>63さんのコードで実現できました。
エラーになってる原因はわかるが、それに対する解決法がわからないため質問してました。
引数で渡すのはA = PARAM_STR[0]として、Aを関数に代入しても「Aが定義されてない」といわれよく分からず…
とりあえず自分が配列や要素について基本的な理解が足りていないことがよくわかりました。
引数の扱いやFunctionとProcedureの使い分けなど、皆さんのアドバイスを基に研究したいと思います。
ありがとうございました・・・

71:名無しさん@お腹いっぱい。
15/11/16 17:41:55.59 U7RMM+Pu0.net
少し前に重複しない乱数を希望した数だけ予め用意したいって質問していた人かな?
その実装方法だと関数を呼ぶ側と呼ばれる側の連携密度が高すぎると思うよ
こんな感じで乱数配列が欲しい時に一度作成したらそれは捨てる位の方が疎結合になって保守性が上がると思う
For item In GetRandomArray(10)
 print item
Next
Function GetRandomArray(value)
 result = SAFEARRAY(0, value - 1)
 For i = 0 To value - 1
  result[i] = i
 Next
 For i = 0 To value - 1
  r = Random(value - 1)
  swapValue = result[i]
  result[r] = result[i]
  result[i] = swapValue
 Next
Fend

72:名無しさん@お腹いっぱい。
15/11/16 17:47:31.69 U7RMM+Pu0.net
繰り返しテストしてみたらこれ入替えでバグってるねw
すまん

73:名無しさん@お腹いっぱい。
15/11/16 17:50:15.00 U7RMM+Pu0.net
入替え部分の添字だけ差し替え
  r = Random(value - 1)
  swapValue = result[i]
  result[i] = result[r]
  result[r] = swapValue

74:名無しさん@お腹いっぱい。
15/11/16 22:57:57.42 NGCV+QQo0.net
>>67-69
おぉ、参考にさせていただきます!
そうです前スレの終わり頃に質問した者です。
運用することを考えたら独立させたほうが柔軟になると…なるほど
関数やSafeArray等ちゃんと理解して使えるよう頑張ってみます、ありがとうございました

75:名無しさん@お腹いっぱい。
15/11/17 00:19:41.16 r3ygr5190.net
IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE.document.querySelector("#hogehoge").click()
このようなスクリプトで、querySelectorで実際には無いセレクタを指定した時
COMエラーで落ちるのですが、存在しない場合にエラー無しでスルーするような方法は
try-exceptを使ったり、あらかじめ存在確認してからクリック
if IE.document.querySelector("#hogehoge")&l


76:t;>NULL then IE.document.querySelector("#hogehoge").click() というような方法しかないのでしょうか? スクリプト実行中にページの内容が書き換わって目標とするセレクタが消えて COMエラーで落ちるというパターンが時々あって困っています。



77:名無しさん@お腹いっぱい。
15/11/17 01:11:47.62 EmLKpCk20.net
// COMエラーメッセージの抑止
COM_ERR_IGN
  // 何等かのCOM処理
COM_ERR_RET
でどうですか

78:名無しさん@お腹いっぱい。
15/11/17 02:35:05.29 X+X/Girc0.net
ハンゲのリングドリーム(Flashゲーム)でマクロを組んでるんだけど、MOUSEORGをMORG_DIRECTにするとフラッシュ上の
ボタンをうまく押せない(当該ボタン上にカーソルを合わせると押そうとしているような挙動はするんだけど実際には押せていない)
状態になってMORG_CLIENTを指定するとしっかりボタンを押せるんだけど、これってどうにかMORG_DIRECTでボタンを押せるよう
にすることは出来ないのかな?

79:名無しさん@お腹いっぱい。
15/11/17 08:30:36.92 r3ygr5190.net
>>72
こんな機能あったんですね。ありがとうございます。

80:名無しさん@お腹いっぱい。
15/11/17 15:14:10.19 r3ygr5190.net
> CALL UWSファイル名.uws(xxx, xxx, ...)  // 引数を付けた場合に値は PARAM_STR[] 変数に入る
CALLでスクリプトを呼んだ時のように、不定個の引数を受け取って
内部で配列として扱う関数を作りたいのですが、どうしたら出来るでしょうか?

81:名無しさん@お腹いっぱい。
15/11/17 16:20:50.27 t2yi2j7b0.net
SafeArry使いなよ

82:名無しさん@お腹いっぱい。
15/11/17 16:58:26.39 r3ygr5190.net
SafeArrayを使うとは具体的には?
引数が不定数だと、実行時に引数の数が違うと怒られてしまうんですが。
配列を作る関数が欲しいのですが、順序が逆の
先に配列を作ってから関数に入れる事しか思いつかないです。

83:名無しさん@お腹いっぱい。
15/11/17 19:35:50.10 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:名無しさん@お腹いっぱい。
15/11/17 23:27:48.86 3Sfs5iCK0.net
引数を多目に書いておいて関数内で処理するんはダメなのか?

85:名無しさん@お腹いっぱい。
15/11/18 00:57:58.26 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:名無しさん@お腹いっぱい。
15/11/18 10:58:24.63 R9oruk2c0.net
UWSC初心者です。つまづいてしまったのでどなたかお教えください。
Bluestacks上でアプリを起動してマウス操作などの自動化を行いたいのですが記録されても再生するとマウスがBluestacks上動いたりクリックしたりしません。PCゲーでは今まで動いていたのですが‥
なぜでしょう?どなたかお


87:願いします。



88:名無しさん@お腹いっぱい。
15/11/18 11:08:48.43 6gzLq2020.net
>>80
内部で配列として扱いたいだけで、出力は配列というわけではないのです。
結局のところ、不特定数の引数を受け取りたいだけなんですが、
そのままの入力はどうやら無理のようですね。
素直に配列作って渡すことにします。
無名配列でも作れたらよかったのですが。
ありがとうございました。

89:名無しさん@お腹いっぱい。
15/11/18 11:24:54.22 zICgyZ9/0.net
>>82
単純に受け側でsplitで良いような…

90:名無しさん@お腹いっぱい。
15/11/18 11:37:45.83 6gzLq2020.net
受け取る変数も不特定なのでセパレータが被る恐れがあります

91:名無しさん@お腹いっぱい。
15/11/18 14:17:53.45 95T98vMj0.net
特定の画像が出た時に直前の作業をもう一度起こす事で安定性を上げたいです
a→b→cと処理勧めてきて
while
if checking
処理dに進む
break
elseif checkingエラー画面
call b→c処理を書いた別ファイル
endif
wend
みたいな形でなんとか動かせてはいるんですけど修正の作業とかが面倒なので別のアイデア無いでしょうか

92:名無しさん@お腹いっぱい。
15/11/18 15:02:48.84 WUTAg8ze0.net
>>85
b→cを別ファイルにするだけではあかんの?

a→
call b→c処理を書いた別ファイル
while
if checking
処理dに進む
break
elseif checkingエラー画面
call b→c処理を書いた別ファイル
endif
wend

93:名無しさん@お腹いっぱい。
15/11/18 15:07:24.77 WUTAg8ze0.net
安定性を上げる手段としては、状態判定と処理をループにしておくという手も。
while true
状態判定 a →処理 a
状態判定 b →処理 b
状態判定 c →処理 c
状態判定 d →ループ抜ける
wend
処理 d

94:名無しさん@お腹いっぱい。
15/11/18 15:15:35.51 gRViVlbY0.net
>>84
分ってるかもだけれど
セパレータは2文字でも3文字でもOK

95:名無しさん@お腹いっぱい。
15/11/18 15:38:20.45 bJyAh8OV0.net
>>88
自前でセパレータを仕込むのなら
もう自分で配列造るのと何も変わらないさ

96:名無しさん@お腹いっぱい。
15/11/18 16:34:39.80 95T98vMj0.net
>>87
なるほど
手探りで一本で書いて後から必要な部分だけ別ファイル用意してcall・・・みたいな事してぐちゃぐちゃになってしまったんですが最初かは処理毎に作っておいて判定してcallする形にすればあちこち修正しなくても済みそうですね
その方向で整理してみます ありがとうございました

97:名無しさん@お腹いっぱい。
15/11/18 16:56:34.30 nYaQHfF60.net
>>90
お前は次に、長時間動作させているとエラーでUWSCが落ちる、と書き込む

98:名無しさん@お腹いっぱい。
15/11/18 17:20:08.96 bJyAh8OV0.net
そして私はスタックオーバーフローしないようにCALLは出来るだけ最初に1回
CALL先のスクリプトは関数化して本処理ではその関数を呼ぶと安定するよとFAQなアドバイスしておくのだった
CALLをループ内に仕込むのは展開された動作を把握しきっていないと
資源の衝突や初期化周りで予期しない動作が発生するトラブルの原因のトップランカーさんです

99:名無しさん@お腹いっぱい。
15/11/18 20:34:52.95 ya19mM+o0.net
下記のように画像判定を使ってループを処理した際に
repeat
状態判定a →処理a
状態判定b →処理b
until chkimg(処理abが実行された後の画像)
ループ中にエラー(Flashがクラッシュするなど)が発生した際にどのように対処すればいいでしょうか。
現在苦肉の策としてFlashがクラッシュした際に出る画像を判定するプロシージャをThreadで走らせておいて
エラー画像を検出したらエラーフラグ(Publicなエラーフラグ変数)をTrueにして各repeat内でフラグが立っていたら
breakするように記述しているのですが、repeatすべてにこの処理を導入しているため大変見苦しいコードとなって
しまっているので何かいい方法はないかと・・・

100:名無しさん@お腹いっぱい。
15/11/18 20:52:19.47 bJyAh8OV0.net
エラー画像を発見したら終わらせるだけなら
寧ろメインループをそっちにして
別スレッドで他の処理すると�


101:yだよ 終わらせたくなったらメインループを抜けるだけで全て終わるからね 処理毎の終了処理が必要なら今の方法しか無いかな



102:名無しさん@お腹いっぱい。
15/11/18 20:57:06.76 bJyAh8OV0.net
但し、デバッガがメインスレッド以外のスレッドのデバッグにマトモに対応していないから
完成した後にそうするか最初からprintデバッグする必要があるけれどね

103:名無しさん@お腹いっぱい。
15/11/18 20:57:49.77 JQ1Q8izi0.net
Flashのクラッシュみたいな大きなエラーはもう別プロセス(別UWSC)で監視しちゃえば。

104:名無しさん@お腹いっぱい。
15/11/18 21:23:51.36 ya19mM+o0.net
クラッシュを検出したらリロードを行ってまた処理を行うようにしているので
メインループを抜けてしまうのは出来ないです。
別プロセスでエラーを監視した場合、メインプロセスを再起動させて処理を再開するというような感じになるのでしょうかか?

105:名無しさん@お腹いっぱい。
15/11/18 21:49:32.35 bJyAh8OV0.net
終わらせないなら特に楽にならないから今まで通りで良いんじゃないかな
UWSCから他のスレッドを殺す事はやろうと思えば出来るけれど
予めスレッドの起動毎にプロセス番号をグローバルな配列に保存して
それらをゴニョゴニョって感じになるから
今のフラグでループ制御しているのと面倒臭さは大して変わらない
でも一旦終わらせて、それを検知する別スクリプトが再起動させるという考え方もあるんだけれどね
(ログに書き出すとか色々方法はある)

106:名無しさん@お腹いっぱい。
15/11/18 23:05:59.51 R9oruk2c0.net
>81です
初歩的な質問すぎて呆れてしまわれましたかね?ごめんなさい

107:名無しさん@お腹いっぱい。
15/11/18 23:15:08.17 xUeF/cfW0.net
失せろカス

108:名無しさん@お腹いっぱい。
15/11/19 00:52:14.47 d6Osv4Zy0.net
誰か教えてやれよ

109:名無しさん@お腹いっぱい。
15/11/19 19:16:18.41 5LbifL7P0.net
>>97-98
その辺の実践経験者から言わせてもらうと、
結局は人間が操作するならどういう流れで操作するか、その流れのコード化に尽きる。
処理の区切り区切りの尽くに、クラッシュその他の予期しない自体を検知する処理を行う関数を挟み込む。
何らかの無限ループがあればその内側に必ず挟みこむか、無限ループをやめて回数制限またはタイムアウトを設ける。
クラッシュを検知してリロードして処理を1からやり直すということは、
その1からの部分に何時でも戻れるよう、プログラムの十分な構造化が要求されることは言うまでもない。
関数化、関数化そして関数化だ。関数が出来過ぎてしまうので分類だ。凄まじい数の独自関数群になる。
>>81
使ったことのない対象なので無責任に答えるが、
記録できないだけなのであればキャプチャ画像から割り出した座標をDOWN-UPでゆっくりクリックするのを書いて、
それでも認識されないか否か試してみたら?認識されないのなら不可能だから諦めろってことだ。

110:名無しさん@お腹いっぱい。
15/11/19 22:29:12.84 ZWZs69JY0.net
>>81
高レベルではなく低レベル記録する

111:名無しさん@お腹いっぱい。
15/11/19 22:43:42.91 oG2sQJna0.net
仮想OS上のアプリをホスト側から操作しようなんてのは無理

112:名無しさん@お腹いっぱい。
15/11/20 09:33:31.45 Pd39Iv5K0.net
フラッシュは、ジョブズが嫌ってた。
firefoxとも相性が悪くてクラッシュしまくりだから大嫌い!

113:名無しさん@お腹いっぱい。
15/11/21 10:27:37.94 kt2iHckZ0.net
UWSCのスレッド内からIEの操作を行うと、
アプリケーションは、別のスレッドにマーシャリングされたインターフェースを呼び出しました
ってエラーが出るんですが、回避の方法はありますかね?
IEobj = CREATEOLEOBJ("InternetExplorer.Application")
thread test_thread(IEobj)
msgbox("")
// ここまでmain
procedure test_thread(IE)
PRINT "IE Navigate start"
IE.Navigate("URLリンク(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:名無しさん@お腹いっぱい。
15/11/21 11:26:31.22 B04dZN/C0.net
そのケースならメインで CREATEOLEOBJ する意味がないと思う
念のため thread test_thread(IEobj) で test_thread はメインとは別スレッドになるけれど
test_threadから wait を呼び出しでも wait は test_thread と同じスレッドだからね
同じ OLEOBJ を複数のスレッドで使いたい場合は
どちらかを GETACTIVEOLEOBJ にしたら良いと思う

116:名無しさん@お腹いっぱい。
15/11/21 12:11:56.37 kt2iHckZ0.net
>>107
サンクス
メイン側で生成したオブジェクトをスレッドに渡しても(グローバル変数でも駄目だった)、動かないって事で
すかね。
メインでタブを二つ作ってそれぞれのオブジェクトをスレッドに渡して処理させようとしてたんだけど、タブは
作ったうえでスレッド側でオブジェクトを生成するようにしたら期待する動作になったようです。

117:名無しさん@お腹いっぱい。
15/11/21 17:03:31.49 +ESe50Z90.net
UWSCでループを用いないキー入力待ちって作れる?

118:名無しさん@お腹いっぱい。
15/11/21 17:25:25.61 B04dZN/C0.net
SETHOTKEYを使えば出来るよ
でも厳密にはこれは待たないからね
イベントドリブンなスクリプトになるイメージ

119:名無しさん@お腹いっぱい。
15/11/21 18:07:35.61 +ESe50Z90.net
それってホットキーの入力を待つ時には結局ループ系必要にならない?

120:名無しさん@お腹いっぱい。
15/11/21 18:24:22.67 valwfeOZ0.net
ならない

121:名無しさん@お腹いっぱい。
15/11/21 18:34:12.81 +ESe50Z90.net
>>110,111
ありがとう
やってみるわ

122:名無しさん@お腹いっぱい。
15/11/21 18:38:50.90 B04dZN/C0.net
ホットキーで割り込む隙もなくメイン処理が終わるなら当然終わるよ
キー入力の待機ループが不要なだけさ

123:名無しさん@お腹いっぱい。
15/11/21 21:26:37.91 +ESe50Z90.net
>>114
sleep中でも無視して関数呼び出してくれるんだね
これでPCへの負荷が激減した
ありがとう

124:名無しさん@お腹いっぱい。
15/11/24 17:32:21.47 3BpSGfNj0.net
test

125:名無しさん@お腹いっぱい。
15/11/24 22:48:31.92 JF3Q3VkF0.net
UWSCのウィンドウを出しておいて
右クリックからランチメニューを辿って
スクリプトを実行しようとしたとき
メニューにある「タスクトレイに格納」で
左クリックしてるわけでもないのに
タスクトレイに格納されてしまうことがあるけど
これは仕様なの?
ゆっくりやれば問題ないけど
ササッとやりたいときに
タスクトレイに格納されてしまって萎える
Free版 ver5.2.0

126:名無しさん@お腹いっぱい。
15/11/24 22:55:07.30 qS8AAPnY0.net
マウスが古くなっていてチャタリングが発生している可能性はゼロなの?

127:名無しさん@お腹いっぱい。
15/11/24 23:07:09.04 W5FAQXAx0.net
何言ってんだと思ってやってみたらなるほど
右クリックするとメニューが表示されるわけではなく、右ボタンを押下した時点(離す前)でメニューが表示される
そして丁度カーソルの位置にタスクトレイに格納がある。
そのため、メニューを開く時に右クリック(押して離す)をしてしまうと格納されてしまうことがある。
こういうことかな?
それなら右ボタン押してメニューを開いたら、押したままドラッグでランチメニュー→スクリプトの上で離すってやればいいんじゃね

128:名無しさん@お腹いっぱい。
15/11/24 23:30:20.08 s/LW23zM0.net
HOTKEYじゃ駄目なの?

129:名無しさん@お腹いっぱい。
15/11/24 23:32:44.91 JF3Q3VkF0.net
右クリックメニュー上で右クリックしても
決定したことになるのか
それは知らなかった

130:名無しさん@お腹いっぱい。
15/11/24 23:53:35.41 qS8AAPnY0.net
だからチャタリングが発生するマウスだとコンテキストメニューが誤爆しやすくなってしまうのよね

131:名無しさん@お腹いっぱい。
15/11/25 11:13:45.29 rJNaTAeQ0.net
今Windows8.1を使用しているのですが
外付けHDDが短時間で休止状態になってしまって困っています
UWSCで定期的にアクセスして休止に入らないようなスクリプトは
どうやったらかけるのでしょうか

132:名無しさん@お腹いっぱい。
15/11/25 12:42:30.98 txG9N8jK0.net
がんばって調べれば書けるよ
つか、わざわざUWSCでやることでもないだろそれ

133:名無しさん@お腹いっぱい。
15/11/25 15:20:51.71 S/4vbjYn0.net
USBかATAコントローラーのドラ�


134:Cバ設定かサスペンドの設定だろUWSC関係ねえ OSがスリープ命令出したらたとえUWSCで自動書き込みさせても電源落ちるぞ



135:名無しさん@お腹いっぱい。
15/11/25 15:51:54.62 Iap/Z3Jk0.net
UWSCでやる意味は全くないけど、OSのスリープタイマーをリセットするコマンドがあったような

136:名無しさん@お腹いっぱい。
15/11/25 17:12:36.18 JO/DUQA90.net
A、B、C画像いずれかがなければDをクリックし
A、B、Cのいずれかの画像があればループを終了する
と言う感じで組みたい
WHILE (CHKIMG("A.bmp")=FALSE)
WEND
このままではAの画像がでるまでループ
ループ途中にA画像B画像C画像を検索し
なければDをクリック。
頭爆発しそう

137:名無しさん@お腹いっぱい。
15/11/25 17:19:07.03 rT4L+apC0.net
ここはお前の日記帳じゃない

138:名無しさん@お腹いっぱい。
15/11/25 17:29:57.74 y0cJp4zm0.net
ABCいずれかがなければDで
ABCいずれかあれば終了
どっちも同じ?
A がなければ D だけど
AがなくてもBとCがあるから終了?
でもBとCがあってもAがないからD?

139:名無しさん@お腹いっぱい。
15/11/25 17:37:42.03 txG9N8jK0.net
WHILE TRUE
IF Aあり BREAK
IF Bあり BREAK
IF Cあり BREAK
Dクリック
WEND
じゃいかんのか?

140:名無しさん@お腹いっぱい。
15/11/25 19:31:02.42 JO/DUQA90.net
>>129
>>130
初歩的な勘違いやった。
申し訳ない

141:名無しさん@お腹いっぱい。
15/11/27 03:04:57.99 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:名無しさん@お腹いっぱい。
15/11/27 03:10:30.73 6LeH5ZQ60.net
どうでもいい指摘だけど i が加算されないからそれ延々ループしまくるよね
CPUパワーの可能な限り延々チェックし続けて、そりゃウインドウも点滅するさね
リソース不足じゃない?

143:名無しさん@お腹いっぱい。
15/11/27 03:24:45.08 uYW4zJhI0.net
>>133
chkimgの後のi=i+1が抜けてましたね
ご指摘の通り非力なPCを使っているのですが、
タスクマネージャーで確認したところCPU使用率は50%を下回っているようでした
chkimgの後にsleep(1)を入れても点滅するのでパワーの問題じゃないと思ってたのですが…

144:名無しさん@お腹いっぱい。
15/11/27 04:39:10.35 gIPgqqH30.net
クリックしたときにその下のウィンドウのID取得してるのにわざわざMORG_BACKを指定してる
理由がよくわからないけど試しにMORG_FOREにしてみたらどうなるかな?

145:名無しさん@お腹いっぱい。
15/11/27 11:40:45.00 qwTQlhP30.net
peekcolor・chkimgは実行された瞬間にウィンドウ内にちらつきが走る。
実際にどうなってるのかは一瞬過ぎてわからないが、タイトルバーの明滅からして
ウィンドウがアクティブ→非アクティブ→アクティブというようになっている感じがする。
大量にchkimgすると結構チラチラとして不快に感じる。

146:名無しさん@お腹いっぱい。
15/11/27 12:27:45.06 AjRZAbKp0.net
MORG_BACKでやってるとなるよね
バックグラウンドでやる必要ないならFOREでやれば点滅しないはずだけど

147:名無しさん@お腹いっぱい。
15/11/27 12:32:28.19 wntLhT


148:d20.net



149:名無しさん@お腹いっぱい。
15/11/27 14:12:30.76 FeZzskVz0.net
>>134
2コアなら1コアがフルに使ってても50%超えないから

150:名無しさん@お腹いっぱい。
15/11/27 14:23:32.71 qwTQlhP30.net
>>137,137
バックグラウンドで動作させてるわけではないんだが、IEだとちらつく。
他のアプリではあまり見ないのでIEだけが問題なのかもしれん。
あとposaccもちらつくな。
使ってる量的にはchkimgよりpeekcolorが、peekcolorよりposaccの方が多いから
原因はposaccかも。

151:名無しさん@お腹いっぱい。
15/11/27 14:33:55.72 AjRZAbKp0.net
え、MORG_BACKにする=バックグラウンドだろ
だったらMORG_FOREにしとけよ

152:名無しさん@お腹いっぱい。
15/11/27 19:20:14.27 qwTQlhP30.net
俺と>>132は別人だよ。
最初からバックグラウンドにはしていない。

153:名無しさん@お腹いっぱい。
15/11/27 21:21:48.29 AjRZAbKp0.net
おお、すまんな
IEだとFOREでもちらつくのか

154:131
15/11/27 23:19:54.60 uYW4zJhI0.net
みなさんありがとうございます
バックグラウンドで動かしたかったんですがMORG_BACKだと仕方ないみたいですね
諦めてちらつきは我慢することにします

155:名無しさん@お腹いっぱい。
15/11/28 18:17:20.79 FR9Rv/l10.net
VMwareのゲストOS上で主に、たまにホストOS上で動かすスクリプトがあるんですが
スクリプトからホストかゲストか否かを判定する方法ないですかね?

156:名無しさん@お腹いっぱい。
15/11/28 20:22:07.03 dldTCCO80.net
>>145
c:\ほにゃ.txt とか置いといてそん中に Guest or Host って書いておく
起動時にそれを読んで判断じゃダメ?

157:名無しさん@お腹いっぱい。
15/11/28 20:39:20.97 wN8TzbSm0.net
レジストリ読めばいいだけじゃん
UWSCじゃなくてバッチでもできることだしこのスレでは特に関係ない話題よね

158:名無しさん@お腹いっぱい。
15/11/28 20:53:54.86 FR9Rv/l10.net
>>146
それ単純でいいですね。146さんもありがとうございます。

159:名無しさん@お腹いっぱい。
15/11/28 21:25:51.53 qtPTFMZU0.net
>>146
もっと言えば、ほにゃがGuest or Hostで、そのファイルがあるかないかだけで、中まで見なくていいよね

160:名無しさん@お腹いっぱい。
15/11/28 21:43:33.70 oqtIKp380.net
GET_APPDATA_DIRでユーザーネームあたりを確認してもいいよね
同じじゃなければだけど

161:名無しさん@お腹いっぱい。
15/11/28 23:05:00.83 wN8TzbSm0.net
だからレジストリ見れば一発だろうが
DosCmd("wmic csproduct") の戻り値を参照しろ
VMware Virtual Platform ってのが入るから

162:名無しさん@お腹いっぱい。
15/11/28 23:25:03.94 FR9Rv/l10.net
別に無視してるわけではないですが、ファイル作って判別する方が
仮想か否かだけでなくどのPC/OSかという判別が容易なのでこっち採用です

163:名無しさん@お腹いっぱい。
15/11/29 00:47:57.33 JUXVZ/4C0.net
iniファイルで良いような…

164:名無しさん@お腹いっぱい。
15/11/29 16:45:06.45 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:名無しさん@お腹いっぱい。
15/11/29 22:40:44.71 PLkzB9890.net
callってどういう時に使えばいいんだろう
少しずつ部品となるプログラムを作って、それを大元のプログラムで呼び出すような作り方をしてるんだけど、
uwscファイルがどんどん増えていって、どんどんわかりにくくなる
・何度も、何行も書かなきゃならない処理を一行で書ける
・変更する場合も呼び出し先のファイルを変更するだけでいい
こういうのが利点なのかな?

166:名無しさん@お腹いっぱい。
15/11/29 22:51:34


167:.18 ID:Eprjqt/E0.net



168:名無しさん@お腹いっぱい。
15/11/29 23:10:30.89 PLkzB9890.net
やっぱり自作関数をつくるべきなのか
引数とか処理の流れとかがよくわからんままだったから敬遠してた

169:名無しさん@お腹いっぱい。
15/11/29 23:16:48.50 Eprjqt/E0.net
今だとまんまファイル=処理になってるんだろ?
それぞれ頭にprocedure 処理名、尻にfendつけて1ファイルにまとめるだけや
んでcallしてるところでcallやなしに処理名を書くだけのことや

170:名無しさん@お腹いっぱい。
15/11/29 23:26:27.99 PLkzB9890.net
それだけでいいのか
やたら引数とか書いてあるから後回しにしてた

171:名無しさん@お腹いっぱい。
15/11/30 04:20:23.49 FBOUUxt90.net
>>81
Androidエミュレータの事なら Win10Pro 64bit だとUWSCを管理者権限で起動したら反応する
逆に管理者権限で立ち上げないと書いてある通り反応しない

172:名無しさん@お腹いっぱい。
15/11/30 04:40:32.11 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:名無しさん@お腹いっぱい。
15/11/30 04:43:07.50 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:名無しさん@お腹いっぱい。
15/12/01 05:54:19.63 CNS9MKt70.net
ふと思いついて6通りの乱数x2つでの特定の組み合わせが出る確率を求めたんですけど
UWSCの乱数(random(n))に偏りがある?CALCARRAYのCALC_AVRがおかしい?のか
想定していた数値になりませんでした・・・。精査して原因を教えていただけるととても助かります
URLリンク(pastebin.com)
numcomが乱数を発生させた回数、avgnumは1を回数で割り、パーセンテージでの確率を収納してます
1/36、1/21、1/18が想定の答えなんだけど10%ちょいになっちゃうんです。
たぶん↑の求め方が悪いんだと思うんですけど、なんでなのかわかりません・・・
他に良い確率の求め方・確かめ方があればご教示お願いします

175:名無しさん@お腹いっぱい。
15/12/01 08:00:28.88 rjvF5ULZ0.net
明確に擬似乱数なのを精査する必要性がちょっとわからない
ガチな計算したかったら乱数生成もガチなのを使えば良いと思うな

176:名無しさん@お腹いっぱい。
15/12/01 08:33:28.18 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:名無しさん@お腹いっぱい。
15/12/01 12:47:54.59 CNS9MKt70.net
おぉ素晴らしいです、シンプルでわかりやすく動作も軽い!
考え方や


178:CALC_AVRの理解を誤っていたのがようやくわかりました。 ありがとうございます、精進いたします



179:名無しさん@お腹いっぱい。
15/12/01 13:21:03.45 +tH8B3qd0.net
>>161-162
遅くなったけどありがとう
勉強になった
おかげで引数とかも理解できるようになったよ
最近は関数の名付けに悩むようになった

180:名無しさん@お腹いっぱい。
15/12/01 15:00:00.63 zTQCTmEm0.net
プログラミングのエントリーにはもってこいだなUWSCは。

181:名無しさん@お腹いっぱい。
15/12/01 15:56:09.32 bENjVUYj0.net
基本書レベルの資料が揃ってなさすぎる
さすがに最初はCやったほうがいいと思うぞ
ポインタ云々はいらんけど

182:名無しさん@お腹いっぱい。
15/12/02 00:17:57.94 bCg1Fbqs0.net
バックグラウンドでの画面内の認識はしてくれるようになったのですが、ブックマークバーの部分から上の部分が認識してくれなくて悩んでいます。 
下の内容のようにMOUSEORGの中を途中からChrome_Render…からChrome_WidgetWin_1へ変えればブックマーク部分も認識してくれるかと思ったのですがだめでした。どなたかブックマークバーの部分も認識出来る用にするためにどのようにすればいいか教えて頂けないでしょうか?
URLリンク(i.imgur.com)

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

183:名無しさん@お腹いっぱい。
15/12/02 10:01:53.78 O01c30+40.net
procedure ie_wait( ie )
repeat
sleep( 0.1 )
until ( ! ie.busy ) and ( ie.readystate = 4 )
sleep( 0.2 )
fend
IEでページの読み込みが終わっているように見えるのに処理が止まってしまうことがたまにあります。
手動で再読み込みすると動き出します。対処法を教えてください。フリー版です。

184:名無しさん@お腹いっぱい。
15/12/02 11:52:47.22 RVv1vxR+0.net
x秒でタイムアウト、みたいな処理足したら

185:名無しさん@お腹いっぱい。
15/12/02 12:03:24.62 ZQB1PLza0.net
相手の鯖が遅延ロードしていたり自分のPCのキャッシュにヒットした時とか
ie.busy と ie.readystate はあんまりアテにならない
タイムアウトや移動先のページで必要なエレメントが存在するか確認してループを抜けるのも有りかもね

186:名無しさん@お腹いっぱい。
15/12/02 13:19:20.31 gtGvaZd80.net
IEはDOM操作するのが確実

187:名無しさん@お腹いっぱい。
15/12/02 16:15:25.22 p1ZciKF40.net
配列がややこしいな
dim hairetu[2]
↑これは配列の容量、個数の宣言で
hairetu[0] = 10
hairetu[1] = 20
↑これが番号の場所に格納するということなんだろ?
[]の中に数字いれるという書き方が同じだから、
ここでずっと訳わからなくなってた
それで[][]とかいう書き方もあるとか
あと、ここに書いてある
URLリンク(canal22.org)
DIM PSARRAY[2]
PSARRAY[0] = "This is a cat."
PSARRAY[1] = "That was a desk."
DIMって値の宣言だろ
""でくくれば文字列でもいいのかよ
ややこし

188:名無しさん@お腹いっぱい。
15/12/02 16:32:53.86 dxnbalsf0.net
厳密にはDIM 配列[]って入れ物の場所が書いてあるアドレスを宣言してるだけ
もっとも a = 1 と A = "1" がまったく同じように扱われるUWSCではそんなこと気にするべくもない
自分は配列宣言するときは[0]で使うたびにリサイズしながら入れてるよ
Arry[


189:ReSize(Arry, ReSize(Arry) + 1)] = "1つめ" Arry[ReSize(Arry, ReSize(Arry) + 1)] = "2つめ" Arry[ReSize(Arry, ReSize(Arry) + 1)] = "3つめ"



190:名無しさん@お腹いっぱい。
15/12/02 16:58:13.30 b4w8PdZC0.net
数値変数でも文字列入れれば文字列変数に自動で切り替わるってだけだよね

191:名無しさん@お腹いっぱい。
15/12/02 17:05:43.75 p1ZciKF40.net
その切り替わるというのは、連想配列と同じになるの?
連想配列が文字列入れることが出来る配列って認識があった

192:名無しさん@お腹いっぱい。
15/12/02 17:11:34.70 b4w8PdZC0.net
それはまったく認識が間違ってる。配列は番号付の変数ってだけだよ。
連想配列は添字に文字列が使える配列。

193:名無しさん@お腹いっぱい。
15/12/02 17:49:37.27 p1ZciKF40.net
ああ、[]の中に文字が使えるのが連想配列なのか
理解できた

194:名無しさん@お腹いっぱい。
15/12/03 13:48:27.43 YuHgaOly0.net
Windows10クリーンインストールしたらIEの操作でエラー出るようになったな
普段非表示だけど確認したいことがあるからIE.Visibleで表示した時とか一時停止して再開しようとした時とかたまに操作を受け付けなくなる
ページを再読込させる処理を入れればまた動き出すけど、数十秒後にUNTIL (! IE.Busy) AND (IE.readyState=4)でエラーが出てるかUWSC自体がフリーズするわ

195:名無しさん@お腹いっぱい。
15/12/03 14:12:03.56 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が保存されるんで
慣れないうちはペイントに貼り付けるなりして一回一回確認しながらやるといいですよ

196:名無しさん@お腹いっぱい。
15/12/03 14:27:46.45 lFKpQNYb0.net
>>170
あ、もちろんGETIDだけじゃなくHNDTOIDで取得したIDからでもSAVEIMGでSS取得できます

197:名無しさん@お腹いっぱい。
15/12/03 14:34:08.18 KqIB++7Q0.net
>>182
> GETCTLHNDで取得できるのはHandleなのでそのままではMOUSEORGのIDに使用することはできない
同じようなレスをしようと思ったがヘルプ読み返して止めたのに…
>> MORG_DIRECT (2): 指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送る(第1引数はウィンドウIDでもハンドル値でも可)

198:名無しさん@お腹いっぱい。
15/12/03 15:57:58.29 lFKpQNYb0.net
>>184
マジで?って思ってコード書いたらマジでした…orz
>>170
そんで反省してMOUSEORGのヘルプよく読み直したら
MORG_FOREの値は0と明記されてるけどMORG_BACKの値は明記されてなかったので
試しに print MORG_BACKで値確認したら 1ではなく2になってたので
MOUSEORG(ID,2,1)じゃなくてMOUSEORG(ID,2,2)にしたらバックグラウンドでも動作しました
やっぱ面倒でもヘルプ熟読するのと用意された定数はちゃんと使わないとだめね

199:名無しさん@お腹いっぱい。
15/12/03 16:10:37.72 lFKpQNYb0.net
URLリンク(www.dotup.org)
せっかく書いたんで一応チョロメのブクマのアプリって項目をバックグラウンドで押下させるサンプルも上げときます
UWSC5.2のPro版レジスト済みとさっき入れたばかりのチョロメで動作確認

200:名無しさん@お腹いっぱい。
15/12/03 17:17:45.94 0WPfFphN0.net
>>186 のやつフリーで使ってみたけど
真っ黒でバックグラウンドの認識が不可っぽいんだけど
フリーとプロじゃその辺やっぱ違うのかな?
元々の質問者とは別人です

201:名無しさん@お腹いっぱい。
15/12/03 18:06:34.86 lFKpQNYb0.net
>>187
最新の5.20フリー版で動きました OSはWin10Pro
とりあえず思いつくのは アプリ.bmp を自分で用意してみる うちのは最新版をインストールしただけで一切いじってないので比較画像と差異があるのかも


202: http://i.imgur.com/1vdOKb0.jpg (こんな感じ) UWSCを管理者権限で起動してみる位? あとバックグラウンドで画像認識できるのはあくまで他のWindowが上に重なってるときだけで最小化時は普通に失敗するようです



203:名無しさん@お腹いっぱい。
15/12/03 21:32:54.38 KqIB++7Q0.net
操作側のWebページがエラー出した時にスクリプト全体を再起動させたいんですが
チェックのスクリプトをインターバルでスケジュール起動させればいいとは
思いついたんですけど、UWSCの再生・停止ボタンを押すのって
GUIの無いUWSCスクリプトからだとどうやったらいいんでしょうか。

204:名無しさん@お腹いっぱい。
15/12/03 21:59:07.61 KqIB++7Q0.net
適当にやってたら押せたので質問は無しで

205:名無しさん@お腹いっぱい。
15/12/04 00:46:03.86 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)
で試しに画像をとってみましたが、両方ともきちんと写っていました。

206:名無しさん@お腹いっぱい。
15/12/04 00:50:32.45 90ljDn+M0.net
また、認識しないならURLで飛べばいいと思い
SCKEY(id,VK_F6)
SENDSTR(id,"ここにURL",1,True,True)
SCKEY(id,VK_RETURN)
と無理やりいれましたが、一応動くのですがURL入力する時にとても重くなります…

207:名無しさん@お腹いっぱい。
15/12/04 01:04:13.19 90ljDn+M0.net
また、あげて頂いたサンプルを起動したところ>>187の方と同じようにペイントに貼り付けた物が真っ暗な画面で、動いてくれませんでした。(アプリ.bmpは自分で置き換え、uwscは最新版でした)
 しかし、MORG_BACKの部分を1に変更したところ、ペイントに貼り付けた画像は真っ暗なままでしたが、動いてくれました。

208:名無しさん@お腹いっぱい。
15/12/04 01:09:15.47 90ljDn+M0.net
あ、すいません。MORG_BACKの部分を1に変えた上記のサンプルを参考に組み直したらちゃんと動いてくれるようになりました!ありがとうございましたm(__)m

209:名無しさん@お腹いっぱい。
15/12/04 11:31:23.07 /T7tx51V0.net
Bluestacksでゲームアプリのガチャ自動化マクロを作っています
ガチャを回すボタンを24bitBMPで保存して、動作テストをすると成功しました(ファイルA)
そのファイルAにループ関数を付け加えてファイルA’を作成し動作させると、画像認識ができなくなったので
再度ファイルAの動作テストを行いましたが完全にその画像では認識ができなくなりました
さっきから3回ぐらい画像を撮り直しては動作テストを行っているのですが、成功してもUWSを弄ると画像認識ができなくなってしまいます
成功したりしなかったり、というのはよく起こることなのでしょうか?

210:名無しさん@お腹いっぱい。
15/12/04 14:34:44.57 n18V7ZGY0.net
あるかないかと聞かれるとある

211:名無しさん@お腹いっぱい。
15/12/04 14:59:07.40 sFDKmSRE0.net
いじるとできなくなるっていうんだから原因ははっきりしてるよね。

212:名無しさん@お腹いっぱい。
15/12/04 16:52:58.00 ybxgbSDU0.net
画像が変わってるんだろ

213:名無しさん@お腹いっぱい。
15/12/04 17:04:25.75 hlWIkbdr0.net
jpgとpngで同じように見えて微妙に違うように
読み込みごとに微妙に画像変わってるってパターンわりとよくある話

214:名無しさん@お腹いっぱい。
15/12/04 19:27:22.45 2HUK37Ko0.net
レイヤーかぶせてあったりパーティクル飛んでたりね。

215:名無しさん@お腹いっぱい。
15/12/05 03:45:42.40 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)

216:名無しさん@お腹いっぱい。
15/12/05 10:48:54.93 qGfYiu4T0.net
>>195
撮った画像に対して撮り直した画像で画像認証してみて
それでダメなら画像を変えてるので画像認証は難しい

217:名無しさん@お腹いっぱい。
15/12/06 15:25:32.94 lI


218:ZtAvI+0.net



219:名無しさん@お腹いっぱい。
15/12/06 16:23:21.01 7fPRX80/0.net
SELECTボックスの文字の大きさって変えられないですかね?
高解像度化の著しい昨今、微妙に文字が小さくて読みにくい

220:名無しさん@お腹いっぱい。
15/12/06 16:26:04.76 7fPRX80/0.net
SELECTBOXの文字の大きさって変えられないですか?

221:名無しさん@お腹いっぱい。
15/12/06 16:30:47.46 7fPRX80/0.net
test

222:名無しさん@お腹いっぱい。
15/12/07 20:37:41.32 lkFOyJ4n0.net
>>205
OPTION DEFAULTFONTで変えられる
すべて一括で変わってしまうけど
Pro使いならCREATEFORMで全部自分で自由に指定できるけど

223:名無しさん@お腹いっぱい。
15/12/07 22:36:43.24 oGiSo+KF0.net
クリック位置を指定せずに(現在のカーソル位置にしたい)
実行までの待ち時間だけを指定するにはどうすればいいんでしょうか?
いくつか試しましたがいずれもダメでした
BTN(LEFT,CLICK,x,y,500) エラー
BTN(LEFT,CLICK,,,500) エラー
BTN(LEFT,CLICK,500) 500がカーソル位置として扱われてしまう

224:名無しさん@お腹いっぱい。
15/12/07 23:03:29.60 EYXsjzmpf
BTN(LEFT,CLICK,G_MOUSE_X,G_MOUSE_Y,500)

225:名無しさん@お腹いっぱい。
15/12/07 23:05:51.63 0rcqNGw90.net
sleep(0.5)
BTN(LEFT,CLICK)
は違うのかな?

226:名無しさん@お腹いっぱい。
15/12/07 23:13:17.78 cMraAyPW0.net
G_MOUSE_X使うとか

227:名無しさん@お腹いっぱい。
15/12/08 00:52:00.67 Bp2FB+GN0.net
キシュツでしたらすみません。
スケジュール設定で、スリープ状態から復帰してスクリプトの実行を考えています。
Windowsの電源管理の設定で「ロック解除する時にパスワードの入力」の設定をしているのですが、
「スクリプトは実行されるが、パスワード入力画面が表示が出たままで意図した画面が表示されず、CHKIMGで画像判別できない。」
状況になり困っています。
ロック解除時のパスワードを設定しない以外の回避策はありますでしょうか。
パスワードを設定しないと、俺の「家族に見られたら困る」フォルダーが火を噴きそうです...

228:名無しさん@お腹いっぱい。
15/12/08 00:58:50.00 t70A2e+R0.net
>>212
フォルダにパスワードかけとけ

229:名無しさん@お腹いっぱい。
15/12/08 01:27:05.64 w99sCTo10.net
>>212
USBメモリ買うなり、別PCを買うなり、物理的に別個にしなきゃ不安だわ。
VeraCryptとか使えばどう?

230:名無しさん@お腹いっぱい。
15/12/08 09:19:58.59 0rN+5VX00.net
>>212
つまりそのスケジュールが実行されるときだけパスワード入力を回避したいってこと?
それは無理だ

231:名無しさん@お腹いっぱい。
15/12/08 11:56:57.30 Q8/a49a30.net
フォルダにパス掛けとくとか、アカウント使いわけるとかせんと。

232:210
15/12/08 14:02:44.60 Bp2FB+GN0.net
レスくれた方、ありがとうございました。
その後調べたところ、電源オプションはpowercfgコマンドでコマンドラインで変更できることを知りました。
そこで、下記を目論んだのですが上手くいきませんでした。
・スクリプト(1)
doscmd("powercfg …")で、ロック解除時のパスワードを不要にした後、スリープする
・スクリプト(2)
本来実行したいスクリプトで、最後にロック解除時のパスワードを必要に変更する
スクリプト(1) -> (2)の順にスケジュール設定して実行する。
試したところ、、スクリプト(1)で電源オプション設定を変更しても、スクリプト(2)の実行時、やはりパスワード入力画面が出てきてしまいます。
※ここでパスワードを入力した後、手動でスリープ->スリープ解除の操作をすると、スクリプト(1)が設定を変更しているので、パスワード入力画面は出てきません。
スクリプト(1)の最後にリブートすれば対処はできそうですが、フォルダーにパスワードを掛ける方向で検討します。
ありがとうございま�


233:オた。



234:名無しさん@お腹いっぱい。
15/12/08 14:33:43.03 nFTuQmFE0.net
そこまでして自動化操作したいことって何?
まずはそこからだよね
VMWareで起動させておいてスタンバイ→本体スリープ復帰→VM復帰起動→VM内でスクリプト流す(本体はロックのまま)
これ以上にすっきり安全にやる方法ないと思うよ

235:名無しさん@お腹いっぱい。
15/12/08 14:59:58.05 OBYBo33X0.net
家族に見られる環境で家族に見られたくないのにパスを不要にしてスリープだとか
スクリプト実行中に家族に弄られて見られる可能性は無視とか何がしたいのか分からなすぎる

236:名無しさん@お腹いっぱい。
15/12/08 15:05:40.97 Q8/a49a30.net
そういえばロック画面の裏でスクリプトって動かんのかね?

237:名無しさん@お腹いっぱい。
15/12/08 15:07:57.58 HUcsHTi50.net
当人が納得しているならそれで良いじゃない

238:名無しさん@お腹いっぱい。
15/12/08 15:10:36.50 HUcsHTi50.net
>>220
キーボードやマウスに画面が繋がっていない前提のスクリプトなら動く筈
勿論、ロック画面自体にはアクセス出来ない

239:名無しさん@お腹いっぱい。
15/12/09 13:54:39.11 KgeowQok0.net
>>210-211
ありがとうございます。
sleepにしました。
座標を指定しないと待ち時間も指定できないというのも
いまいち納得出来ない仕様ですが・・・

240:名無しさん@お腹いっぱい。
15/12/09 14:16:19.27 yc0hiHKU0.net
そういう仕様なのか不具合なのか微妙なのは公式掲示板で聞いてみたらいいんじゃない?

241:名無しさん@お腹いっぱい。
15/12/09 15:07:38.82 IATR22hr0.net
組み込み関数だけじゃなくユーザー定義関数の全パラメータに規定値設定した場合でも
途中のパラ省略して後方のパラだけ指定するとSyntaxError出るから仕様っぽいね
G_MOUSE_変数使ってもWait後のクリック発生時じゃなくBTN呼び出し時の座標になっちゃうみたいだから
マウスカーソルに追随させて自動クリックさせたいなら>>210の処理をラップして呼び出すのが一番安全かな

242:名無しさん@お腹いっぱい。
15/12/09 16:13:30.40 08E8vcMN0.net
途中をデフォルト(省略)したい時はEMPTYと記述しろ

243:名無しさん@お腹いっぱい。
15/12/09 18:25:17.33 IATR22hr0.net
BTN(LEFT,CLICK,EMPTY,EMPTY,2000)
普通にエラー吐き出して終わりだった

244:名無しさん@お腹いっぱい。
15/12/09 18:58:01.47 OKWIL6420.net
SAVEIMGは途中のパラメータ省略しても動くのに変な感じだ
SAVEIMG("AAA.bmp", GETID("XXX"), , , , , , 0, 0)

245:名無しさん@お腹いっぱい。
15/12/11 11:18:54.45 7dd/e87e0.net
×ret = BETWEENSTR("ddddd",,,,FALSE)
○ret = BETWEENSTR("ddddd",,,-1,FALSE)
何個か調査してみた結果同じ関数内の省略可能引数でも途中空値を設定できる引数とできない引数があるっぽいね
なぜかは判らないけど

246:名無しさん@お腹いっぱい。
15/12/11 13:17:37.95 bmQj6ZbY0.net
BETWEENSTR()はその-1を指定してる引数はデフォ値がHelpに書いてないから省略出来ないかもって思えるかな
ただBTN()は、「省略時は~」って書いてあるのに省略出来ないから「あれ?」って思う

247:名無しさん@お腹いっぱい。
15/12/12 01:28:24.49 WJj0stN+0.net
UWSCのスケジュール機能で一時間毎にスクリプトを実行しています。
普段は10分位で終了する内容なのですが、予期しない動作をした時に1時間経っても終了せず、次のスクリプトと実行が被ってしまい、抜け出せなくなります。
一時間後の実行がうまく行けば、前回のスクリプトは中断しても構いません。
UWSCやWindowsの機能で、実行が重ならないように実現できないでしょうか?

248:名無しさん@お腹いっぱい。
15/12/12 03:03:48.97 RKFSqFC20.net
>>231
データの整合性とか気にならない処理内容なら
スクリプト内で経過時間を監視するスレッドを走らせたらどうでしょうか

249:名無しさん@お腹いっぱい。
15/12/12 12:31:57.21 WJj0stN+0.net
>>232
以下の関数を、予期しない動作が発生した時に走る関数中に実行すると実現できそうです。
Procedure hogehoge
gettime


250:() Ifb G_TIME_NN > 50 exitexit Endif Fend 難しく考えすぎていたようです。ありがとうございました。



251:名無しさん@お腹いっぱい。
15/12/12 18:14:26.36 ACvSeZV80.net
似たような事かもしれないけど、予期しない動作が発生した時に自分自身を
再起動させたいのだけど。
EXEC等使って別プロセスで予期しない動作判定+再起動専用のスクリプト走らせるしかないかな?
UIの無いスクリプトは暴走が怖い…

252:名無しさん@お腹いっぱい。
15/12/12 18:30:53.62 RKFSqFC20.net
>>234
本体のスクリプトはどんな処理してるの?

253:名無しさん@お腹いっぱい。
15/12/13 23:14:50.95 aAFsszQK0.net
予期しないって…範囲が巨大すぎて。。。
予期しないことが判定できるなら、予期できそうだし…

254:名無しさん@お腹いっぱい。
15/12/13 23:40:38.95 9KF/JySF0.net
予期しない事象でエラー発生するならTRY EXCEPT文で拾ってスクリプト最初から回す
エラーじゃなくスクリプト自体が事象判定できるならTRY FINALY文でケースごとにコード書く
単体で完結させたいならこのくらいかなぁ

255:名無しさん@お腹いっぱい。
15/12/14 00:37:35.63 OWYR4MFV0.net
操作対象アプリが応答なしではないけど応答無くなる時があって、これが予期しない動作。
画面の推移を監視して、長時間動かなくなったらスクリプト毎再起動させようと。

256:名無しさん@お腹いっぱい。
15/12/14 00:49:16.17 fnMg27o30.net
呼び出し用スクリプトからメイン処理スクリプトをcallで呼び出して
そのcall内でexitすればcallから抜け出して呼び出し用スクリプトに移動するから
元に戻る・・・ってことはだめ?

257:名無しさん@お腹いっぱい。
15/12/14 01:10:21.65 yI4ZqmAH0.net
対象タスクをKillして一から処理を立て直したいなら別途監視スレッド立ち上げておいて必要な時に処理させるなり好みでいいと思うけど
例えばボタン押下した後想定される時間内に想定される画面に移行しないケースが発生してスクリプトが失敗するっていうならコードの書き方の問題だと思う
UWSCでのコーディングは組み込み系に近いからZIPCライクな状態遷移設計をコードに落とす書き方が向いてると思うんだけどこればっかりはさくっと説明できるもんでもないからなぁ

258:名無しさん@そうだ選挙に行こう
15/12/14 10:24:44.14 OWYR4MFV0.net
本質的にはエラー対策が未熟なままスクリプトを書き続けて
後から対策しようとしたってのが問題なんだけど、メインスクリプトが非常に長くて
関数から関数を呼び出し更にまた別の関数を…って感じなので全ての関数に不具合対策すると
収拾がつかない。exitでは一つの関数を抜けるだけに終わってしまうという状況。
一発でメインルーチンの最初に戻れればいいんだけど。
一々細々対策しなくても、最初からやり直せば何とかなるのでそれで対処しようかな…と

259:名無しさん@そうだ選挙に行こう
15/12/14 11:42:30.40 kZpbsuTx0.net
//<input id="retainLogin_flg" class="fmtxt" type="checkbox" checked="" value="1" name="retainLogin_flg">
IESETDATA( IE, 1,"retainLogin_flg","1")
これでログインできません。どこが間違ってますか?

260:名無しさん@そうだ選挙に行こう
15/12/14 15:23:59.00 OdJxQFG70.net
MOUSEORG関数を使ってバックグラウンドのChromeウインドウでBTN,KBD,CHKIMGを使用したいのですが、CHKIMG以外動作しません…
別にテスト用のコードを組んだところ、BTN,KBD,MMVの3つはChromeのウインドウIDを使用した時のみ一切動作しませんでした。
Chromeをこのような関数で操作するにはどうしたらいいでしょうか?
また、CHKIMGで画像読み込みをしただけでChromeが前面に出てきてしまうのですが、これを防ぐにはどのようにすればいいのでしょうか?
どなたかよろしくお願いします。

261:名無しさん@そうだ選挙に行こう
15/12/14 16:27:54.18 qKre7MPE0.net
タブのIDが必要
でも根本的にChromeは自分が隠れていると意図


262:的に画面更新をサボるから裏動作に向かないと思う 素直にIE使ったほうが楽よ もしくは仮想PCでChromeを最前面で動作させてるいうFAQ的対応 仮想化対策されているコンテンツなら素直にリアル別端末用意しなはれ



263:名無しさん@そうだ選挙に行こう
15/12/14 16:58:39.67 OWYR4MFV0.net
その仮想PCでさっきドツボに嵌まった…
件のスクリプトはVMwareのゲストOS上で走らせてるんだけど、テストの為に
ホストで動かしてたらバグを作りこんでてアプリのウィンドウが最少化してしまって
その背面にあったVMwareのウィンドウをクリック!
そこからさあ大変。ホストのスクリプトを停止させようとしてもVMwareがアクティブの内は
キー入力を全部取られてホストに入力が反映しない。
VMwareを非アクティブにしてホストにキー入力しようにも、
操作中にスクリプトが再度VMwareのウィンドウをクリックして最初に戻る…
ヤバいこれPC再起動するしかないんじゃないのかとか焦ってたら
正に予期しない動作時に働くスクリプト()のせいで無事復帰できたw

264:名無しさん@そうだ選挙に行こう
15/12/14 18:06:40.64 yI4ZqmAH0.net
>>241
実行中のマクロを深い階層から強制的に終わらせたいならEXITEXIT
今のマクロをあんまり変えずにマクロの終了状態に応じて分岐させたいなら別スレッドから今のマクロ呼び出してEXITEXITで自分で定義した終了コード渡して呼び出し元に判断させるのが良いと思う
簡単なサンプル
URLリンク(www1.axfc.net)
EXECのuwsc.exeはパスを通すかフルパスに書き換える
main_hogeを実行 sub_hoge内のproc_Call9()プロシージャ内でコメントアウトされてる行を実行するとsub_hogeの実行結果に応じてメッセージが表示されるはず

265:名無しさん@お腹いっぱい。
15/12/14 20:19:16.20 OWYR4MFV0.net
>>246
色々考えてくれるのはありがたいけど
スクリプト内でクリック箇所だけでも400位あって、ぶっちゃけ全く書き換えたくないのが本音。
いじる位なら一からやったほうがまし。
今のスクリプトは全く変えず、外部からどうにかしたいわけ。

266:名無しさん@お腹いっぱい。
15/12/14 20:22:34.83 bKMDkJ+30.net
検索用に保存してある画像の
縦や横のピクセル数を返す命令ってありますか?

267:名無しさん@お腹いっぱい。
15/12/14 20:34:09.73 yI4ZqmAH0.net
>>247
それはもうどうしようもないね~
BTNやCHKIMGの処理回りをラップしておけばそのFUNCTION内でどうにかできたかもしれないけど
望みは薄いのか
>>248
標準関数だとなかったと思うけどFSO使ってサイズ取得する方法ならここに載ってる
URLリンク(d.hatena.ne.jp)

268:名無しさん@お腹いっぱい。
15/12/14 20:42:21.68 VO9EyQaS0.net
セミコロン(マルチステートメント)使ってる人いる?
これって行数が減るだけで特に意味ないよね?

269:名無しさん@お腹いっぱい。
15/12/15 00:49:14.39 i5n9Tzyq0.net
CHKIMGXのサンプルで保存画像のサイズ出して照合してなかったっけ
あれってXの機能なのか

270:名無しさん@お腹いっぱい。
15/12/15 13:25:13.68 wsrLnUiO0.net
画像ファイルのサイズは VBScript の LoadPicture 関数使えばいけるよ。

271:名無しさん@お腹いっぱい。
15/12/16 07:37:39.05 3D/556GD0.net
imagesizeはchkimgx.dllの機能だね
現状とりあえず入れとけってレベルだから作者さんにはほんと感謝

272:名無しさん@お腹いっぱい。
15/12/16 12:33:17.99 RO0Uckyn0.net
アンドロイドの画面をPC表示して操作するVysor (Beta)ってソフトでウインド指定して座標クリックしたのにうまくいかない
ウインド指定外せば思い通りの動作するんだけどエスパー様アドバイスください

273:名無しさん@お腹いっぱい。
15/12/16 13:29:08.00 iS4W1/hI0.net
>>254



274:EィンドウIDが違うんだろ



275:名無しさん@お腹いっぱい。
15/12/16 14:13:22.42 3D/556GD0.net
>>254
UWSCを管理者で起動してない
MORG_DIRECT指定をMORG_CLIENTにする
コードミスってなけりゃ恐らくこのあたり

276:名無しさん@お腹いっぱい。
15/12/16 15:04:31.64 brGLyGvp0.net
プルダウンから選ぶコードはどうやって書けばいいですか
ソースはこんな感じです。
<td id="note1">
<select name="cv.note[0]">
<option value="3">3</option>

277:名無しさん@お腹いっぱい。
15/12/16 15:05:27.88 RO0Uckyn0.net
クリックしたい座標をウインドウ指定して座標取得したのでウインドウIDは多分大丈夫です
ウインドウ指定して基準指定:ってのを指定なしとMORG_DIRECTだと左上の0,0の座標をクリックしてたのが
MORG_CLIENで思い通りの動作になったんですがマウスカーソル奪われるのはあきらめるしかないですか?

278:名無しさん@お腹いっぱい。
15/12/16 15:19:04.76 MSwZZbqh0.net
ウインドw風w

279:名無しさん@お腹いっぱい。
15/12/19 09:36:25.37 dKs0rSCT0.net
画像認識で範囲を限定して高速化したいのですが、範囲指定ではなくて画像認識するためのファイルの中心の位置を指定して使うことはできませんかね?

280:名無しさん@お腹いっぱい。
15/12/19 10:13:50.36 1sg6SGUx0.net
ラッパー関数を用意すればおk

281:名無しさん@お腹いっぱい。
15/12/19 10:15:12.99 F+6XYxyV0.net
>>260
>ファイルの中心の位置を指定して
例えば、200x200の画像ファイルの中心付近50x50をchkimg()に使いたいってこと?
chkimg()じゃ出来ないけど、ちょっと考えただけでも
・予め必要な画像を抜き出しておく
・指定座標から指定サイズの画像を抜き出すアプリを探すか作ってchkimg()の対象にする
などなどやりかたは色々ある
まずはこういうのじゃダメな理由を書いたほうが良いよ

282:名無しさん@お腹いっぱい。
15/12/20 11:14:47.91 ZpLNVxzc0.net
俺は言いたいことは分かったけど、処理に余計時間がかかると思うの

283:名無しさん@お腹いっぱい。
15/12/20 11:47:27.75 KZe/XdiC0.net
出現する場所がわかっている場合には矩形範囲で正確な場所を指定すれば
高速化出来るけど、それを左上角指定でもなく画像の中心座標をもって行いたいってことかな

284:名無しさん@お腹いっぱい。
15/12/21 01:26:17.27 2PK9cnqq0.net
getkeystate(vk_lbutton)を使ってて、一度でもtrueにすると以降ずっとtrueのままなんだけど、以前からこんな動作だった?
座標が1箇所しかとれなくて困っている…

285:名無しさん@お腹いっぱい。
15/12/21 01:58:05.59 2PK9cnqq0.net
>>265の理由で以前作成して使用していたマクロも使えなくなっている
おかしい…

286:名無しさん@お腹いっぱい。
15/12/21 05:15:20.75 XffwbDlp0.net
>>265
若干長押しで引っかかってるとか?
repeat
sleep(0.1)
until !GetKeyState(VK_**)

287:名無しさん@お腹いっぱい。
15/12/21 09:39:13.45 CCKQhsqf0.net
挙動が変わったと思うなら
検証用のコードを書いて公開してみたら良いと思う
皆の結果が同じなら公式のバグでしょ

288:名無しさん@お腹いっぱい。
15/12/21 11:44:04.17 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

289:名無しさん@お腹いっぱい。
15/12/21 13:13:06.71 k1OansqD0.net
問題のソースコードを提示できないというのは裏を返せば
問題を切り分けられていない証拠でもあるんだよね
素人ほど最初に自分ではなく他人を疑う

290:名無しさん@お腹いっぱい。
15/12/21 14:40:18.86 EiQ88uQn0.net
CHKIMGXの着目する色の指定ってどういう引数いれればいいのかな?
RGB値?もしそうだとするとどう記述するんだろう。FF0000(赤)みたいな感じでいいのかな?

291:名無しさん@お腹いっぱい。
15/12/21 14:45:48.24 EiQ88uQn0.net
あ、サンプルよく読んだらかいてありました。すいませんでした。

292:名無しさん@お腹いっぱい。
15/12/21 15:24:38.26 MrgyCbD


293:Y0.net



294:名無しさん@お腹いっぱい。
15/12/21 15:39:43.34 PCRRkr5n0.net
OPTION指定の性質上無理
スクリプト別にするしかない

295:名無しさん@お腹いっぱい。
15/12/21 20:27:33.49 3hymvKIb0.net
俺ならロギング処理のラッパーを作って、それぞれの起動ごとに固有文字列割り振れるようにするかな
正規表現使えば置換処理でまとめて直せるし簡単でしょ
それが嫌ならソースコードを改変するソースコードを書いちゃえばいいしね

296:名無しさん@お腹いっぱい。
15/12/21 20:50:46.67 FTxNfRK40.net
本体をcallするoptionだけのファイルを起動したらいいんじゃないかな

297:263
15/12/21 21:05:50.36 2PK9cnqq0.net
セーフモードで動作させてみたところ思う通りの動きになりました。
どうやら何らかの常駐ソフトが悪さをしているようです。
原因のソフトが特定できましたらまた報告させていただきます。
スレ汚し失礼しました。

298:名無しさん@お腹いっぱい。
15/12/22 00:09:15.99 gv1300fTg
>>273
ログパス指定にTIME値いれたら?

299:名無しさん@お腹いっぱい。
15/12/22 00:23:23.71 DKkq04ll0.net
スレちゃん「私……汚されちゃったよぉ」

300:名無しさん@お腹いっぱい。
15/12/22 05:34:12.40 8u/KWTZa3
>>278
試してみるとわかるけどそれは出来ない
実用的な案は>>276あたりかなぁ

301:名無しさん@お腹いっぱい。
15/12/22 12:57:13.12 RoUnScmr0.net
スレちゃんは汚れてないよ俺が一生守るから

302:名無しさん@お腹いっぱい。
15/12/25 15:17:07.98 7FQmwVc80.net
すみません、
マクロ再生開始してから2時間経過したら○分ほど停止してまた活動再開を繰り返す処理ってどうすればいいでしょうか?
停止する○分は10~20分くらいが毎回ランダムで変わるとなおいいのですが・・・
よろしくお願いします。

303:名無しさん@お腹いっぱい。
15/12/25 15:21:56.32 4xQkvZLh0.net
すみません自分で調べてくださいよろしくお願いします

304:名無しさん@お腹いっぱい。
15/12/25 15:36:14.25 lZFGO43t0.net
2時間経過をチェックする方法
ランダムで10~20分停止する方法
たった2つググるだけだ頑張れ

305:名無しさん@お腹いっぱい。
15/12/27 16:12:57.95 AlS/S0az0.net
某青い空のモバゲーのポーカー関数ちょっと作ってみたいんだけど
配布終わってるし折角だから1から勉強してみようと思う
とりあえず、ウインドウの座標を固定して画像取得する関数って
どういうの組めばいいのかな
少なくとも脳死ポーカーより頭によさそう

306:名無しさん@お腹いっぱい。
15/12/27 16:36:33.75 /OzrBre50.net
とりあえずぐぐれ。
出来たやつを実行しろ。
思った動作と違ったら来い。

307:名無しさん@お腹いっぱい。
15/12/27 16:44:59.25 AlS/S0az0.net
なんか探したら自動取得ツール自体はあったわ
これで画像取得自体はできるけどそのままだと枚数が1000こえるな
なんかこう1枚ずつ認識して判断できんかな・・・・・

308:名無しさん@お腹いっぱい。
15/12/27 16:55:25.82 792AGejY0.net
>>287
それを考え、自分でスフリプトを組むことを勉強っていうんじゃないの?

309:名無しさん@お腹いっぱい。
15/12/27 17:05:31.09 AlS/S0az0.net
>>288
いまやってる
座標の取得はできそうだけど画像名のストック?がちょっとよくわからん
判断関数のあとで真なら文字を記憶みたいな感じでできるんかな
そもそも変数にアルファベットぶち込めなかった気がする・・・・

310:名無しさん@お腹いっぱい。
15/12/27 17:07:08.01 fibytPLm0.net
ここはお前の日記帳じゃない

311:名無しさん@お腹いっぱい。
15/12/27 17:58:35.45 uFtbG2Uf0.net
IEの�


312:rジー待ちについて質問です。 最初と最後の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



313:名無しさん@お腹いっぱい。
15/12/28 00:00:20.30 qZu6Od9X0.net
>>289
1つカードの画像を判断するだけで1000の命令が必要でも
やるのはPCだからな
1回作ってしまえば勝手に動くんだから、初回の手間を惜しむな
>>291
作った奴に聞け
なんとなく動作が不安定な時に、適当にスリープ入れたらスムーズに動くことがあるから
その名残だろうとは思うが

314:名無しさん@お腹いっぱい。
15/12/28 02:25:18.81 iq4jhptY0.net
画像認証の質問です
Ifb CHKIMG("w.bmp") = TRUE
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
MSGBOX("見つかりました")
ELSE
MSGBOX("見つかりません")
Endif
以上の関数で適当な画像wをコピーしてデスクトップに表示したら認識しませんでした
フォトビューワで開いたら認識しました
実際にはいろんな画像が混ざってるところで使いたいので今のままだと役に立ちません
なにが起きてるんでしょうか

315:名無しさん@お腹いっぱい。
15/12/28 02:33:17.82 AG3orU5C0.net
デスクトップでは認識しない、そんだけ

316:名無しさん@お腹いっぱい。
15/12/28 02:34:45.96 qZu6Od9X0.net
>>293
デスクトップに表示する時に伸縮していたら認識しない
また、上にアイコンなどが乗っていて、画像の透過部分以外が隠れたら認識しない
実際の画像の混ざり方を考えて、認識させたい画像のサイズや範囲などを決める必要がある

317:名無しさん@お腹いっぱい。
15/12/28 02:36:04.63 qZu6Od9X0.net
>>294を見てなくて適当に答えた

318:名無しさん@お腹いっぱい。
15/12/28 02:42:37.59 iq4jhptY0.net
お二方ありがとうございます
btn部分をなくして最終目標で確認したら認識できました
やっぱりデスクトップの背景とかで透過しちゃってたみたいです

319:名無しさん@お腹いっぱい。
15/12/28 15:40:18.87 iq4jhptY0.net
画像認識、うまくいかないな
プログラム自体は正常っぽいけど対象の画像がときどきピクセルずれてるんかな
キャプチャしなおすとその時だけうまくいくんだよな
画像たくさん作ってしらみつぶしするしかないか・・・・・・・ハァ

320:名無しさん@お腹いっぱい。
15/12/28 15:54:16.22 2b9Fr6+00.net
>>298
面倒だが、透過色設定したり透過色で画像塗りつぶしたりして必要な要素だけ取り出す方法もある

321:名無しさん@お腹いっぱい。
15/12/28 15:57:45.90 wOaVL79d0.net
ボタン系はボタン以外の画像がよかったりするし
いろいろやりようはあるとおもう

322:名無しさん@お腹いっぱい。
15/12/28 20:45:56.05 ww5rWK300.net
>>298
peekcolorを使ってみるのも一つの手だと思うよ

323:名無しさん@お腹いっぱい。
15/12/28 21:24:10.61 I1QV70970.net
yrd

324:名無しさん@お腹いっぱい。
15/12/31 18:03:20.24 ed8Joufj0.net
>>299
それやりたいんですがwindowsの付属のペイントでできますか?

325:名無しさん@お腹いっぱい。
15/12/31 20:25:19.28 kkB7l74A0.net
できますよ

326:名無しさん@お腹いっぱい。
15/12/31 21:30:25.00 actWcm4n0.net
UWSCの透明指定は四隅の内、何処の色を透明扱いするかだから
αチャンネル使えるソフトを使用しなくても良い

327:295 【大凶】
16/01/01 07:10:48.26 DZ0F9EIl0.net
>>304-305
ありがとう
あけおめ

328:名無しさん@お腹いっぱい。
16/01/01 07:11:50.40 DZ0F9EIl0.net
↑間違えましたた私は299です

329:名無しさん@お腹いっぱい。
16/01/01 19:48:02.85 dAo8yM1a0.net
>>298
ゲイブの嫌がらせ

330:名無しさん@お腹いっぱい。
16/01/02 21:54:24.77 OOAR2+6Q0.net
>>303
ペイントでもできるけどgimp使え
マジックマジ便利
あけおめ

331:名無しさん@お腹いっぱい。
16/01/05 18:09:09.81 7af5YO540.net
5.2.0からなんか重くなってね?
同じスクリプトなのに起動してから動き始めるまで異常に時間かかるようになった
CLKITEMが怪しいかなと思ってる

332:名無しさん@お腹いっぱい。
16/01/05 18:44:16.27 7af5YO540.net
やっぱりCLKITEMだったわ
いままで快適に動いてたのにショック

333:名無しさん@お腹いっぱい。
16/01/06 17:09:53.73 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 が出ます
解決策を教えてください。

334:名無しさん@お腹いっぱい。
16/01/08 12:43:18.74 jLBAQqUa0.net
>>312
やってないからわからんけどその構文だとpptはアプリケーションオブジェクトであってファイル個別のオブジェクトじゃないよね
<ファイル名>!Module1.testみたいに対象ファイルからプロシージャをはっきし明示しないとどのモジュール参照していいかわかんないんじゃね
あとプロシーシャのスコープpublicにしてるかどうか?

335:名無しさん@お腹いっぱい。
16/01/09 23:29:05.79 OPYCmqUk0.net
>>313
ありがとうございます!!出来ました!!!

336:名無しさん@お腹いっぱい。
16/01/10 14:48:48.28 +h7zfP7X0.net
windows10に仮想デスクトップっていうのがあるんってきいたんですけど
uwscをこれで裏で使用できるんですか?

337:名無しさん@お腹いっぱい。
16/01/11 01:03:13.57 2riljtmT0.net
>>315
実際にやってみればいいんじゃない?

338:名無しさん@お腹いっぱい。
16/01/11 08:24:19.75 yYs4qC8O0.net
仮想デスクトップ≠仮想環境

339:名無しさん@お腹いっぱい。
16/01/11 12:51:41.92 FFuDFDqi0.net
仮想デスクトップ上の座標がどうなっているのか興味があるところだが
Win10環境が無い

340:名無しさん@お腹いっぱい。
16/01/11 12:55:49.55 /FI12Aqd0.net
何時だか8.1使っていたらポップアップで今なら無料とwin10を
ゴリ押してきたので入れてしまった

341:名無しさん@お腹いっぱい。
16/01/11 15:34:36.34 js3KT4j30.net
10の仮想デスクトップで既存のコード動かしてみたけどchkimgは動いてるっぽい
ただBTNでマウス操作しようとすると今の画面内をちょろちょろしだすから座標的には共通っぽい
DIRECT指定使うかKBD,CLKITEMみたいに座標関係ないなら行けそう

342:名無しさん@お腹いっぱい。
16/01/12 12:43:01.14 e9ToDDNW0.net
割と初心者なんでむちゃくちゃな事を言ってるかもしれないけど
IE上で動いてるjavascriptの変数をUWSCから参照して取得するなんてこと出来ないですかね?

343:名無しさん@お腹いっぱい。
16/01/12 14:40:39.17 8tuq2Tc50.net
>>320
3次元管理されてるんじゃないかな
今表示されているのは2Fの面、とか
そうなるとマウスクリック座標にZ軸概念が必要になってきそうね

344:311
16/01/13 21:56:06.43 txKMe/w00.net
大変そうなんでwindows10入れるのやめときます
ありがとうございました

345:名無しさん@お腹いっぱい。
16/01/14 18:52:02.87 Gt/fS78R0.net
peekcolor高速でワロタ

346:名無しさん@お腹いっぱい。
16/01/14 20:46:03.91 Udnjh/YY0.net
>>323
Dual Bootで既存システムと共存させると良いよ

347:名無しさん@お腹いっぱい。
16/01/19 00:33:32.52 NZpgzfiCJ
>>3のchkimgxが404なんですが他に入手できる場所は無いでしょうか?

348:名無しさん@お腹いっぱい。
16/01/20 04:10:25.20 K+q1DhPU0.net
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。



349: MOUSEORG(GETID(



350:名無しさん@お腹いっぱい。
16/01/20 04:13:03.26 K+q1DhPU0.net
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
ID = GETID(

351:名無しさん@お腹いっぱい。
16/01/20 04:14:08.41 K+q1DhPU0.net
あれ…なんで途中で切れてしまうんでしょうこれ
何度もすみません><
IEをバックグラウンドで操作したいのですが、
画面内をクリックできません。
ステータスバーの戻るボタンなどはクリックできるのですが。
Windows7 64bitです。
ID = GETID("XXX - Internet Explorer","IEFrame")
MOUSEORG(ID,2,MORG_BACK)
BTN(LEFT,0,100,100,1000)
これだけではだめなのでしょうか?
ブラウザの操作はできないなどありますか?

352:名無しさん@お腹いっぱい。
16/01/20 04:58:52.14 a57AnsIh0.net
IEは
id = hndtoid(getctlhnd(getid("", "IEFrame"), "Internet Explorer_Server"))
こうじゃね?

353:名無しさん@お腹いっぱい。
16/01/21 21:54:43.32 nGOnC4p/0.net
ACWが効かない事ってあります?
あるアプリを画面左上に表示させたいので以下のように記述したのですが、
xxID = getid("アプリ名")
 ifb xxID = -1
  msgbox("アプリ名を開いてから実行してください。")
  exitexit
 endif
msgbox("アプリ名発見<#CR>"+"ウィンドウID:"+xxID) //画像認識成功
acw(xxID,0,0)
これ実行すると「アプリ名発見 ウィンドウID:1」と表示されるのですが
ウィンドウが左上隅に行ってくれません。

354:326
16/01/22 06:34:37.09 T4LReso30.net
やっぱり駄目みたいですね。
ってかこのアプリ上ではUWSCで動作の記録すらされません。
マウスもキーボードも駄目。
素直に諦めます。お騒がせしました。

355:名無しさん@お腹いっぱい。
16/01/22 08:27:38.96 7wFnMY690.net
>>332
もしかしてwin10?

356:名無しさん@お腹いっぱい。
16/01/22 10:15:56.37 cq8WTI4X0.net
まあゲームによっちゃマクロ対策してるものも多いわな

357:名無しさん@お腹いっぱい。
16/01/22 12:27:49.02 zldJ+8I00.net
どんな事をしても画像認識が出来ないです。
ペイント四角い図形を作りそれをコピー
もうひとつペイントを出してそこにペースト
それを24bitBMPで保存
最初のペイントはそのまま残して、それを認識させる
sleep(1)
if chkimg("000.bmp",0)
fukidasi("ありましたよ", 300, 400)
else
fukidasi("見当たりません", 300, 400)
endif
sleep(3)
上記ので試していますが全く認識しません。
範囲指定、透過色/色無視、等色々試しました。
PCも3台で試しましたがダメでした。
何が問題なんでしょうか?
心当たりのある方いたらご指導下さい。
宜しくお願いします。

358:名無しさん@お腹いっぱい。
16/01/22 12:53:25.40 Hapn1qGL0.net
>>335
mouseorgでウィンドウ指定してたりするんじゃねーの?
その場合はペイントのウィンドウIDじゃなくてペイントの描画部分のIDを指定しなきゃダメだぞ

359:名無しさん@お腹いっぱい。
16/01/22 15:51:48.06 bHu1IupN0.net
>>329
flashオブジェクトのクリックじゃないなら、htmlの解析でクリックしたほうが確実じゃね?

360:名無しさん@お腹いっぱい。
16/01/22 16:58:32.45 CXhcEU1b0.net
>>335
ペイントがダメなんじゃね
ほかの画像表示ソフトとかで試してみたら?

361:名無しさん@お腹いっぱい。
16/01/22 20:36:05.26 h8x4HVfG0.net
>>335
ペイント一つだけなら認識するか?

362:330
16/01/23 13:39:23.25 bDtzBo3X0.net
助言有難うございます。
上記の事、色々試してみましたが認識は出来ませんでした。
諦めて他の方法を考えてみようと思います。
有難うございました。

363:名無しさん@お腹いっぱい。
16/01/23 15:02:24.98 JtiZQzOi0.net
>>340
ペーストするペイントのキャンバスが大きいままやってて
不必要な背景が付いてしまってるってことはないよね?

364:330
16/01/23 16:10:06.75 bDtzBo3X0.net
>>341
ペーストする際にキャンパスはペースト画像以下にして貼り付けてます。
有難うございます。

365:名無しさん@お腹いっぱい。
16/01/23 18:43:39.11 dZYon1Wc0.net
ペイント一つで認識しないなら2つで認識するわけないだろ。
まず最小構成で問題の原因を切り分けろよ。そんなんじゃやり方変えても別の問題で詰まって諦めるだけだ

366:名無しさん@お腹いっぱい。
16/01/23 18:49


367::31.20 ID:+CnaRQ1h0.net



368:名無しさん@お腹いっぱい。
16/01/23 21:10:32.92 zIf41qbQ0.net
>>344
>>342の言っていることもやっていることも合ってる
ペイントにおいては貼り付け先のキャンパスが貼り付けする画像よりも小さい場合、強制的にキャンパスサイズが貼り付けする画像と同じ大きさに変更される
そのため意図しない余分な余白を排除することができ、chkimgで完全に一致させることができる

369:名無しさん@お腹いっぱい。
16/01/23 21:11:16.50 zIf41qbQ0.net
補足で>>344の内容に関してのみは合ってるってことね
他はしらん

370:名無しさん@お腹いっぱい。
16/01/23 21:11:44.50 zIf41qbQ0.net
>>342の間違いだわ失礼

371:名無しさん@お腹いっぱい。
16/01/23 22:11:15.75 CuLS3gLO0.net
絶対ソースが他にもあってその部分が原因で認識してない
>>335に書いてあるのが全てなら前後にスリープ入れる意味がないからな


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch