[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/19 04:01 / Filesize : 303 KB / Number-of Response : 1078
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

自動化ツールUWSC使いよ集まれ16



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/

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

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

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

34 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 10:59:52.55 ID:PfOb/o3h0.net]
そういうのは大体お前の記述ミスだ

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

36 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 13:03:47.71 ID:9wBwsNfQ0.net]
構文エラーが出るソース

37 名前:コードを提示できないってことは
そもそも過去に動いてたってのが勘違い、あるいは妄想だろう

どうせコードを全行コピーしてなかったとかいうオチだろ
[]
[ここ壊れてます]

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

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



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

41 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 16:56:44.98 ID:RCUdLg7b0.net]
5000行とか。どんだけ低レベルなコーディングしてんだよ

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

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

44 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 18:38:55.24 ID:GE7AjOYz0.net]
やたら大きくなってしまって収拾がつかないけど、プログラミング全般において素人で
遊びでやってるもんなので所謂デバッグとかやり方知らない。

触らぬ神にたたりなしって感じでバージョンアップできずにいる

45 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/14(土) 22:00:21.04 ID:oICue9LH0.net]
いつやるの?今でしょ!

書き溜めた無駄に長いコードの整理は考えてる以上に身になる
これとないチャンスやで

46 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 01:28:43.76 ID:l+eb1X660.net]
おれが300行にまとめてやんよ

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

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


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

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



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

51 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 12:23:24.06 ID:De6xOu7/0.net]
それ。

ただ、4.9cではfor-in構文が使えない。使いたいなとは思ってるんだけど。

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

53 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 13:51:26.50 ID:3LQPqe8Y0.net]
for inてfor eachと同じ内容?

54 名前:名無しさん@お腹いっぱい。 [2015/11/15(日) 14:11:04.40 ID:yRPypCxb0.net]
Dim array[2];
print VARTYPE(array);

上記を実行すると、以下のエラーがでます。
なぜなのでしょうか。(uwscのverは5.2.0)

変数:ARRAY 次元

55 名前:数が合いません
2行目:PRINT VARTYPE(ARRAY);
[]
[ここ壊れてます]

56 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 14:44:31.81 ID:3LQPqe8Y0.net]
>>51
引数の配列に添字追加

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

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

59 名前:50 mailto:sage1 [2015/11/15(日) 18:37:18.45 ID:yRPypCxb0.net]
>>53さんが書いてくれている通りの疑問です。



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

61 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 23:16:55.13 ID:UTZQ0cqw0.net]
Dimで0〜9を定義した配列から最後の数字(9)を取り除くにはどうしたらいいでょうか。
再定義するとエラーになり、SETCLEAR、RESIZEはうまく扱うことができませんでした・・・。

現在定義した数をシャッフルしていて、その結果から9を省きたいのです。
単純に任意の配列を削除、或いは再定義できればいいのですが・・・。
初心者のため発想が貧弱でして手詰まりです・・・アドバイスお願いします!

シャッフルはこんな感じのをCallで呼び出してます。
Procedure shuffle(var CarSel[])

Dim n = length(CarSel)
Dim i, r, tmp
for i = 0 to n -1

r = random(n)

tmp = CarSel[r]
CarSel[r] = CarSel[i]
CarSel[i] = tmp
next

Fend

62 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 23:44:35.20 ID:De6xOu7/0.net]
普通にRESIZEすればいいだけの話では?

RESIZE(CarSel, 8)

63 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/15(日) 23:45:03.04 ID:YS+SiHiA0.net]
>>57
本当に配列のサイズを変更して最後を取り除くことができないなら、
扱う配列の長さをlengthで取るのではなく、
別の変数や配列の頭に入れるなりして管理すればいいのでは?

ちなみに
DIM CarSel[]=1,2,3,4,5,6,7,8,9
print length(CarSel) + ":" + JOIN(CarSel,",")
RESIZE( CarSel, length(CarSel)-2 )
print length(CarSel) + ":" + JOIN(CarSel,",")
を実行したら
9:1,2,3,4,5,6,7,8,9
8:1,2,3,4,5,6,7,8
となる

64 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 11:34:56.95 ID:kzKcDPQp0.net]
シャッフルで混ぜてるせいかうまくいかないですね・・・
ttp://i.imgur.com/4XcV618.png

Dim n = length(CarSel) を毎回変化させられればResizeと合わせて実現できるっぽいんですが、
引数で変化させようとCALL ShuffleNumbers.uws(10)
として Dim n = PARAM_STR[0]にするとエラー、
Resizeのあとに手動で Dim n = 9 と
記述しても再定義でエラーになってしまいます。

多分Procedureで10桁用、9桁用みたいにそれぞれ作ればいいんでしょうが
できればシンプルなコードで柔軟に使っていけたらいいなと思っております・・・

65 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 12:07:44.32 ID:Xu2hTlmU0.net]
>>60
shuffle関数に要素数の引数追加してみたら?

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

67 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 14:40:41.84 ID:W0rLrKGS0.net]
>>60
期待値が良くわからないけど、こういうこと?

Dim Original[] =0,1,2,3,4,5,6,7,8,9
Dim CarSel[0]

copyArray(Original, CarSel)
shuffle(CarSel)
print Length(CarSel) +":"+Join(CarSel,",")

copyArray(Original, CarSel)
Resize(CarSel,8)
shuffle(CarSel)
print Length(CarSel) +":"+Join(CarSel,",")

Function copyArray(var src[], var dst[])
  for i=0 to Length(src)-1
    Resize(dst, i)
    dst[i] =src[i]
  next
  Result =i
Fend

68 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 15:44:23.25 ID:9tIhQjLx0.net]
再定義でエラーになってるってことはその言葉通り定義が再び行われてるからエラーになってるんであって…
定義している部分を見れば一目瞭然なんでは?

既に定義された変数に値を代入するなら定義をする必要ないんだから
その部分のDIM外せばいいだけなんじゃ…

69 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 15:55:39.20 ID:9tIhQjLx0.net]
今まで何を問題としてるかわからなかったけど、もしかして問題となってるのはここ?

> //結果(9通り最大8)
> 9: 9,1,4,6,8,5,7,3

2回目のシャッフル結果に9が入ってて最大が8ではないのは
1回目にシャッフルされた配列を入力してるから当然の話だよ。
resizeでは配列の最後を切り飛ばすだけで、内容の最大値を定義するなんて機能は無いから
1回目の結果の最後が9で無ければ2回目の結果に9が入る。



70 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 16:32:44.46 ID:NGCV+QQo0.net]
「0-9の数字をランダムに使用するが、ある条件下で0-8、0-7のように振れ幅が変わる」
というような挙動をするものが必要だったのですが、>>63さんのコードで実現できました。

エラーになってる原因はわかるが、それに対する解決法がわからないため質問してました。
引数で渡すのはA = PARAM_STR[0]として、Aを関数に代入しても「Aが定義されてない」といわれよく分からず…

とりあえず自分が配列や要素について基本的な理解が足りていないことがよくわかりました。
引数の扱いやFunctionとProcedureの使い分けなど、皆さんのアドバイスを基に研究したいと思います。
ありがとうございました・・・

71 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 17:41:55.59 ID:U7RMM+Pu0.net]
少し前に重複しない乱数を希望した数だけ予め用意したいって質問していた人かな?
その実装方法だと関数を呼ぶ側と呼ばれる側の連携密度が高すぎると思うよ
こんな感じで乱数配列が欲しい時に一度作成したらそれは捨てる位の方が疎結合になって保守性が上がると思う

For item In GetRandomArray(10)
 print item
Next

Function GetRandomArray(value)
 result = SAFEARRAY(0, value - 1)

 For i = 0 To value - 1
  result[i] = i
 Next

 For i = 0 To value - 1
  r = Random(value - 1)
  swapValue = result[i]
  result[r] = result[i]
  result[i] = swapValue
 Next
Fend

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

73 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/16(月) 17:50:15.00 ID:U7RMM+Pu0.net]
入替え部分の添字だけ差し替え

  r = Random(value - 1)
  swapValue = result[i]
  result[i] = result[r]
  result[r] = swapValue

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

75 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 00:19:41.16 ID:r3ygr5190.net]
IE = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE.document.querySelector("#hogehoge").click()

このようなスクリプトで、querySelectorで実際には無いセレクタを指定した時
COMエラーで落ちるのですが、存在しない場合にエラー無しでスルーするような方法は
try-exceptを使ったり、あらかじめ存在確認してからクリック

if IE.document.querySelector("#hogehoge")&l

76 名前:t;>NULL then IE.document.querySelector("#hogehoge").click()

というような方法しかないのでしょうか?
スクリプト実行中にページの内容が書き換わって目標とするセレクタが消えて
COMエラーで落ちるというパターンが時々あって困っています。
[]
[ここ壊れてます]

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

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

79 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 08:30:36.92 ID:r3ygr5190.net]
>>72
こんな機能あったんですね。ありがとうございます。



80 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 15:14:10.19 ID:r3ygr5190.net]
> CALL UWSファイル名.uws(xxx, xxx, ...)  // 引数を付けた場合に値は PARAM_STR[] 変数に入る

CALLでスクリプトを呼んだ時のように、不定個の引数を受け取って
内部で配列として扱う関数を作りたいのですが、どうしたら出来るでしょうか?

81 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 16:20:50.27 ID:t2yi2j7b0.net]
SafeArry使いなよ

82 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 16:58:26.39 ID:r3ygr5190.net]
SafeArrayを使うとは具体的には?

引数が不定数だと、実行時に引数の数が違うと怒られてしまうんですが。
配列を作る関数が欲しいのですが、順序が逆の
先に配列を作ってから関数に入れる事しか思いつかないです。

83 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 19:35:50.10 ID:kvx4k+FL0.net]
pram[] が使える言語も受け側は配列として処理するだけの糖衣構文
あると便利な機能だけど無いとコレが出来ないって事はない
結果に加工した配列が欲しい場合はSafeArray使えって話でしょ

UWSCはpram[] は使えないので配列長なしの配列を引数に使うしか無いので
こんな感じで引数用の配列を用意する必要があるのは仕方ない

Dim a[] = 1,2,3
Dim b[] = 5,10
Print JOIN(test(a), ",")
Print JOIN(test(b), ",")

Function Test(value[])
 Dim iMax = Length(value) - 1
 result = SAFEARRAY(0, iMax)
 For i = 0 To iMax
  result[i] = value[i] * 2 //2倍に加工
 Next
Fend

//実行結果
//2,4,6
//10,20

84 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/17(火) 23:27:48.86 ID:3Sfs5iCK0.net]
引数を多目に書いておいて関数内で処理するんはダメなのか?

85 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 00:57:58.26 ID:DCQo+QOr0.net]
要するに不特定の因数を受け取って配列を吐き出したいんだろ?

関数内で配列を作るか関数外で用意しておいたところに入れるかの差はあるが
関数内で配列を作って外に放り出すにはSafeArrayしかないし
関数外であらかじめ用意しておくなら配列数でリサイズすればいいだけじゃないっていう話

関数に不特定の因数を渡す際には
セパレータ記号を付けて一つの因数にしておいて、関数内で分解すればよろし

dim array = test(a+"#"+b+"#"+c+"#"+d+"#"+e)

function test(param)
testarray = safearray(0, 0); testarray[0] = token("#", param)
while pos("#", param); testarray[resize(testarray, resize(testarray)+1)] = token("#", param); wend
result = testarray; fend

86 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 10:58:24.63 ID:R9oruk2c0.net]
UWSC初心者です。つまづいてしまったのでどなたかお教えください。
Bluestacks上でアプリを起動してマウス操作などの自動化を行いたいのですが記録されても再生するとマウスがBluestacks上動いたりクリックしたりしません。PCゲーでは今まで動いていたのですが‥
なぜでしょう?どなたかお

87 名前:願いします。 []
[ここ壊れてます]

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

ありがとうございました。

89 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 11:24:54.22 ID:zICgyZ9/0.net]
>>82
単純に受け側でsplitで良いような…



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

91 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 14:17:53.45 ID:95T98vMj0.net]
特定の画像が出た時に直前の作業をもう一度起こす事で安定性を上げたいです
a→b→cと処理勧めてきて
while
if checking
処理dに進む
break

elseif checkingエラー画面
call b→c処理を書いた別ファイル
endif
wend
みたいな形でなんとか動かせてはいるんですけど修正の作業とかが面倒なので別のアイデア無いでしょうか

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


a→
call b→c処理を書いた別ファイル
while
if checking
処理dに進む
break

elseif checkingエラー画面
call b→c処理を書いた別ファイル
endif
wend

93 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 15:07:24.77 ID:WUTAg8ze0.net]
安定性を上げる手段としては、状態判定と処理をループにしておくという手も。

while true
状態判定 a →処理 a
状態判定 b →処理 b
状態判定 c →処理 c
状態判定 d →ループ抜ける
wend

処理 d

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

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

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

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

98 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/11/18(水) 17:20:08.96 ID:bJyAh8OV0.net]
そして私はスタックオーバーフローしないようにCALLは出来るだけ最初に1回
CALL先のスクリプトは関数化して本処理ではその関数を呼ぶと安定するよとFAQなアドバイスしておくのだった

CALLをループ内に仕込むのは展開された動作を把握しきっていないと
資源の衝突や初期化周りで予期しない動作が発生するトラブルの原因のトップランカーさんです

99 名前:名無しさん@お腹いっぱい。 [2015/11/18(水) 20:34:52.95 ID:ya19mM+o0.net]
下記のように画像判定を使ってループを処理した際に

repeat
状態判定a →処理a
状態判定b →処理b
until chkimg(処理abが実行された後の画像)

ループ中にエラー(Flashがクラッシュするなど)が発生した際にどのように対処すればいいでしょうか。
現在苦肉の策としてFlashがクラッシュした際に出る画像を判定するプロシージャをThreadで走らせておいて
エラー画像を検出したらエラーフラグ(Publicなエラーフラグ変数)をTrueにして各repeat内でフラグが立っていたら
breakするように記述しているのですが、repeatすべてにこの処理を導入しているため大変見苦しいコードとなって
しまっているので何かいい方法はないかと・・・



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

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は。

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

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

183 名前:名無しさん@お腹いっぱい。 mailto:sage [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でページの読み込みが終わっているように見えるのに処理が止まってしまうことがたまにあります。
手動で再読み込みすると動き出します。対処法を教えてください。フリー版です。

184 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/02(水) 11:52:47.22 ID:RVv1vxR+0.net]
x秒でタイムアウト、みたいな処理足したら

185 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/02(水) 12:03:24.62 ID:ZQB1PLza0.net]
相手の鯖が遅延ロードしていたり自分のPCのキャッシュにヒットした時とか
ie.busy と ie.readystate はあんまりアテにならない

タイムアウトや移動先のページで必要なエレメントが存在するか確認してループを抜けるのも有りかもね

186 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/02(水) 13:19:20.31 ID:gtGvaZd80.net]
IEはDOM操作するのが確実

187 名前:名無しさん@お腹いっぱい。 [2015/12/02(水) 16:15:25.22 ID:p1ZciKF40.net]
配列がややこしいな
dim hairetu[2]
↑これは配列の容量、個数の宣言で

hairetu[0] = 10
hairetu[1] = 20
↑これが番号の場所に格納するということなんだろ?

[]の中に数字いれるという書き方が同じだから、
ここでずっと訳わからなくなってた
それで[][]とかいう書き方もあるとか

あと、ここに書いてある
canal22.org/kansu/procedure/

DIM PSARRAY[2]

PSARRAY[0] = "This is a cat."
PSARRAY[1] = "That was a desk."

DIMって値の宣言だろ
""でくくれば文字列でもいいのかよ

ややこし

188 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/02(水) 16:32:53.86 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/02(水) 16:58:13.30 ID:b4w8PdZC0.net]
数値変数でも文字列入れれば文字列変数に自動で切り替わるってだけだよね

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

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

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

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

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

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

197 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/03(木) 14:34:08.18 ID:KqIB++7Q0.net]
>>182
> GETCTLHNDで取得できるのはHandleなのでそのままではMOUSEORGのIDに使用することはできない

同じようなレスをしようと思ったがヘルプ読み返して止めたのに…

>> MORG_DIRECT (2): 指定ウィンドウ(オブジェクト)へマウス、キー情報を直接送る(第1引数はウィンドウIDでもハンドル値でも可)

198 名前:名無しさん@お腹いっぱい。 [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)にしたらバックグラウンドでも動作しました

やっぱ面倒でもヘルプ熟読するのと用意された定数はちゃんと使わないとだめね

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



200 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/03(木) 17:17:45.94 ID:0WPfFphN0.net]
>>186 のやつフリーで使ってみたけど
真っ黒でバックグラウンドの認識が不可っぽいんだけど
フリーとプロじゃその辺やっぱ違うのかな?

元々の質問者とは別人です

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

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

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

204 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/03(木) 21:59:07.61 ID:KqIB++7Q0.net]
適当にやってたら押せたので質問は無しで

205 名前:名無しさん@お腹いっぱい。 mailto:sage [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)
で試しに画像をとってみましたが、両方ともきちんと写っていました。

206 名前:名無しさん@お腹いっぱい。 mailto:sage [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入力する時にとても重くなります…

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

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

209 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/04(金) 11:31:23.07 ID:/T7tx51V0.net]
Bluestacksでゲームアプリのガチャ自動化マクロを作っています
ガチャを回すボタンを24bitBMPで保存して、動作テストをすると成功しました(ファイルA)
そのファイルAにループ関数を付け加えてファイルA’を作成し動作させると、画像認識ができなくなったので
再度ファイルAの動作テストを行いましたが完全にその画像では認識ができなくなりました

さっきから3回ぐらい画像を撮り直しては動作テストを行っているのですが、成功してもUWSを弄ると画像認識ができなくなってしまいます
成功したりしなかったり、というのはよく起こることなのでしょうか?



210 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/04(金) 14:34:44.57 ID:n18V7ZGY0.net]
あるかないかと聞かれるとある

211 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/04(金) 14:59:07.40 ID:sFDKmSRE0.net]
いじるとできなくなるっていうんだから原因ははっきりしてるよね。

212 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/04(金) 16:52:58.00 ID:ybxgbSDU0.net]
画像が変わってるんだろ

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

214 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/04(金) 19:27:22.45 ID:2HUK37Ko0.net]
レイヤーかぶせてあったりパーティクル飛んでたりね。

215 名前:名無しさん@お腹いっぱい。 mailto:sage [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)

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

217 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/06(日) 15:25:32.94 ID:lI ]
[ここ壊れてます]

218 名前:ZtAvI+0.net mailto: >>201ですが自己解決しました []
[ここ壊れてます]

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



220 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/06(日) 16:26:04.76 ID:7fPRX80/0.net]
SELECTBOXの文字の大きさって変えられないですか?

221 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/06(日) 16:30:47.46 ID:7fPRX80/0.net]
test

222 名前:名無しさん@お腹いっぱい。 [2015/12/07(月) 20:37:41.32 ID:lkFOyJ4n0.net]
>>205
OPTION DEFAULTFONTで変えられる
すべて一括で変わってしまうけど

Pro使いならCREATEFORMで全部自分で自由に指定できるけど

223 名前:名無しさん@お腹いっぱい。 [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がカーソル位置として扱われてしまう

224 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/07(月) 23:03:29.60 ID:EYXsjzmpf]
BTN(LEFT,CLICK,G_MOUSE_X,G_MOUSE_Y,500)

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

226 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/07(月) 23:13:17.78 ID:cMraAyPW0.net]
G_MOUSE_X使うとか

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

228 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/08(火) 00:58:50.00 ID:t70A2e+R0.net]
>>212
フォルダにパスワードかけとけ

229 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/08(火) 01:27:05.64 ID:w99sCTo10.net]
>>212
USBメモリ買うなり、別PCを買うなり、物理的に別個にしなきゃ不安だわ。

VeraCryptとか使えばどう?



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

それは無理だ

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

232 名前:210 mailto:sage [2015/12/08(火) 14:02:44.60 ID:Bp2FB+GN0.net]
レスくれた方、ありがとうございました。

その後調べたところ、電源オプションはpowercfgコマンドでコマンドラインで変更できることを知りました。
そこで、下記を目論んだのですが上手くいきませんでした。

・スクリプト(1)
doscmd("powercfg …")で、ロック解除時のパスワードを不要にした後、スリープする

・スクリプト(2)
本来実行したいスクリプトで、最後にロック解除時のパスワードを必要に変更する

スクリプト(1) -> (2)の順にスケジュール設定して実行する。

試したところ、、スクリプト(1)で電源オプション設定を変更しても、スクリプト(2)の実行時、やはりパスワード入力画面が出てきてしまいます。
※ここでパスワードを入力した後、手動でスリープ->スリープ解除の操作をすると、スクリプト(1)が設定を変更しているので、パスワード入力画面は出てきません。

スクリプト(1)の最後にリブートすれば対処はできそうですが、フォルダーにパスワードを掛ける方向で検討します。
ありがとうございま

233 名前:オた。 []
[ここ壊れてます]

234 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/08(火) 14:33:43.03 ID:nFTuQmFE0.net]
そこまでして自動化操作したいことって何?
まずはそこからだよね

VMWareで起動させておいてスタンバイ→本体スリープ復帰→VM復帰起動→VM内でスクリプト流す(本体はロックのまま)
これ以上にすっきり安全にやる方法ないと思うよ

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

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

237 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/08(火) 15:07:57.58 ID:HUcsHTi50.net]
当人が納得しているならそれで良いじゃない

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

239 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/09(水) 13:54:39.11 ID:KgeowQok0.net]
>>210-211
ありがとうございます。
sleepにしました。

座標を指定しないと待ち時間も指定できないというのも
いまいち納得出来ない仕様ですが・・・



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

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

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

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

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

245 名前:名無しさん@お腹いっぱい。 [2015/12/11(金) 11:18:54.45 ID:7dd/e87e0.net]
×ret = BETWEENSTR("ddddd",,,,FALSE)
○ret = BETWEENSTR("ddddd",,,-1,FALSE)

何個か調査してみた結果同じ関数内の省略可能引数でも途中空値を設定できる引数とできない引数があるっぽいね
なぜかは判らないけど

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

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

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

249 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/12(土) 12:31:57.21 ID:WJj0stN+0.net]
>>232
以下の関数を、予期しない動作が発生した時に走る関数中に実行すると実現できそうです。

Procedure hogehoge
gettime



250 名前:()
Ifb G_TIME_NN > 50
exitexit
Endif
Fend

難しく考えすぎていたようです。ありがとうございました。
[]
[ここ壊れてます]

251 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/12(土) 18:14:26.36 ID:ACvSeZV80.net]
似たような事かもしれないけど、予期しない動作が発生した時に自分自身を
再起動させたいのだけど。

EXEC等使って別プロセスで予期しない動作判定+再起動専用のスクリプト走らせるしかないかな?
UIの無いスクリプトは暴走が怖い…

252 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/12(土) 18:30:53.62 ID:RKFSqFC20.net]
>>234
本体のスクリプトはどんな処理してるの?

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

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

255 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/14(月) 00:37:35.63 ID:OWYR4MFV0.net]
操作対象アプリが応答なしではないけど応答無くなる時があって、これが予期しない動作。

画面の推移を監視して、長時間動かなくなったらスクリプト毎再起動させようと。

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

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

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

一々細々対策しなくても、最初からやり直せば何とかなるのでそれで対処しようかな…と

259 名前:名無しさん@そうだ選挙に行こう mailto:sage [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")

これでログインできません。どこが間違ってますか?



260 名前:名無しさん@そうだ選挙に行こう mailto:sage [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が前面に出てきてしまうのですが、これを防ぐにはどのようにすればいいのでしょうか?
どなたかよろしくお願いします。

261 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 16:27:54.18 ID:qKre7MPE0.net]
タブのIDが必要

でも根本的にChromeは自分が隠れていると意図

262 名前:的に画面更新をサボるから裏動作に向かないと思う
素直にIE使ったほうが楽よ

もしくは仮想PCでChromeを最前面で動作させてるいうFAQ的対応
仮想化対策されているコンテンツなら素直にリアル別端末用意しなはれ
[]
[ここ壊れてます]

263 名前:名無しさん@そうだ選挙に行こう mailto:sage [2015/12/14(月) 16:58:39.67 ID:OWYR4MFV0.net]
その仮想PCでさっきドツボに嵌まった…

件のスクリプトはVMwareのゲストOS上で走らせてるんだけど、テストの為に
ホストで動かしてたらバグを作りこんでてアプリのウィンドウが最少化してしまって
その背面にあったVMwareのウィンドウをクリック!

そこからさあ大変。ホストのスクリプトを停止させようとしてもVMwareがアクティブの内は
キー入力を全部取られてホストに入力が反映しない。
VMwareを非アクティブにしてホストにキー入力しようにも、
操作中にスクリプトが再度VMwareのウィンドウをクリックして最初に戻る…

ヤバいこれPC再起動するしかないんじゃないのかとか焦ってたら
正に予期しない動作時に働くスクリプト()のせいで無事復帰できたw

264 名前:名無しさん@そうだ選挙に行こう [2015/12/14(月) 18:06:40.64 ID:yI4ZqmAH0.net]
>>241
実行中のマクロを深い階層から強制的に終わらせたいならEXITEXIT
今のマクロをあんまり変えずにマクロの終了状態に応じて分岐させたいなら別スレッドから今のマクロ呼び出してEXITEXITで自分で定義した終了コード渡して呼び出し元に判断させるのが良いと思う

簡単なサンプル
www1.axfc.net/u/3582792.zip
EXECのuwsc.exeはパスを通すかフルパスに書き換える
main_hogeを実行 sub_hoge内のproc_Call9()プロシージャ内でコメントアウトされてる行を実行するとsub_hogeの実行結果に応じてメッセージが表示されるはず

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

今のスクリプトは全く変えず、外部からどうにかしたいわけ。

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

267 名前:名無しさん@お腹いっぱい。 [2015/12/14(月) 20:34:09.73 ID:yI4ZqmAH0.net]
>>247
それはもうどうしようもないね〜
BTNやCHKIMGの処理回りをラップしておけばそのFUNCTION内でどうにかできたかもしれないけど
望みは薄いのか

>>248
標準関数だとなかったと思うけどFSO使ってサイズ取得する方法ならここに載ってる
d.hatena.ne.jp/junjun777/20110529/uwsc_bitmap

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

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



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

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

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

273 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/16(水) 13:29:08.00 ID:iS4W1/hI0.net]
>>254


274 名前:EィンドウIDが違うんだろ []
[ここ壊れてます]

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

276 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/16(水) 15:04:31.64 ID:brGLyGvp0.net]
プルダウンから選ぶコードはどうやって書けばいいですか
ソースはこんな感じです。

<td id="note1">
<select name="cv.note[0]">
<option value="3">3</option>

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

278 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/16(水) 15:19:04.76 ID:MSwZZbqh0.net]
ウインドw風w

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



280 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/19(土) 10:13:50.36 ID:1sg6SGUx0.net]
ラッパー関数を用意すればおk

281 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/19(土) 10:15:12.99 ID:F+6XYxyV0.net]
>>260
>ファイルの中心の位置を指定して
例えば、200x200の画像ファイルの中心付近50x50をchkimg()に使いたいってこと?

chkimg()じゃ出来ないけど、ちょっと考えただけでも
・予め必要な画像を抜き出しておく
・指定座標から指定サイズの画像を抜き出すアプリを探すか作ってchkimg()の対象にする
などなどやりかたは色々ある
まずはこういうのじゃダメな理由を書いたほうが良いよ

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

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

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

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

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

287 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 09:39:13.45 ID:CCKQhsqf0.net]
挙動が変わったと思うなら
検証用のコードを書いて公開してみたら良いと思う

皆の結果が同じなら公式のバグでしょ

288 名前:名無しさん@お腹いっぱい。 [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

289 名前:名無しさん@お腹いっぱい。 [2015/12/21(月) 13:13:06.71 ID:k1OansqD0.net]
問題のソースコードを提示できないというのは裏を返せば
問題を切り分けられていない証拠でもあるんだよね

素人ほど最初に自分ではなく他人を疑う



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

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

292 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 15:24:38.26 ID:MrgyCbD ]
[ここ壊れてます]

293 名前:Y0.net mailto: ログファイルの出力先ってスクリプト側から変更できないもんですかね。
OPTION LOGPATH=hogehoge.txt
みたいな感じに指定してあるんですが、二重起動すると2つの
スクリプトから書き込まれたログがグチャグチャになってしまう。

一々ファイルオープンして書き込むほどのログではないんだけど
ちょっとばかり不便な感じ。
[]
[ここ壊れてます]

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

295 名前:名無しさん@お腹いっぱい。 [2015/12/21(月) 20:27:33.49 ID:3hymvKIb0.net]
俺ならロギング処理のラッパーを作って、それぞれの起動ごとに固有文字列割り振れるようにするかな
正規表現使えば置換処理でまとめて直せるし簡単でしょ

それが嫌ならソースコードを改変するソースコードを書いちゃえばいいしね

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

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

298 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/22(火) 00:09:15.99 ID:gv1300fTg]
>>273
ログパス指定にTIME値いれたら?

299 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/22(火) 00:23:23.71 ID:DKkq04ll0.net]
スレちゃん「私……汚されちゃったよぉ」



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

301 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/22(火) 12:57:13.12 ID:RoUnScmr0.net]
スレちゃんは汚れてないよ俺が一生守るから

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

303 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/25(金) 15:21:56.32 ID:4xQkvZLh0.net]
すみません自分で調べてくださいよろしくお願いします

304 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/25(金) 15:36:14.25 ID:lZFGO43t0.net]
2時間経過をチェックする方法
ランダムで10〜20分停止する方法

たった2つググるだけだ頑張れ

305 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 16:12:57.95 ID:AlS/S0az0.net]
某青い空のモバゲーのポーカー関数ちょっと作ってみたいんだけど

配布終わってるし折角だから1から勉強してみようと思う
とりあえず、ウインドウの座標を固定して画像取得する関数って
どういうの組めばいいのかな

少なくとも脳死ポーカーより頭によさそう

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

307 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 16:44:59.25 ID:AlS/S0az0.net]
なんか探したら自動取得ツール自体はあったわ
これで画像取得自体はできるけどそのままだと枚数が1000こえるな

なんかこう1枚ずつ認識して判断できんかな・・・・・

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

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



310 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 17:07:08.01 ID:fibytPLm0.net]
ここはお前の日記帳じゃない

311 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 17:58:35.45 ID: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 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 00:00:20.30 ID:qZu6Od9X0.net]
>>289
1つカードの画像を判断するだけで1000の命令が必要でも
やるのはPCだからな
1回作ってしまえば勝手に動くんだから、初回の手間を惜しむな

>>291
作った奴に聞け

なんとなく動作が不安定な時に、適当にスリープ入れたらスムーズに動くことがあるから
その名残だろうとは思うが

314 名前:名無しさん@お腹いっぱい。 mailto:sage [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をコピーしてデスクトップに表示したら認識しませんでした
フォトビューワで開いたら認識しました
実際にはいろんな画像が混ざってるところで使いたいので今のままだと役に立ちません
なにが起きてるんでしょうか

315 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 02:33:17.82 ID:AG3orU5C0.net]
デスクトップでは認識しない、そんだけ

316 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 02:34:45.96 ID:qZu6Od9X0.net]
>>293
デスクトップに表示する時に伸縮していたら認識しない
また、上にアイコンなどが乗っていて、画像の透過部分以外が隠れたら認識しない

実際の画像の混ざり方を考えて、認識させたい画像のサイズや範囲などを決める必要がある

317 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 02:36:04.63 ID:qZu6Od9X0.net]
>>294を見てなくて適当に答えた

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

319 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 15:40:18.87 ID:iq4jhptY0.net]
画像認識、うまくいかないな
プログラム自体は正常っぽいけど対象の画像がときどきピクセルずれてるんかな
キャプチャしなおすとその時だけうまくいくんだよな

画像たくさん作ってしらみつぶしするしかないか・・・・・・・ハァ



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

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

322 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 20:45:56.05 ID:ww5rWK300.net]
>>298
peekcolorを使ってみるのも一つの手だと思うよ

323 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/28(月) 21:24:10.61 ID:I1QV70970.net]
yrd

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

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/31(木) 20:25:19.28 ID:kkB7l74A0.net]
できますよ

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

327 名前:295 【大凶】 mailto:sage [2016/01/01(金) 07:10:48.26 ID:DZ0F9EIl0.net]
>>304-305
ありがとう
あけおめ

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/01(金) 07:11:50.40 ID:DZ0F9EIl0.net]
↑間違えましたた私は299です

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/01(金) 19:48:02.85 ID:dAo8yM1a0.net]
>>298
ゲイブの嫌がらせ



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

あけおめ

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

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/05(火) 18:44:16.27 ID:7af5YO540.net]
やっぱりCLKITEMだったわ
いままで快適に動いてたのにショック

333 名前:名無しさん@お腹いっぱい。 mailto:sage [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 が出ます

解決策を教えてください。

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

335 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/09(土) 23:29:05.79 ID:OPYCmqUk0.net]
>>313
ありがとうございます!!出来ました!!!

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

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/11(月) 01:03:13.57 ID:2riljtmT0.net]
>>315
実際にやってみればいいんじゃない?

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/11(月) 08:24:19.75 ID:yYs4qC8O0.net]
仮想デスクトップ≠仮想環境

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



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

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

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

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

344 名前:311 [2016/01/13(水) 21:56:06.43 ID:txKMe/w00.net]
大変そうなんでwindows10入れるのやめときます
ありがとうございました

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 18:52:02.87 ID:Gt/fS78R0.net]
peekcolor高速でワロタ

346 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 20:46:03.91 ID:Udnjh/YY0.net]
>>323
Dual Bootで既存システムと共存させると良いよ

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

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



349 名前:
MOUSEORG(GETID(
[]
[ここ壊れてます]



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

ID = GETID(

351 名前:名無しさん@お腹いっぱい。 [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)

これだけではだめなのでしょうか?
ブラウザの操作はできないなどありますか?

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

353 名前:名無しさん@お腹いっぱい。 mailto:sage [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」と表示されるのですが
ウィンドウが左上隅に行ってくれません。

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

355 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/22(金) 08:27:38.96 ID:7wFnMY690.net]
>>332
もしかしてwin10?

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

357 名前:名無しさん@お腹いっぱい。 mailto:sage [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台で試しましたがダメでした。

何が問題なんでしょうか?
心当たりのある方いたらご指導下さい。
宜しくお願いします。

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

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



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

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/22(金) 20:36:05.26 ID:h8x4HVfG0.net]
>>335
ペイント一つだけなら認識するか?

362 名前:330 mailto:sage [2016/01/23(土) 13:39:23.25 ID:bDtzBo3X0.net]
助言有難うございます。
上記の事、色々試してみましたが認識は出来ませんでした。

諦めて他の方法を考えてみようと思います。
有難うございました。

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

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

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

366 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 18:49 ]
[ここ壊れてます]

367 名前::31.20 ID:+CnaRQ1h0.net mailto: 以下ってなんだ?
完全に一致させないといけないんだからその表現自体からして
もう何か勘違いしてるとしか思えないんだが

大きな黒い画像を表示させておいて
黒1ピクセルだけのbmpでchkimgやってみるのをお勧めする
[]
[ここ壊れてます]

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

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 21:11:16.50 ID:zIf41qbQ0.net]
補足で>>344の内容に関してのみは合ってるってことね
他はしらん



370 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 21:11:44.50 ID:zIf41qbQ0.net]
>>342の間違いだわ失礼

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

372 名前:330 mailto:sage [2016/01/23(土) 23:42:32.53 ID:bDtzBo3X0.net]
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の上がいいのかな?


これでダメでした。

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 00:05:02.42 ID:3CV3bKZH0.net]
>>349
SAVEIMGで認識したい画像を作ってもダメなら、
何か運命的な力によってできないようにされているから諦めろ

374 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 00:56:56.54 ID:HahwDAq70.net]
デスクトップが黒でも画像に白地があったらそりゃ透過指定でもしないと無理じゃね?

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 01:28:36.53 ID:kMEV0vdK0.net]
>>349
その000.bmpをうpろだにうpしてここにアドレス貼って

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 01:31:26.12 ID:xy8ZxP2N0.net]
初心者のマヌケな勘違いに付き合ってやるお前らは優しいな

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 01:41:14.00 ID:HahwDAq70.net]
>>349の画像にある000.bmpのサムネイルがもうお察し

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 02:19:52.57 ID:WW6t0Mr80.net]
>>333
Windows7Professional上で
使おうとしたのはAutoCAD2015でした

379 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 02:40:54.86 ID:Igcg1fXC0.net]
透過してもダメならおかしいな
なぜわざわざ白地を付けて透過してるのか分からんが



380 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 07:36:01.33 ID:mAXZzVR/0.net]
白地をつけずに作れ

デスクトップの黒はRGB値が000かどうか確認したか?黒く見えるだけじゃないのか

381 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 07:37:54.90 ID:mAXZzVR/0.net]
画像ファイルの保存場所は正しいか?

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 07:49:46.99 ID:gigVQQsJ0.net]
仮想環境上だよな?

383 名前:330 mailto:sage [2016/01/24(日) 08:10:09.47 ID:O/0pTIZz0.net]
初心者は認めます^^;
皆さん申し訳ないです、有難うございます。
ググって色々試して、1度も成功してないので書き込みさせて頂きました。


000.bmp
l2.upup.be/dYkIFhvJuf


下記の画像の様に、ペントで黒塗りの四角画像でも試しています
画像を見て解ると思いますが、ディスクトップは#000000です
l2.upup.be/hfjE539E2y

画像認識する範囲が0,0からでは上手く出来ないと場合があるとの事から
範囲指定無し、有りでも毎回試しています

>>358
全てのファイルはディスクトップで試しています。
違うとエラーが出ます。

384 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 09:12:55.94 ID:vffMZR4M0.net]
たまにいるけどデスクトップをディスクトップって言う奴なんなの

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 09:21:04.87 ID:gigVQQsJ0.net]
言葉の意味がわかってない奴さ。

意味も分からず文字だけ記憶してるからこういうことになる

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) ]
[ここ壊れてます]

387 名前:10:21:15.66 ID:ZlkU8bwS0.net mailto: >>360
いや、だから1つ1つの問題の切り分けを正確にやれ
別サイズの黒塗り画像でも動かない!って主張しても動かないのは意味のない情報
それよりもっと単純なことが出来ていないんだから

>>349>>360の000.bmpを見ると幅15px、高さ11pxであって白い部分が含まれている
何が原因かを探るためにも幅1px、高さ1px、黒(#000000)の画像を用意して
動作確認が最初に試すべきことだ

それで問題が解決しないなら、その画像とソースコードをまとめてzipでアップロードしろ
更にuwscのバージョン、OSのバージョンなんかも併記したほうがいい
[]
[ここ壊れてます]

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 10:43:00.31 ID:fOnBrER40.net]
2つ以上のゲームをuwscで操作させるときはどうしてますか?

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 11:16:29.03 ID:mAXZzVR/0.net]
if文の「then」が抜け出るからじゃね?
uwscの昔のバージョンは?昔はifbとか必要だったし



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変える

491 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 21:48:42.30 ID:DIbZWkUk0.net]
BTN(LEFT,CLICK,1200,150,150)

BTN(LEFT,CLICK,1000,150,150)
どちらかランダムで一つクリックさせたい場合ってどうやればいいですか?

492 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 21:57:51.63 ID:EqtNr8zt0.net]
ランダムで分岐させたら良い

493 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 22:23:24.65 ID:4BmdWrRw0.net]
>>461
BTN(LEFT,CLICK,1000+RANDOM(2)*200,150,150)

494 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 23:36:39.04 ID:bosOw8Gy0.net]
整数化しないとひどいことになりそう

495 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/04(木) 23:42:01.07 ID:EqtNr8zt0.net]
個人的には速度や短さを競うコードコンテスト以外では
結果的にやりたいことになるコードではなく
やりたいことをそのままコードにした方が良いと考えるかな

メンテで正しく動作しなくなる種になるからね

496 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 00:29:23.88 ID:Gg6PibGB0.net]
>>460
今ってbluestacksをバックグラウンドで動かせるようになったの?

497 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 02:27:59.12 ID:AORidpJX0.net]
>>463
ありがとうございます

498 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 02:37:46.36 ID:/HWKBYw70.net]
プログラミングのプの字も知らないけどUWSCで初挑戦中
画像認識でAの画像が出るまでBの操作を繰り返す
Aが出たらその画像をクリックしてCの操作へ
これはrepeat-untilでいいですか?

499 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 04:19:16.20 ID:i6SfBH8K0.net]
いいよ(´・ω・`)
とにかく自分で書いて試してみるのが上達の近道



500 名前:だよ

あとUWSCの本があるからブックオフで見かけたら買うといいよ
[]
[ここ壊れてます]

501 名前:名無しさん@お腹いっぱい。 mailto:sage [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で挟めば大丈夫でしょうか

502 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 09:15:41.63 ID:YVt32lCs0.net]
ツムツムはMORG_DIRECT使えますか?

503 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 09:18:42.14 ID:AKW1xg3y0.net]
>>460
ありがとうございます。
試してみましたが、バックグラウンドで動くわけではないのですね。
リモートする際はchromeのリモートデスクトップ使用でダイアログに邪魔される事もなくなりましたのでこのまま使用していきます。

504 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 12:28:03.94 ID:/waBKm5O0.net]
>>470
それ一つで動作するが
OPTION SHORTCIRCUITを設定しない標準状態だと
g_img_x,g_img_yの中にchking("c.bmp")の結果しか入らないので
これを設定する

505 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/05(金) 18:09:16.28 ID:YVt32lCs0.net]
使えませんでした

506 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 13:49:52.63 ID:E2a0obR10.net]
>>470
散々既出だけど、画像があればクリックしてTRUEを返すCLKIMG関数を自作する。
while true
  clkimg(

507 名前:名無しさん@お腹いっぱい。 mailto:sage [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
ごく基本的な構造化なのでまだ早いとかやめてね…

508 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 14:00:17.77 ID:E2a0obR10.net]
クリック後に個別の処理が不要なら clickImage("1.bmp"); clickImage("2.bmp"); clickImage("3.bmp") で済んじゃう

509 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 21:35:39.00 ID:4Jvgc2PX0.net]
かなり初歩的な質問なのですが調べてもあまり分からなかったので質問させて頂きます。
UWSCでログファイルが更新され続ける拡張子がtxtなどのファイルを監視し、目的のログが現れた場合
キーを送信 ってできますでしょうか?
やり方を教えて頂きたいです。



510 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 22:15:37.28 ID:k3CjFpd40.net]
・日本語をきちんと使えるようにする
・UWSCを勉強する
たったこれだけで実現できるようになるよ
あとは君の努力次第だから頑張ってね

511 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 22:35:58.37 ID:0QAMOn/70.net]
シェアウェア版って結構高いねそれでも業務に使える?一台に一ライセンス必要みたいだけど

512 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 22:47:44.53 ID:sPS5RQrH0.net]
>>480
何度もバカなの?

513 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/06(土) 22:57:49.59 ID:2YduAXx90.net]
>>478
質問がごちゃごちゃし過ぎで、丸投げしたいようにしか見えない

どのように監視できないのか
どのようにログの検索ができないのか
どのようにキー送信ができないのか

514 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 00:40:38.55 ID:puxzTe8g0.net]
>>456
これに便乗なんだけど
MORG_DIRECTで動作するAndroidのエミュレータってありますか?

515 名前:名無しさん@お腹いっぱい。 mailto:sage [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関数直接書いても出力されるんだな

516 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 06:13:42.80 ID:mZHgAHcI0.net]
関数の引数に関数を入れるのは普通
出来ない言語の方が珍しい

517 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 06:14:43.21 ID:oQyphb55 ]
[ここ壊れてます]

518 名前:0.net mailto: >>481
そう、パかなの。一台に六千円てことは百台で六十万てことでしょ?
exe化したらライセンスフリーってことはexe化したもなのなら配布自由ってことか、配布したPC全部にライセンスいるのかの思ったよ。やっぱり馬鹿だったんだな俺
[]
[ここ壊れてます]

519 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 07:45:41.55 ID:JTReqb1J0.net]
気づけてよかったね



520 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 07:48:35.49 ID:TPGZWfB40.net]
今までで割引キャンペーンとかってやったことある?
やってくれれば買うんだけどな

521 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 12:25:34.39 ID:DbLS0yGv0.net]
関数の引数に関数を入れる、が関数ポインタとかラムダ式、リスナクラスの話に聞こえてちょっとビックリしたw

522 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 12:30:27.93 ID:UmG8NUOx0.net]
あっしには何を言ってるのかさっぱり

523 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 15:28:50.99 ID:cJXx45gX0.net]
>>487
気付かせてくれてありがとう

524 名前:名無しさん@お腹いっぱい。 mailto:sage [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の部分も変えられるように出来ないかね?

525 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 19:28:24.73 ID:mZHgAHcI0.net]
VK_Aとかは定数だから変数に入れたり計算させても大丈夫だよ
例えば VK_A + 1 と VK_B は同じだったりとかね

526 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 19:34:53.46 ID:I92VPPhw0.net]
へー、面白いな
今やってみたら出来たよ
ありがとう

527 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 19:48:58.52 ID:C1KScm550.net]
コードが難読化するからコーディング規約で禁止してるところも多いけどまぁ便利だよね

528 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/07(日) 20:25:57.04 ID:Op3LiiL10.net]
そもそも関数という形はそういう書き方をするためのものだろう。
受け取るだけの変数を毎回経由するなら戻り値なんて機能は不要だし。

529 名前:名無しさん@お腹いっぱい。 mailto:sage [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への引数)と書けば処理ができるように作ってみたんだけど
これ以外に簡便なやり方って無いかな?

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
------------------------------



530 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/08(月) 17:56:33.03 ID:uvOD7Pon0.net]
引数以外の継承したい変数をPUBLICにするとか参照渡しにして
ABC各処理を別関数に
関数A
関数B
関数C
ABC全部処理する関数ABC
BとCだけ呼ぶ関数BC

みたいに呼べばいいんでないの

531 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/08(月) 17:58:10.02 ID:657cwzrg0.net]
・継承という用語はプログラミングにおいて特別な意味を持つので別の表現を使うべし。
・サンプルプログラムの条件分岐に既に無意味な部分がありどうしたいのかが読み取れない。
 今の状態だと

532 名前: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
[]
[ここ壊れてます]

533 名前:名無しさん@お腹いっぱい。 mailto:sage [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
メリットは特に無い。

534 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/08(月) 18:43:19.51 ID:T9ZC/Zyz0.net]
>>498-500
ありがとう
>>500
ごめんなさい、勘違いしてた
関数の中に関数入れて呼び出すとエラーになる気がしてたけど違ったみたい
素直に解1の方法でやります

535 名前:名無しさん@お腹いっぱい。 mailto:sage [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

536 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/08(月) 19:54:28.61 ID:y9zJENvU0.net]
質問です
printCombinationという関数を書いてみたんですが、
もっとスマートな方法ないでしょうか?

やりたいことはコメントに書いてあるとおりです
すべての組み合わせを出力したい(もちろん別の組み合わせでも動くような感じで)

537 名前:名無しさん@お腹いっぱい。 mailto:sage [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使って配列にぶっこめばええんちゃうん

538 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/08(月) 22:06:55.05 ID:7q7uQHpo0.net]
帰宅中に松屋で飯食いながら考えた。

hashtbl lists
lists[

539 名前:名無しさん@お腹いっぱい。 mailto:sage [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[], cu



540 名前:rLv)
  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

っしゃぁ!
[]
[ここ壊れてます]

541 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/08(月) 22:29:31.74 ID:kO8wU/DR0.net]
500 Internal Server Error

542 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 00:41:55.44 ID:l/ELWwG70.net]
複雑すぎワロタ

543 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 10:19:05.55 ID:dxLnf7NN0.net]
松屋で飯食いながら仕事ができるタイプか

544 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 12:33:29.38 ID:qpHYw0y/0.net]
すげえレベル高いな

545 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 12:40:47.60 ID:kzjhglVU0.net]
えっ!?あのお客さん…ウチで飯食いながらコーディングしてる!?

546 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 12:47:42.64 ID:XfpXz+/C0.net]
>>504
それだと関数化するとき困るんじゃね?

ary2までしかないときは動かないし
ary4まであってもちゃんと動かない

547 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 17:31:23.26 ID:FV1/KP6n0.net]
>>506 は入れ子になってるくり返しで使われる再帰処理だね。
再帰を終わらす終了条件が最初あって、次にやりたい事ってふうに見ると分かる。

548 名前:名無しさん@お腹いっぱい。 mailto:sage [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
//関数ここまで

549 名前:名無しさん@お腹いっぱい。 mailto:sage [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("終わり")
//呼び出し部ここまで



550 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 19:17:28.30 ID:GXdSKXvs0.net]
自作関数って引数を設定した場合、引数の数を合わせないと「引数の数が合いません」ってエラー出るけれど
""を使えば引数を省略できるのか
chkimgみたいなデフォルト関数は引数省略できるからどうやるのかなーってずっと悩んでたわ

UWSC: 引数を省略できる関数をつくる
blogs.yahoo.co.jp/nullpage_vwxyz/52255157.html

551 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 19:24:17.43 ID:4bdWm2Pw0.net]
引数の省略はデフォルト値を関数宣言時に代入しているか否かだ


552 名前:関数の呼び出し時に変数を使用しているが場合によってはデフォルト値にしたい時はEMPTY(定数)を代入する []
[ここ壊れてます]

553 名前:名無しさん@お腹いっぱい。 mailto:sage [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エラー出たりと
環境で動作変わるからあんま使わない方が良いと思ってる

554 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 19:34:33.12 ID:GXdSKXvs0.net]
なんでもいいのか

555 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 19:59:33.20 ID:p4ai4XIh0.net]
>>514-515
この方法もいいね。予め全体サイズを把握してからトップダウンで計画的に構築する感じだね。

556 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/09(火) 20:25:23.95 ID:+8zDwgB90.net]
2chは改行制限のおかげでどうやって可読性上げつつコンパクト化するか必死で考えるから質問に答えるだけで色々勉強になるのよね
今回はslice関数をうまいこと使えたので良かった カウンター使い過ぎだけど

557 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 07:52:47.08 ID:Z7PL/WtA0.net]
例示された処理方法よりも長いし遅くなってないか?

558 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 08:45:28.77 ID:+W75uBK+0.net]
つか質問者のコードが素手にかなりスマートなのに
もっとスマートって要求だから釣りなんだろうなw

559 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 09:04:15.50 ID:MxWBE2100.net]
2進数表記で 111 なら処理三つ 011なら処理二つ みたいなの



560 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 10:37:39.26 ID:R/okCavp0.net]
www.nminoru.jp/~nminoru/programming/bitcount.html

561 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 11:26:49.90 ID:wTSkFc930.net]
phpならarray_shift使ってかなり短くできたがUWSCで組めない

562 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 12:19:18.86 ID:mXr4GQ/h0.net]
悩みようがないだろ
コード書いてみろ
添削してやんよ

563 名前:名無しさん@お腹いっぱい。 mailto:sage [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;
}

564 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 12:45:52.49 ID:R/okCavp0.net]
そっちかよw

565 名前:名無しさん@お腹いっぱい。 mailto:sage [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

566 名前:名無しさん@お腹いっぱい。 [2016/02/10(水) 14:26:42.18 ID:Lx2sic3p0.net]
>>530

関数定義の方の変数が配列として定義されてないから

567 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 17:16:00.23 ID:cNgK9kX70.net]
連想配列を、多次元で使うのは無理ですか?
可能であれば、方法を教えてください

568 名前:名無しさん@お腹いっぱい。 [2016/02/10(水) 19:45:44.31 ID:CFiYTXoe0.net]
www.dotup.org/uploda

569 名前:/www.dotup.org733222.txt.html
少し長いのでうpろだに上げましたm(_ _"m)

質問です。
おそらくこの〜〜〜〜部分に稀に出てくる画像があるのですが、
処理をどう書いたら稀に出てくる画像を検出して押してループ出来ますかね?
そして出ないときはスルーしてループしてくれると良いのですが....
中々調べてもパッとしたものが出てこないので困ってます...
[]
[ここ壊れてます]



570 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/10(水) 22:49:09.18 ID:UdxSvPdk0.net]
>>533
質問の趣旨が今一つかめないけどCASE1〜8の処理をループさせながら定期的に特定の画像をチェックしたいってことでいいのかな
それならとりあえず全ケース文の先頭にその稀に出現する画像をチェックする処理入れればいいのでは
ただこれだけそっくりな処理をケース分けするなら状態遷移用のパラメータ持たせた配列用意して回した方がすっきりするね

571 名前:名無しさん@お腹いっぱい。 mailto:sage [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

572 名前:名無しさん@お腹いっぱい。 mailto:sage [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

573 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 01:00:59.88 ID:2xnip+Tc0.net]
せめて構造体が使えればねぇ

574 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 01:02:56.58 ID:PFox1uTL0.net]
もしかしてselect処理毎に稀の画像チェックしたいけどselendの前に書いちゃって
毎回通らなくてうまくいかないよ!っていうことだったりするのかな?

575 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 01:21:45.52 ID:0c+JQyo+0.net]
classで構造体っぽい物は作れるけど複数のインスタンス持てるわけでもないしあんま意味ないのがな

576 名前:名無しさん@お腹いっぱい。 [2016/02/11(木) 02:19:21.45 ID:ZBhxJU1k0.net]
PowerShell ではクラスを扱えるけど、クラスを作れなかったと思う。

UWSC も、クラスのデータを他言語から受け取って接着剤みたいに使えばいいんじゃね?

577 名前:526 mailto:sage [2016/02/11(木) 03:35:07.99 ID:b+3w0CHx0.net]
UWSC使い始めてまだ2日目で色々酷くてすみません( ;∀;)
やりたいこととして無限ループを行い、ゲーム内の画像を検出してクリックして放置が
できるようにしたかったのですが、先述の通り稀に押さないと進めない物が出てきまして、それのせいでCASE1に飛ばされてしまい
マクロが止まるという事態が起きてました。

578 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 03:39:32.11 ID:b+3w0CHx0.net]
>>534
527さんの解釈で合ってます!
色々検索したり、知恵袋使って質問していたのですがその仕組みが作れませんでした...

>>536
529さんのが自分からすると高度すぎてよく分からない状態です( ;∀;)

579 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 04:06:02.47 ID:BAwW+2D ]
[ここ壊れてます]



580 名前:70.net mailto: エフェクトや透過処理等で素材画像とは完全一致しないケースがある
クリックはあくまでイベントを送ってみようとするだけで溢れる可能性がある

次のループに入ってクリックをキャンセルしまったり
やり直しが出来ない重要なクリックの場合は
クリックを受け付けたか何らかの方法で確認しないと安定しなかったりする

動く時と動かない時があるのは大抵この辺
[]
[ここ壊れてます]

581 名前:名無しさん@お腹いっぱい。 mailto:sage [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すれば最初に戻るんだろ?

582 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 12:23:32.74 ID:z++B2lkF0.net]
>>544
状態遷移を省いちゃダメでしょ

583 名前:521 mailto:sage [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

584 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 13:26:13.37 ID:IFP6rTWM0.net]
emptyとかvartypeとかそういう話でなく?

585 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/11(木) 13:32:44.65 ID:okUdFipF0.net]
>>547
ごめんよく分からない。多分違うかな
dim res[] = ""の部分の時点でlength 1 になっちゃうから
length 0 の状態で宣言できるとそこは解決だと思うのだが

586 名前:名無しさん@お腹いっぱい。 mailto:sage [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に捕らわれすぎてやりたいことが出来なくなってる可能性もある
まぁそれぞれの画像の条件(出方・消え方)がいまいちわからないから・・・

587 名前:名無しさん@お腹いっぱい。 [2016/02/11(木) 19:58:05.91 ID:RBcXi3Gt0.net]
教えて下さい。
このソフトを使ってExcelシートに入力されている値を別の計算ソフトへ
自動で入力するというようなことはできますか?

588 名前:名無しさん@お腹いっぱい。 [2016/02/11(木) 20:29:19.42 ID:WYFXkEVH0.net]
www.dotup.org/uploda/www.dotup.org734791.zip.html

589 名前:名無しさん@お腹いっぱい。 [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



590 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 00:04:53.83 ID:k6qMW81B0.net]
素人でこの言語最近知ったんだが、これ最強の言語じゃね?なんであまり知られてないの?

591 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 00:12:52.00 ID:9BztTFw/0.net]
いや、言語っていうか・・・

592 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 00:45:52.84 ID:ywMkiNaR0.net]
>>553
素人判断はやめましょう

593 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 00:51:12.45 ID:GKVk0beF0.net]
ゲームを自動化すると楽しく学べるね(´・ω・`)

594 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 00:54:49.48 ID:8lgU0Jr00.net]
やっちゃいけない領域な気がするけどね!

595 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 01:26:26.97 ID:g/t37I2b0.net]
言語というよりも録画再生機能が好き

596 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 08:54:55.690943 ID:k6qMW81B0.net]
いや、本当に素人でもブラウザとソフトウェアの自動連携を作れるってのはすごいと思うんやけど。なんで知られてないん?

597 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 08:56:56.102247 ID:4JLZMnR80.net]
お前の類友が無知だからかな

598 名前:名無しさん@お腹いっぱい。 [2016/02/12(金) 10:04:21.88 ID:i4qbzSJ40.net]
時間どうなってんのそれ

599 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 13:27:19.60 ID:cKYrB2r90.net]
>>549
元コード見るとすべてのステージで異なる画像を判別に使用してるわけじゃないから無理じゃね
画像4チェックのときだけケース分けするにしてもそれなら一括でステージ管理したほうがよさげ



600 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 15:17:28.05 ID:8lgU0Jr00.net]
>>562
不明な点が多すぎて基本的なやつになった

601 名前:名無しさん@お腹いっぱい。 mailto:sage [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]

これ使えばよくある空配列の宣言に近いことはできる

602 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 16:42:46.02 ID:cKYrB2r90.net]
>>546
もちろんslice関数での変数x初期化前にlength(x)すると0は返ってくるけど
単純にxの文字列長が返ってきてるだけで要素数では無い点には注意が必要
戻値的には同じだから十分使えるけどね

603 名前:名無しさん@お腹いっぱい。 mailto:sage [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の仕様ってことであきらめるしかなさそうかな〜

604 名前:名無しさん@お腹いっぱい。 mailto:sage [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("",",")) で初期値設定しておいたほうが
後からコード見たとき変数の用途が解りやすくていいね
使わせてもらいます

605 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 17:32:07.53 ID:bdQKZ6P80.net]
長さ0のsafearrayはこれで作れる
safearray(0,-1)

606 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 17:37:10.80 ID:ckS+rd0L0.net]
phpはデフォで色々な関数が用意されてるだけなんだから
array_shiftと同じ関数を自作すりゃいい

607 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 17:42:19.65 ID:UbZzXFO50.net]
>>567
なるほど> DIM x
しかしそれだとその後のResizeで「配列ではありません」エラーになっちゃうな
いずれにしても宣言わかってよかったですありがとう

1行での配列の追加もその線で出来ないかと
res = slice(split(join(res,","),",")) とトリッキーにやってみたが上手く行かず
もし出来たらまた貼らせていただくかも

>>568
おー、ほんとだスッキリ

>>56

608 名前:9
元の配列操作しつつ戻り値も得るって出来るのかな?
[]
[ここ壊れてます]

609 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 19:27:59.43 ID:k6qMW81B0.net]
ブラウザ操作する場合、uwscとエクセルvbaはどちらがいいの?同じ?
それなら、ページが多いエクセルの方が良くね。



610 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/12(金) 19:32:42.63 ID:dphmFixd0.net]
COM操作で解決する範囲の自動化なら同じなので自分が使いやすい方でやれば良いのです

611 名前:名無しさん@お腹いっぱい。 [2016/02/12(金) 19:53:59.16 ID:i4qbzSJ40.net]
alert窓 を閉じるのは VBA では基本的に出来ないと思う。

でも、出ることが分かってる「ファイルを保存する」ダイアログは
SendKeys でコントロールできるらしい。

612 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 01:10:16.19 ID:smbIwZzf0.net]
UWSCでクワインとなるソースコードを教えてください
なるべく最短で、出力はmsgboxでお願いします

613 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 01:15:32.21 ID:hFFChm3k0.net]
誰かがそれを出してもwikiとかに追記に行くなよ

614 名前:名無しさん@お腹いっぱい。 mailto:sage [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)

これだと画像より少し左上にずれてクリックする
修正して使ってきたがこれってしかたないのか?

615 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 14:16:58.30 ID:9elgN/hL0.net]
statusでウィンドウの幅と高さとクライアント幅とクライアント高さ
この辺が違ってたらその可能性もある

616 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 18:52:01.69 ID:abY5DV330.net]
>>576
使用した画像の一番左上を原点とするからだよ
だから何も指示しないと左上に行く

617 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 19:32:42.79 ID:AtiKTq4d0.net]
569の言う左上って画像の中心より左上って意味なのか?

画像の左上角より左上なのかと思った

618 名前:名無しさん@お腹いっぱい。 mailto:sage [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

619 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 20:07:46.86 ID:hFFChm3k0.net]
基本的には関数化しかない
例外を記述する時に楽するためにデフォルト引数使うと良いかもね



620 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 20:08:01.19 ID:JoYsMZYi0.net]
定数作れよ

621 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 20:15:10.67 ID:2icoSvut0.net]
>>581
やっぱそうか

デフォルト引数ってのは
function chkimgA(PARAM_IMG="")
みたいに書けばいいってこと?

>>582
定数作れってのはCONST使えって言うこと?

622 名前:名無しさん@お腹いっぱい。 mailto:sage [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

623 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 20:37:26.58 ID:2icoSvut0.net]
ごめん、全部聞いたつもりじゃなくて言葉の意味、意図がわからないから聞いただけなんだ

624 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 21:11:34.08 ID:2icoSvut0.net]
デフォルト引数とかCONSTについての知識があまりないからググって考えたんだけど
>>584は例外を引数で指定するためのやり方、ということだよね?
自作関数そのものの機能としては>>580で問題ないよね?

俺は例外の場合は普通にCHKIMG関数を使おうと思っていたんだけど、


625 名前:>584のやり方で例外のために記述を加えたほうがいいのはどうして? []
[ここ壊れてます]

626 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 21:19:16.44 ID:JoYsMZYi0.net]
>例外の場合は普通にCHKIMG関数を使おうと思っていたんだけど

だったら関数作んなくていいって
定数作れ

627 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 21:30:44.76 ID:hFFChm3k0.net]
デフォルトな条件なら呼び出し側がシンプルに成る
前後の処理を共通化できるってのが基本的なメリット

同じ処理を複数の箇所に記述すると変更する必要が生じた時に
対応が漏れる恐れがある

少し上にあった条件を配列に入れてループで回すコードみたいに
回りくどくても変更に対応しやすいコードの方が便利かもねって話

628 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 21:39:33.04 ID:2icoSvut0.net]
>>587
ごめん、その定数作れの意味がわからない

>>588
関連の話として、例外を指定できる方法を教えてくれたということかな?
どうもありがとう

629 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 21:43:21.10 ID:AtiKTq4d0.net]
>>580
なんで関数内にif文書いてるの?

function chkimgA(〜)
 result = chkimg(〜
fend

これだけでいいじゃん



630 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/13(土) 23:11:25.36 ID:eCDlWNP70.net]
初心者の質問です。
fukidasi(

631 名前:名無しさん@お腹いっぱい。 mailto:sage [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)でバックで動かしたいのですがどうすれば直りますか?

632 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/14(日) 00:41:28.44 ID:V4/m1Afh0.net]
仮想環境を操作するのはUWSCでは無理

633 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/14(日) 08:59:07.59 ID:4bRrPD2X0.net]
>>593
なるほど バックで動かすのはあきらめます
ありがとうございました

634 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/14(日) 09:05:22.19 ID:c3uHBcDI0.net]
自分が裏だと描画を控えるアプリに対して
描画させる事は基本的に前面にするしかない

635 名前:名無しさん@お腹いっぱい。 [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時代は隠れた部分は描画されなかったけど

636 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/14(日) 11:08:44.73 ID:4bRrPD2X0.net]
>>596
よく考えたらそうですね・・・
その後の処理はifb CHKIMG→BTNでクリックさせる→スリープ1秒 を何パターンも作ってるだけの簡単な
ゲーム操作をさせるマクロなんですが色々ぐぐっても原因わからずでした

637 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 01:57:12.49 ID:0dWxJSmB0.net]
画像検索の特殊変数G_IMG_X,G_IMG_Yってのは
ローカル変数扱いなんでしょうか?

画像検索でヒットしたG_IMG_X,G_IMG_Yの値を
別の関数で使いたい場合は、引数で渡すか
グローバル変数を使うかしかないんでしょうか?

638 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 07:11:02.66 ID:X50nyRyC0.net]
>>598
グローバルだったとしても、そういうのは引数で渡す癖をつけたほうがいいよ。
グローバル変数に入れなおすのもNG。

639 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 12:48:14.51 ID:fuyjfYD1 ]
[ここ壊れてます]



640 名前:0.net mailto: 引数が増え過ぎてきた場合、普通はどうしたらいいの?構造体もないし []
[ここ壊れてます]

641 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 14:28:14.98 ID:lRH39zN60.net]
>>600
個人的にはそれが必要な情報なら引数にする事を厭わないかな

でもクラス(モジュール)を使って必要な情報を整理して保持できるならそっちを優先する
グローバル変数は最後の手段だけどクラスのメンバ変数は使用を躊躇する必要ないしね

642 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 15:17:21.06 ID:mpgO3egX0.net]
引数を配列で渡すとか、関数を分割するとか

643 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 17:00:42.69 ID:ml/Gl3ot0.net]
ワシにはなんのこったかさっぱり
UWSCはプログラミング未経験者が使うツールだと思ってた

644 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 18:51:08.74 ID:iW+KTqvB0.net]
>>603
その話題について知りたいなら素直に知りたいって書いたほうが得だよ
逆にどうでもいいなら黙ってようよ

645 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 18:55:50.05 ID:iV3+q7Ob0.net]
うざいからお前出てって

646 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 20:36:48.80 ID:ml/Gl3ot0.net]
わかったよもう来ないよ
そのかわり質問スレに誘導してくれ

647 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 20:47:06.23 ID:TntgXZj60.net]
>>606
うざいと言われてるのは>>604の方だと思うがな

648 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 20:54:00.51 ID:VKY0mmNh0.net]
もっと短いクワイン書けないでしょうか?自分の実力ではこれが限界です
UWSC上級の人よろしくお願いします

a=chr(34);b=

649 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 21:00:29.60 ID:VKY0mmNh0.net]
なんか切れたんでこっちに貼りました
https://gist.github.com/anonymous/e522e8a7f110f3238185



650 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 21:24:10.17 ID:ekeGmjS90.net]
特定の武器を一回だけ使って元の武器に戻す

特定の武器に持ち替えて使用する
↑ここまではUWSCでできるんだけど
直前に持っていた武器に戻す
↑識別方法がなくて諦めた

651 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 21:45:50.39 ID:k4y1Ql7g0.net]
日記か

652 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 22:00:26.19 ID:0XdlPD550.net]
最近恥ずかしげもなくゲームマクロの質問ばかりだな

653 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 22:05:32.67 ID:GSjAFn9q0.net]
>>610
お前が何を見て直前に持っていた武器だと認識するのかを
そのままコードに書けばできるだろ

お前も認識できないなら知らん

654 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 22:21:08.17 ID:ZQ5I0KNy0.net]
>>603
特定の画像出現をポーリングで待機しながらタイムアウトとか考えるのは組み込みに近いから
言語自体はシンプルだけどコード書くのはそこそこ経験必要よ

655 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 22:37:12.48 ID:ScNC+Izw0.net]
ゲームで使うのはいけないけど
楽しく学べるから一番上達が早いのよね
(´・ω・`)

656 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 22:42:37.20 ID:6/AzYlfK0.net]
>ゲームで使うのはいけないけど
どういうこと?

657 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:01:56.67 ID:TntgXZj60.net]
ゲームマクロ使用がいけないことであるっていう常識が無い奴がいるのは戦慄を覚えるね

658 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:08:31.27 ID:6/AzYlfK0.net]
ソフトが良くてゲームがいけない意味が分からん
最近もパズドラ攻略機械組んでる動画みてただすげえって思ったけど
もともとゲーム内にプログラム要素あるのもあるし

659 名前:imi mailto:sage [2016/02/15(月) 23:11:18.16 ID:Et+z3L6S0.net]
君規約とか一切読まないタイプ?



660 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:12:37.28 ID:ZQ5I0KNy0.net]
オフゲなら好きに汁オンゲなら垢バンされても泣かない
ここはマクロの善悪を語る場ではないので

661 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:12:46.12 ID:lRH39zN60.net]
利用規約違反になるので本来公言するもんじゃないのよ
だからゲームのためのノウハウ教えてと言われると供与できない
建前でゲームじゃないフリしてろ

662 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:15:05.33 ]
[ここ壊れてます]

663 名前: ID:6/AzYlfK0.net mailto: あんまり読まないけどマクロ禁止とか書いてあるんか
そういうのって一定ジャンルのみとか一部じゃないの
[]
[ここ壊れてます]

664 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:18:49.53 ID:lRH39zN60.net]
許されているジャンルならそのスレでマクロの話をすれば良い

665 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:23:35.26 ID:6/AzYlfK0.net]
あー課金したりネットワークで他人と競う系のゲームか
自分そういうのぜんぜんやらないからな
「ゲーム」って一まとめで言うのは御幣あるじゃないか
ゲーム名明記してない限り規約に違反してるかどうかは分からんわけでしょ

>>623
その論理だとすべてのマクロの話Windowsスレとか別スレでしろって話になっちゃうんじゃ

666 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:30:04.89 ID:lRH39zN60.net]
利用規約にマクロが禁止されているツールならそうなるかもね

だから規約違反しているか判断できないゲームの話はするのは勝手けど
供与は出来ないからボカせというのが私の主張

667 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/15(月) 23:31:45.80 ID:0XdlPD550.net]
いやー規約違反云々もあるが
調べもしない子供が多いからここでゲームの質問は暗黙の了解でNGだったんだが
最近は普通に受け入れられるようになったんだなーと思った

668 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/16(火) 00:26:03.06 ID:Qfud2JiX0.net]
ゲームの規約はUWSCの規約じゃないからそれ自体はどうでもいいんだけどね。
「何をやりたいか」を有効な言葉に変換できずに、ゲームの動作そのまま質問しちゃうような人だと
自分で何もせず結局全部丸投げしてくる人ばかりだから叩かれたというだけ。

669 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/16(火) 00:44:27.17 ID:i6aChOQJ0.net]
ゲーム関連で荒れなかった試しがないからな



670 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/16(火) 02:56:23.77 ID:QoFwoTib0.net]
A⇔Bって決まってるなら
AからBは出来るんだから(Bを探した?)
その逆をやればいい(Aを探す?)

もし途中からAと同種のやつがもりもり増えていくとかだとめんどいけど
まぁAが増える可能性もあるということはBも増える可能性があるわけで・・・

671 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 04:35:41.66 ID:kb0x6ds+0.net]
ゲームのプレイ行為そのものが報酬であるとデザインされたオフゲと違って、
ネトゲはゲームのプレイ行為を手段として主に自己顕示による自己実現気分を
味わうヤクであり、ソシャゲはそのヤクの販売ルート拡大とマネタイズに
成功した事業なのである。
仮想自己実現を売り物にするネトゲ・ソシャゲ業者にとって、
ゲームのプレイ行為そのものが報酬となる程に、
ゲームそのものを工夫して面白くするのは過剰品質であり粗利が減るので、
あえて、いわゆるクリックゲーと呼ばれる、ゲームというより単重労働を
ユーザーに課すのが通例であり、これを自動化されては産業革命が起きてしまい
商売が成り立たないので規約で禁止する率はほぼ100%。
よってゲームの自動化需要で圧倒的多数はソシャゲであり、ほぼ無確認でも間違いない。
そしてゲーム開始時にソシャゲ業者から口を酸っぱくして明示的に禁止されていることに
気づかず、臆面もなく赤の他人にホイホイ業者との契約違反方法を聞いて恥じない愚者は
知能的にプログラミングを教える段階にない。

672 名前:名無しさん@お腹いっぱい。 [2016/02/17(水) 04:53:53.69 ID:hPLvEUTu0.net]
このスレでゲームの話題が禁止されてるのは
オンライン/オフラインに限らず全てなので
別にゲームの規約違反とは関係ないと思うよ。

たぶん、ゲームの質問するやつって常に新規で初歩的な質問なんで
それ以外の話ができないとかそんなんだろ。

673 名前:名無しさん@お腹いっぱい。 [2016/02/17(水) 04:57:14.01 ID:hPLvEUTu0.net]
ソシャゲではこういうことはないけど、一般的なオンラインゲームでは
ゲーム側でUWSCが

674 名前:動かないようにされてるから、そういうのは関係あるかも


> 42 :名無しさん@お腹いっぱい。:2012/04/27(金) 08:17:32.89 ID:n7YHJBnV0
>  作成したマクロをオンラインゲームで実行しようとすると動作しませんでした
>  ググってUWSCをUNKOに変更してもダメでした・・・
>  ゲーム側でマクロ対策されてたら出来ないのでしょうか?
>
> 43 :名無しさん@お腹いっぱい。:2012/04/27(金) 10:16:31.41 ID:hwEpQpsX0
>  >>43
>  マクロ対策されてたら出来ないから
>  仮想PCでゲーム走らせてやるんだよ
[]
[ここ壊れてます]

675 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 04:57:20.17 ID:pIoDNX4q0.net]
そんなゲーム業者の都合なんてどうでもいいことだろう。
重要なのは、このスレの住人が答えたくなるような質問ができるかどうかだ。

676 名前:名無しさん@お腹いっぱい。 [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 は満足に動かせないらしい。
設定もめんどくさいし。

677 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 05:25:15.26 ID:GIOAQLSV0.net]
煽りとかじゃないんだけどゲーム以外だと何に使ってるの?

678 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 06:32:41.54 ID:beI7tmqh0.net]
>>635
業務

679 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 08:13:26.19 ID:/1ajP00K0.net]
ゲームの話になると仮想環境とかUWSC対策の回避方法の話ばかりになる
ゲーム操作一般スレ作っておいて誘導したほうがお互いのためにもいいよ



680 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 08:15:00.12 ID:rcyqh9600.net]
動画見てるときにでてくる広告クリック

681 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 08:21:56.99 ID:91rSfnp00.net]
Windows起動時に窓を残したまま立ち上がる常駐アプリ(LINEとか)のウィンドウクローズ
マイドキュメントの定時バックアップ、手動でWindows終了した時のバックアップの自動化
株取引アプリの起動時、アプリ側で保存されない設定の自動セット
チャートアプリで毎回同じ流れの操作をダブルクリックで実行

682 名前:名無しさん@お腹いっぱい。 [2016/02/17(水) 10:58:48.44 ID:dGarNdwa0.net]
バックグラウンドで動いてて欲しいけどよく止まるソフトの異常検知と再起動
ビューアで見ている画像にフォルダ名をつけてマイドキュメントにコピー

683 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 11:10:03.79 ID:7mLT8oDH0.net]
SPEAK関数使ったマクロでカーナビ音声認識機能のデバッグ
海外向けナビは音声認識機能がデフォルトなので全ての機能に音声認識が割り当てられてるから人の手でやると超大変

684 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 19:23:28.68 ID:CDYU1lyI0.net]
>>638
スケベ

685 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 23:05:55.63 ID:Z2OJH21P0.net]
a〜z+1〜9の中からランダムに入力したい場合ってどうやればいいですか?

686 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 23:38:43.99 ID:7mLT8oDH0.net]
>>643
ざっくり設計
1.該当のAscii文字コードが入った配列を作成
2.配列の添

687 名前:数をランダムで生成
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
[]
[ここ壊れてます]

688 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 23:44:26.11 ID:Y0AJ5NIx0.net]
kbd(random(VK_Z - VK_0) + VK_0)
とかでいいんでない?

689 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 23:53:36.29 ID:7mLT8oDH0.net]
それだとVK_0からVK_Z-1までの文字コード出すだけだから
58(:)-64(@)の記号まで含まれちゃうし多分Zは出てこないね



690 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 23:54:40.60 ID:5diPod+M0.net]
丸投げに応じるなよ・・・

691 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/17(水) 23:56:59.22 ID:7mLT8oDH0.net]
ランダムでの文字列生成はたまにコード書いておかないと大事な事抜け落ちるからな

692 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 00:03:21.41 ID:eoG2gd950.net]
>>648
わかる、一回の実行で使い回す頻度を考えて準備と取得は分けたりもするよね
グローバル変数を汚染をしないためにもクラス使った方が良いパターンだと思う

>>647
自分も丸投げは検索キーワードを教える位までかな
でも対処は個人の自由かと
(勿論ツッコミを入れるのも自由だと思うので非難はしていない)

693 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 00:17:37.78 ID:OlbQAj/J0.net]
>>649
そうそう 引数に渡すクラス内の配列サイズ取得してrandomの範囲決めて関数自体は汎用化させた方がスマートだったね
randomの取得範囲が以下か未満かもたまに怪しくなるしランダム文字列生成ではいつもコードレビューが厳しくなる

694 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 00:43:39.97 ID:RFqQoptg0.net]
>>649
>>2
●質問したい方へ
「○○作れますか?」→ 可能か不可能かを聞いているのなら答えは「作れる」
「○○が作りたい」→ 自分が作れば?並大抵の事ならググれば似たようなスクリプトや知識が見つかる
「○○作って下さい」→ 依頼スレじゃありません。
過去ログを見る、検索する等、自分で出来る事を書き込む前にするように。
自力で作ったのを晒すか、具体的な解らない場所を提示して、改善点や解決策を求めるようにしましょう。
備考:PRI NT文を利用してデバッグする。管理者権限で起動してみる。AEROを切る。fcuc.uwsを走らせてみる。


丸投げに対応する奴は荒らしと同類
この手のスレでは鉄則だろ

695 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 00:49:06.01 ID:YGG8mhQL0.net]
コードを晒す目的でオススメのWebサイトありますか

696 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 00:52:04.81 ID:OlbQAj/J0.net]
この話題止めね?
コード書いた本人が自分のためにコード書いてんだからコピペ張るよりコード張ろうぜ

697 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 01:11:07.18 ID:MFRYafp00.net]
そもそも>>643を見ただけでは丸投げかどうかわからないと思うが

698 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 02:06:21.02 ID:dUe+VgX70.net]
丸投げでも面白い問題ならパズルのように解きたくなるものもある
解かれないってことは問題がうんこ

699 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 08:09:18.41 ID:PV/kQd7A0.net]
より短いクワインができました
https://gist.github.com/anonymous/3043708044a56e98104e



700 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 08:33:26.58 ID:HYi07iZS0.net]
ヘルプにある仮想キーコードの説明って、プログラマ経験者前提過ぎなんだよね。
↓こういうのテンプレに入れようぜ
www.comrade.co.jp/f

701 名前:tp/km2/manual/Properties/VKeyCode.htm []
[ここ壊れてます]

702 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 08:38:09.64 ID:HYi07iZS0.net]
あとこれな

SendStrによる文字列送信
siromasa.html.xdomain.jp/uwsc/u_term/75_Mojinyuuryoku.html

703 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 08:39:32.11 ID:eoG2gd950.net]
ヘルプファイルの
「スクリプト」「その他項目」「予約後、関数一覧」
の「定義済み仮想キー」にあるのよ

704 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 19:09:42.48 ID:HYi07iZS0.net]
いや、仮想キーが定数であることも、具体的な値も書いてないでしょ。
Aに1加算したらBになるって、
何のプログラミング経験もなくあのヘルプだけ見て判る人は相当才能あるよw

705 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 22:34:44.95 ID:8Ev3PTaE0.net]
そらそういう使い方をして欲しくないからでしょ

706 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/18(木) 23:06:12.24 ID:6tMhXUrt0.net]
確かに予約語なんていつ内部値が切り替わるかわからんし
それこそ今後メインストリームがUnicode一辺倒になってUWSCが内部処理含めてUnicode対応なんて事が起きたら
現状VK_の内部値がAsciiコードである前提で書かれてるソースなんて不具合でまくる予感しかしないもんな
初心者なりに変にテクニックに依らず素直なコード書けるってのも十分に才能ではあるわけだし

707 名前:名無しさん@お腹いっぱい。 mailto:sage [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])

708 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/19(金) 11:27:58.73 ID:IPiQDr2h0.net]
Googleの画像認識/分類API、Cloud Vision APIが誰でも使える公開ベータへ
jp.techcrunch.com/2016/02/19/20160218google-opens-its-cloud-vision-api-to-all-developers/

こういうのってuwscでもなんとかして使えるようにしたりできるのかな
やっぱり他の言語学ばなきゃダメか

709 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/19(金) 12:05:56.90 ID:2x32U0G20.net]
それの使い方って、単に画像データをPOSTするだけでいいんじゃないの?



710 名前:名無しさん@お腹いっぱい。 mailto:sage [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では、無理ですか?

711 名前:名無しさん@お腹いっぱい。 mailto:sage [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

712 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/22(月) 02:02:09.37 ID:wzprd0m10.net]
補足すると合計や平均等の単機能なら関数内で直接計算させた方が当然ながら速いからね
合計も欲しいし平均も欲しい等のケースなら一旦指定列の配列を変数に入れるためにこんな感じの関数を使った方が効率が良くなる

713 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/22(月) 06:06:44.36 ID:P6qbXDjw0.net]
>>667
ありがとうございました

714 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/23(火) 20:44:15.98 ID:gO96bxCq0.net]
上にもあったけどやっぱ配列系関数は説明が難しいなー
なんか通常の宣言と混ざる傾向にある
このヘルプ少し配列について改善できないかね
><変数>
> 変数に型はありません

715 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/23(火) 21:03:47.15 ID:iXx0mMI80.net]
そこの補足で十分だと思うけれどなぁ

ローカル変数には宣言は要りません(Option指定で変更可:DIM 変数名)
多次元配列には宣言が必要: DIM 変数名[数]
(配列での初期値代入: DIM X[2]=1,2,3  配列数の省略可 DIM X[]=1,2,3 )

個人的には再利用するスコープが短いローカル変数は意図的に宣言しないようにしている
(宣言する=グローバル変数かモジュール変数か配列)

716 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/25(木) 09:24:51.24 ID:x6EjoBIB0.net]
× 過去ログには有益情報の宝庫
○ 過去ログには有益情報がたくさんある
○ 過去ログは有益情報の宝庫

717 名前:名無しさん@お腹いっぱい。 [2016/02/25(木) 16:03:26.26 ID:fkkSYKXG0.net]
質問です
ループでフォルダ監視し待機、ファイルが送られたら動作実行しまた待機
これのプログラム終了時に1回だけ別の動作を実行させる方法無いでしょうか?
出来ればダイアログなしで
別のバッチファイルでも実行しUWSCの常駐終了後実行とか出来ればいいんですが
方法が分かりません、宜しくお願いします

718 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/25(木) 16:08:19.62 ID:ukh1Qs010.net]
>>673
なにを悩んでるのかよくわからない
こんな感じじゃないの
while true
 if ファイルが北 then
  ファイルが来た時の処理
 endif
 if 終了アクション then
  最後の処理
  終了処理
 endif
wend

719 名前:666 mailto:sage [2016/02/25(木) 16:55:06.89 ID:fkkSYKXG0.net]
>>674
終了アクションは閉じる以外無いんですが
どうやって検知すれば良いのでしょうか?



720 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/25(木) 17:09:05.93 ID:ukh1Qs010.net]
>>675
プロセスの終了で強制終了してるとかってこと?
使用状況によるけど、そういうスクリプトなら
終了用の空ファイルを送る、そのためのスクリプト組むとか

721 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/25(木) 17:19:09.87 ID:sdAeFe3E0.net]
PRINT GET_CUR_DIR
DOSCMD("cd /d C:\Windows\System32")
PRINT GET_CUR_DIR

なんでカレントディレクトリが変わらないのだろう?

722 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/25(木) 17:32:30.68 ID:/glPAZis0.net]
DOSCMD(チャイルドプロセス)のカレントディレクトリしか移動していないから

スクリプトでファイル操作する時はフルパス操作した方がいいよ

723 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/25(木) 17:35:42.52 ID:fkkSYKXG0.net]
>>676
自己解決しました有難うございました
画面上にダイアログ無しでタスクバーからの終了です
方法は/nl でもう一個起動GETID

724 名前:名無しさん@お腹いっぱい。 mailto:sage [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

こんな感じで問題ないかな?
助かりました。ありがとう♪

725 名前:名無しさん@お腹いっぱい。 mailto:sage [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

726 名前: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
[]
[ここ壊れてます]

727 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 01:20:46.23 ID:OyTefc3Z0.net]
Sleep(1)をSleep(0.1)にしたら?

728 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 01:29:14.52 ID:f7poLGup0.net]
chkimg("aaa.bmp",ほにゃほにゃ) or chkimg("ccc.bmp",ほにゃほにゃ)
とやったほうが良いんじゃないか?

729 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 01:35:13.96 ID:VvH2GmY20.net]
>>682
>>683
ありがとうございます、変更してみます。



730 名前:名無しさん@お腹いっぱい。 mailto:sage [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",ほにゃほにゃ)

後の記述のみ実行されるようです。

自分でもググッて解決策を探してみます。

731 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 02:14:04.68 ID:+U0TNGIH0.net]
chkimgでorする場合は
最初にOPTION SHORTCIRCITを宣言しとかなダメよ
前者が存在しても後者の判定してまうから

732 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 02:14:41.87 ID:+U0TNGIH0.net]
というか>>683はそこまで教えてあげないと

733 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 02:55:14.02 ID:mDOHEmLU0.net]
これが終わったらこれ、みたいな単純な流れ作業は書けるようになったので
すごろくのようにあっちこっちに飛ぶ条件を付けていこうと思うんですが
文字だけだと順番が訳わからなくなりそうなんですがやってれば目が慣れてくるものですか?

734 名前:名無しさん@お腹いっぱい。 mailto:sage [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の為、どこまで出来るか分かりませんが
色々調べながらやってみます。

735 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 03:31:25.12 ID:DVc62XNO0.net]
>>689
もしwin7使ってるならデスクトップコンポジションを切るとchkimgが速くなるよ

736 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 13:19:18.71 ID:EORKr9mx0.net]
画像Aと画像Cが出た時は画像を左クリック
and?or? ???? ってなってるんだけど

737 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 13:21:01.50 ID:Iow3jdwl0.net]


738 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 13:38:04.37 ID:38mQ0onS0.net]
両方を満たすなら当然ANDだけど
少し上の短絡評価の話で混乱しているのかな?

739 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 15:10:47.45 ID:IJ0wxpKe0.net]
AかCが、なら or だろうけど
AとCが、という質問なんだから and じゃなきゃおかしい。
でも流れを見た感じでは質問の方がおかしかったっぽいね。



740 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 16:05:27.86 ID:+U0TNGIH0.net]
いや>>681のコードまでちゃんと見ればorだなってわかるだろ
読解力の問題
ANDに取れるような書き方が悪い!とか言っちゃう奴は
読解力のないバカか理屈バカのどっちか

741 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 16:28:31.65 ID:sQuDImeT0.net]
卵があったら牛乳うんぬんかんぬん

742 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 16:53:15.04 ID:f6jdCZ8k0.net]
windowsマクロテクニック読みつぶしたから2冊目買ったわ
(´・ω・`)

743 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 16:57:01.43 ID:f7poLGup0.net]
文字列を数値に変換するのはVAL
数値を文字列にするのはformatでいいのかな?

744 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 17:11:37.28 ID:jnFT48H20.net]
sleep(20+random(120))
20秒+0~119秒の待ち時間ってこれでいい?20秒の部分は固定だよね?

745 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 17:25:32.73 ID:IJ0wxpKe0.net]
>>695
>>681を見ても、質問文が間違ってるのかコードが間違ってるのかわからないだろう。

746 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 18:45:03.26 ID:+U0TNGIH0.net]
>読解力のないバカか理屈バカのどっちか

って言ってるのにまだ言う
どんだけだよ

747 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 20:47:36.55 ID:jnFT48H20.net]
>>699
これあってる?

748 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 21:07:31.07 ID:tsk8CpEJ0.net]
>>702
どこに疑問がある?
試せば判ることを何故聞く?

749 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 22:31:03.41 ID:1L8PKm630.net]
もう一週間以上も悩んで解決出来ないんだけど
CLKITEMでクリックするそのアイテムが無かった時の条件分岐って出来ない?

CLKITEM(GID,"閉じる")とかにすると閉じるが無かった場合、待ち時間指定が無いから
そこで長い間止まってしまう
これを1秒とかで判定して条件分岐するにはどうしたらいいの?



750 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:00:05.73 ID:Iow3jdwl0.net]
>>704
戻値 = CLKITEM( ID, アイテム名, [種別, On/Off, 番号] )
戻値
TRUE:正常、 FALSE:処理不能

ヘルプくらい見ろや

751 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:30:25.92 ID:gFrWrIbO0.net]
>>703
ランダム値は試せばわかるって性質のもんじゃないだろw

752 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:38:07.11 ID:38mQ0onS0.net]
値が範囲内に収まるか気になるなら期待値以外になればNG表示する関数を数千回ループさせてみてるとか
スリープの単位がヘルプの内容と同じか気になるなら前後でミリ秒表示してみるとか

仕様が気になった時は検証可能な単位にどうやって分解するか考えよう

753 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:38:09.23 ID:sQuDImeT0.net]
print 0.1+random(3)みたいに
小さい桁で試すとかいくらでも試しようはあんだろ

754 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:39:50.44 ID:1L8PKm630.net]
>>705
ACC系だとFALSEが返ってこないで、そこで動作が止まっちゃうんだよ
一瞬で判定してくれるならいいんだが

755 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:54:14.26 ID:jnFT48H20.net]
>>707
^3^

756 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/27(土) 23:59:06.69 ID:gFrWrIbO0.net]
ランダムだと外見的には何回ループしても、多分仕様通りといえるが100%仕様通りと断言できなくなるだろ
ソース見りゃ一目瞭然だけど、テストの結果だけ見るとそういう事になるじゃん。

757 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 00:20:30.70 ID:9QYQdQG/0.net]
そりゃその通りだが、少なくとも今回の話題である>>699の言う固定だのは試せば確実に分かることだろうが

758 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 00:56:26.92 ID:qefict4b0.net]
そこもランダム値と足されちゃうから試してわかるのは100%確実ではないなw
そして今のところYES/NOで答えられる質問にだれも答えられていないという・・・
>>699
いい、はず

759 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 01:03:30.83 ID:9QYQdQG/0.net]
だから固定値は0.1にすりゃわかるって言ってんだろアホ
少しは頭使えや



760 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 02:00:59.24 ID:pR7C6fW20.net]
>>706
仕様のないものならそうだけど
期待値があって、それにあってそうかどうかを確認するだけなんだから
100万回でも1000万回でもrandom()の引数に対して充分な回数試せばいいだろ
仕様があってるか否かを確認するわけじゃないんだから

761 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 02:08:27.06 ID:qefict4b0.net]
1000万と1回目で想定外値がでる可能性が微レ存

762 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 02:28:46.68 ID:0r4UbGuu0.net]
>>716
しつこいぞ

763 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 02:38:57.53 ID:9QYQdQG/0.net]
的外れにも程があるな阿呆は

764 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 02:40:28.35 ID:qefict4b0.net]
いや707は言うとおりだけど708は論理的じゃないしさ

あと一応>>711の名誉のために言っておくと自分はそのヒトとは別人です

765 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 03:55:09.54 ID:+XXpVUCC0.net]
random関数にバグがあるかも知れないからとか
そもそもコンピュータには本物の乱

766 名前:数の生成は不可能だとか
そういう話をしてるんだろうか?
[]
[ここ壊れてます]

767 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 04:18:12.48 ID:8+yUHWxH0.net]
自分か運用する上で許容できる範囲内かどうかという話なんだけれどね

768 名前:sage [2016/02/28(日) 07:54:55.15 ID:k7lnu1y6g]
ここで質問して良い内容でしょうか。
ロードス島戦記オンラインにて、KBD関数が動作しません。
原因、対策等わかりましたら教えてください。

769 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 11:33:31.44 ID:pR7C6fW20.net]
>>716
自分のにたいしてだと思うから一応答えておくと
それは単なるバグで元の質問とは無関係でしょ



770 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 12:59:00.66 ID:f5PR4wTV0.net]
元質問の人明らかにrandom関数の仕様を理解してないところから来てるから…
バグとそうでないものの違いを判別できない。
だから何回ループしてもその結果をもって仕様通りに動いていると結論付けられない。

771 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 13:04:53.34 ID:9oz8zZQ80.net]
実はPCを揺らすと数値が飛ぶバグがあるんだ

772 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 14:07:12.58 ID:fiqkpaBc0.net]
落下中のPCはランダムを返してくれないとかなりそうだなおい。

773 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 14:27:31.94 ID:blrfAobm0.net]
実は念を送るとランダムの確率が変動するんだ

774 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 15:35:04.40 ID:WeWO61jV9]
Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
実際の待ち時間が20+120秒以上にならないという保証は無いよ

普通はそこまで気にする必要が無いってのも言うまでも無い

775 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 15:34:52.99 ID:Xg5e+H4y0.net]
UWSCは大昔のBASICみたいに、何度走らせてもRANDOM関数は同じ乱数と思ってた。

BASICでは、RANDOMIZEでタイマーを引数にしてたなぁ。

776 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 15:38:07.16 ID:n2+v+wZb0.net]
Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
実際の待ち時間が20+120秒以上にならないという保証は無いよ

普通はそこまで気にする必要が無いってのも言うまでも無い

777 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 19:51:10.87 ID:5dU2/tOb0.net]
>>730
> Sleepの精度や演算誤差とかインタープリタの実行速度とかの影響で
> 実際の待ち時間が20+120秒以上にならないという保証は無いよ
そんな厳しい精度で動かす言語じゃないからね。Windows自体がRTOSじゃないからネイティブアプリでも
保証はないし。

778 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/28(日) 20:34:52.25 ID:J1sXa2fC0.net]
ごめん単純に使い方が間違ってないかって質問だったごめんなさい

779 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 01:14:12.41 ID:kLHNktmf0.net]
式による設定のところで7時から19時までの間に9分間隔で実行て出来ます?



780 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 02:57:03.79 ID:Y5wKBi2d0.net]
GETTIME()でG_TIME_HHを取得して
7時から19時までの間は実行させて
9分間隔はSLEEP(540)でいけるのではないかと

781 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 03:01:49.33 ID:kLHNktmf0.net]
>>734
すいません
初心者すぎてよくわからないです

例えばこういう場合だと○月○日の7時からのみになってしまうんですよね
(YMDNN>=7894680) AND (YMDNN<=7894980) AND ((YMDNN MOD 60)=0)

毎日7時からというその方法はどう書けば良いのでしょうか

782 名前:名無しさん@お腹いっぱい。 mailto:sage [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

783 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 03:20:04.69 ID:kLHNktmf0.net]
>>736
やりたい事が複数あって時間間隔も色んなパターンがある場合もそれで出来ますか?

784 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 03:40:29.09 ID:vc3n0bkN0.net]
>>737
条件式変えてやれば大体の動きはできると思うけど…
とりあえず自分で書いてみないと覚えないぞ

785 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 03:44:48.44 ID:kLHNktmf0.net]
>>738
ちょっと色々と試してみます
どうもです

786 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 05:02:19.00 ID:UwM6ts+X0.net]
ヘルプも読まずに拾ったマクロの改造法を聞いてるだけっぽいな

787 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 05:23:18.45 ID:kLHNktmf0.net]
いやもう初心者なんで全然わからんのですよ

788 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 06:20:04.43 ID:W4Lx+MiB0.net]
初心者っていちいち書くな わかってる

789 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 09:56:53.47 ID:S3AkKIbC0.net]
なんでも只で手に入ると思うなよw

プログラムの基礎教養があればネット上の情報だけで理解できるが、
それがなければ情報の取捨選択すらできずやりたいことにたどり着けない
1冊くらいは金出して本を読め



790 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 10:13:32.76 ID:7awlWggQw]
式による設定 7時から19時までの間に9分間隔で実行
HH>=7 AND HH<19 AND (YMDNN MOD 9)= 0

791 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 11:07:56.89 ID:W4Lx+MiB0.net]
それよりプログラマ雇えといいたい

792 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 11:11:22.54 ID:OC88kjRQ0.net]
プログラムの素養もネットで身に着けられるし
プログラムの素養が必要って情報もこうやって手に入ってるし
やりとりしてれば2chでのイラつかせるワードも分ってくるし
地道に調べて試してけばいいと思うよ

793 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 12:08:54.45 ID:zgYAM+0i0.net]
質問してる程度の知識ならすぐにネットで手に入る
だから「初心者なのでわからん」が通用しない
もう少し自分で調べて、具体的にわからない部分が出たらもう一度質問しに来れば良いよ

794 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 12:22:07.58 ID:yBnnbdV70.net]
初心者さんはまずフローチャート書くか日本語で処理手順を箇条書きにするようにしたらええのよ
んでヘルプなり解説サイトの熟読
いきあたりばったりでスクリプトに手を入れようとするとわけわかんなくなって当たり前よ(´・ω・`)

795 名前:名無しさん@お腹いっぱい。 mailto:sage [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
となります。

796 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 12:38:11.72 ID:3ZfsBzX30.net]
すいません
プリント結果はSLCT_1を選んだ時です

797 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 12:45:54.58 ID:Hitpgwgs0.net]
CASEに入ってからPUBLIC使ったら見た目通りの順序じゃなくなるよ
実行時にPUBLICを付けた行は先頭に移動するイメージなのです

そのような使い方をしたければPUBLIC宣言は空宣言か0代入をSELECT前に行って下さい
(つまり移動しても大丈夫な所に置く)

798 名前:名無しさん@お腹いっぱい。 mailto:sage [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

799 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 12:50:36.85 ID:7tqwHv410.net]
OPTIONと同じやね
後勝ちになる
つーか、同じ変数を何度もPUBLICで宣言なんてするもんじゃない



800 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/02/29(月) 12:57:09.80 ID:3ZfsBzX30.net]
>>751-753
ありがとうございます納得できました
なるべく簡潔に書こうと思っていたのですが良くない書き方だったみたいですね
グローバル変数は極力使わないようにとよく目にするので気をつけます

801 名前:名無しさん@お腹いっぱい。 [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

802 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 19:14:05.70 ID:7awlWggQw]
>>704
if -1 <> CHKBTN(GID,"閉じる") then CLKITEM(GID,"閉じる")

803 名前:名無しさん@お腹いっぱい。 [2016/02/29(月) 20:24:39.97 ID:7awlWggQw]
>>709
www.uwsc.info/faq.html#N15
CLKITEM関数のCLK_ACC指定にてダイアログを出すと閉じるまで制御が戻らない  #N15
  CLK_LEFTCLK を付加してください。
  CLKITEM(id, "xxx", CLK_ACC or CLK_LEFTCLK)

804 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 00:51:55.84 ID:Hw/6RB5N0.net]
基本的な操作でお恥ずかしいのですが、どうしても自力で解決できなかったので
ヒントだけでもお教えください。
Win 7 Professional 64 bit + IE 11での操作です。

テーブル内にダウンロード用リンクが複数(*および青文字のアルファベット部)あり、
それらを自動でひとつずつダウンロードしようとしています。
s1.gazo.cc/up/179236.jpg

画面の状態までは持ってこれたのですが、どうしても赤枠で囲った保存(S)を
押すことが出来ません。サンプルコードも試してみたのですが、
理解不足かIE, OSのバージョン違いなのか、上手く動作させられませんでした。
クリックすると緑枠部に一瞬新しいタブが出来ているのでそこが関係あるのか、
或いはCLKITEM部が間違っているとは思うのですが……。

A = 0
Repeat
DLLTEXT = IE.document.links[A].innertext
   IfB DLLTEXT <>

805 名前:名無しさん@お腹いっぱい。 mailto:sage [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〜部は、ソースを確認したところ見えないリンクがあったので、それを回避しようと思い付け加えました。

長々とすみません。よろしくお願いします。

806 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 04:46:22.39 ID:mSZ5heBH0.net]
IEの "ファイルのダウンロード" にて "保存" ボタンが反応しない  #N23
www.uwsc.info/faq.html#N23

807 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 07:01:07.94 ID:pMN1suyz0.net]
エクセルのマクロでリンクを取り出してファイルに書き出して、ロダに食わせるほうがいんでないのかね

808 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 07:34:10.51 ID:uRkQmwxK0.net]
>>760-761

ありがとうございます。
#N23は試してみたのですが、上手く出来なかったのでWin7だからかIE11だから無理なのかと
思っていたのですが、何か間違えていたのかもしれません。

エクセルマクロの方は考えてもいませんでした。
あまりに手間取るようなら別の方法を試したほうがいいですね……。

もう少し自分でやってみます。ありがとうございました。

809 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 07:53:15.84 ID:mSZ5heBH0.net]
であればクリックに必要なタイトル、クラス名を調査用のスクリプトを書いて調査したり
開発環境にあるSPY++をつかって調査したりすると良いよ

問題点は
保存ボタンがあるウインドウ(ポップアップ)のIDが取得できていない
保存ボタンのアイテム名が正しくない
のどちらかだからね

後、リンクのクリックまで手動でやってみて
保存ボタンのクリックだけスクリプトで可能かも評価が必要

失敗するなら

IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
www.uwsc.info/faq.html#N25



810 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 07:57:24.35 ID:mSZ5heBH0.net]
あ、ごめん

リンククリック(手動)、保存ボタンクリック(スクリプト)→成功
リンククリック(スクリプト)、保存ボタンクリック(スクリプト)→失敗

なら

IEの操作(COM)にて、ダイアログが出ると動作が停止する  #N25
www.uwsc.info/faq.html#N25

の対処も必要かも

811 名前:名無しさん@お腹いっぱい。 mailto:sage [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これいらんのとちゃうんか

812 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/01(火) 22:50:42.13 ID:HDjL1sAH+]
>>763-764
親切にありがとうございます。
SPY++はVisualStudio?を持っていないので用意できなかったのですが、
類似のuuSPYを使用して調べたところ
親の"IEFrame"→子"Frame Notification Bar"→孫"DirectUIHWND"というクラス名の
ダイアログだと分かったので、そこから調べて操作できるようになりました。
問題点の洗い出し方も勉強になりました。これでもう少し自分で調べて解決できるように
なれそうです。

>>765
サンプルまで用意して頂きすみません。
実際に動かしてみたのですが、やはりIDが取得できていないのか
押してくれず……。

お二人とも親切にありがとうございました。

813 名前:749 mailto:sage [2016/03/02(水) 01:27:17.46 ID:41jBzZAb0.net]
>>763-764
一応動作させることが出来ました。
結果的には、保存ボタンのウィンドウIDが取得できていなかったようです。
(クラス名IEFrameだと思っていたのですが、ダイアログは別の名前でした)
SPY++はVisualStudio?を持っていないので用意できなかったのですが、
uuSPYという類似ソフトで調べられました。
SPY++的なソフトの存在(というか問題の洗い出し方?)すら知らなかったので勉強になりました。
丁寧にありがとうございました。

>>765
サンプルまで提示して頂き、すみません。
流してみたのですが、やはり反応せず……
ダイアログが出た後もそのまま動いていったので、
動作停止したわけでもなさそうなんですが……
ともかく、ありがとうございました。

814 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/02(水) 20:36:33.34 ID:TfJohTOi0.net]
A.bmpがあったとき 
Aからx+30、y+30の場所にB.bmpがあったときのみC.bmpを押す

画像範囲について検索しましたが画面全体から範囲を指定するみたいですし
Aはいろいろな場所に現れます Bは複数現れます
Aから相対座標で検索範囲指定するためにはどうすればいいのですか?

815 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/02(水) 20:39:40.47 ID:yBkd0HNE0.net]
>>768
【ヘルプより引用】
座標情報は配列変数 ALL_IMG_X[], ALL_IMG_Y[] に格納(配列はゼロから)

B探してから配列変数をコピー
ループさせながら相対範囲指定でAを探して
あればCをクリックしたら良いんじゃないかな

816 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/02(水) 21:39:50.37 ID:TfJohTOi0.net]
ありがとうございます いろいろ試してみます

817 名前:名無しさん@お腹いっぱい。 mailto:sage [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

格納がよくわかんないし雑だけどこんな感じは

818 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/03(木) 12:50:46.44 ID:Ck6IE5Sq0.net]
PCからスマホの内臓ストレージにファイルやフォルダを転送したいです。
アイテムには日本語が含まれているため、DOSCMD+ADBでは文字化けしていたので、
[MultiByteToWideChar][WideByteToMultiChar]を組み合わせましたが、
半角スペースや特定の文字のため、転送ができませんでした。

何か回避策はないでしょうか?

819 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/03(木) 14:01:05.13 ID:0xlIg63T0.net]
よく知らんから適当いうけど、コマンドプロンプトのshift_jisをUTF-8にするとかで解決しない?



820 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/03(木) 14:38:58.59 ID:o8n0++8T0.net]
UWSCってどう?
ブラウザとか制御しにくい気がするんだけど

821 名前:名無しさん@お腹いっぱい。 [2016/03/03(木) 16:23:03.08 ID:Ck6IE5Sq0.net]
> 759
それも試しました。
CHCPでSHIFT−JISからUTF-8に変換して、書き込みに行ったんですが、
UTF-8化した文字列が受け付けませんでした。

822 名前:名無しさん@お腹いっぱい。 [2016/03/04(金) 02:14:39.26 ID:EA8iP2810.net]
すみません、助けてください
bluestacks uwscをつかって自動化しようとしてるのですが
uwscのクリックを認識?してくれません
マウスでツムツムの操作は普通にできます。
bluestacksの代わりにエクセルを起動させておく(画面に表示)とクリックも認識してくれています。
非アクティブの問題かとおもいアクティブ化もいれてみましたがだめでした
助言お願いいたします

823 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 02:49:01.44 ID:sp+52hH20.net]
UWSCが使いないアプリもある
bluestacksはそれ
以上

824 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 04:06:59.33 ID:32k0gAq70.net]
genymotionで散々やったけど無理だったよ
ウィンドウは掴めるけど内部idが掴めない

825 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 09:01:58.98 ID:lSRUIbNn0.net]
>>776
絶対座標は?
両方ともプロパティ-互換性-管理者として実行を試す
他にもgoogleでいろいろ試す
ダメならダメ

826 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 17:10:22.64 ID:qcabtBIu0.net]
プログラミングって具体的な目標が無いと向上しないな

827 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 19:28:46.89 ID:0avFt52T0.net]
MOUSEORG関数でMORG_DIRECTを指定するとCHKIMG関数とBTN関数の座標に
ズレが発生します。
どうせればズレを解消または補正できますか?

828 名前:名無しさん@お腹いっぱい。 [2016/03/04(金) 20:28:03.15 ID:Cx1nPm1Z0.net]
>>781
たぶん、ウィンドウ座標とクライアント座標のズレが原因だから
ウィンドウ座標を基準にすれば一致すると思う。

829 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 22:31:12.71 ID:6AjLUgCP0.net]
>>782
ウィンドウ位置を(0,0)に合わせて起動してもズレます



830 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 22:53:16.26 ID:ojY0v8Jg0.net]
>>783
たいていウィンドウには枠があるでしょ
タイトルバーとかウィンドウを広げたり縮めたりする細い線
アレが影響してると思われるから
ウィンドウ位置を00にしても・・・

831 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/04(金) 22:54:21.95 ID:1DETh6nk0.net]
これはさすがにネタだろw
uwsc以前のWindowsの基礎知識の問題だぞ

832 名前:名無しさん@お腹いっぱい。 [2016/03/04(金) 23:02:35.51 ID:Cx1nPm1Z0.net]
>>783
MOUSEORG( ID, MORG_CLIENT ) と MOUSEORG( ID ) で比較してみて

あと、CHKIMG で取得する座標は画像の左上になるけど、
検索画像と座標の間にどのようなズレがあるのか書いてね。

833 名前:名無しさん@お腹いっぱい。 mailto:sage [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

834 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/05(土) 04:31:42.39 ID:TP9s+Xc10.net]
MOUSEORG(id)とMOUSEORG(id, MORG_CLIENT)の座標逆でした

835 名前:名無しさん@お腹いっぱい。 [2016/03/05(土) 05:02:22.36 ID:PQgaMRcF0.net]
>>787
www.vuzix.jp/dev/images/asm/device_list.png
この画像と比較すると、横の枠がない状態なので
タイトルバーの幅

836 名前:の分だけ MORG_CLIENT のありなしで違う状態ですね。

MORG_DIRECT の方は訳が分かりませんね。
原因を調べるには、MORG_DIRECT を指定した状態で SAVEIMG することです。
画面が崩れて見えると思います。

画面が崩れて見えるだけで、クリックが正常に行えるなら、
MOUSEORG をその都度実行して
CHKIMG のときは MORG_DIRECT なし
BTN のときは MORG_DIRECT あり とかにすればいいと思います。
[]
[ここ壊れてます]

837 名前:名無しさん@お腹いっぱい。 [2016/03/05(土) 23:00:40.60 ID:+UaXZBac0.net]
WinnyでMP3ファイルを手に入れたのだが、10曲が1つのMP3ファイルになっている。
これを1曲ずつ10個のMP3ファイルに分けたいのだがどうしたらいいのかね?

838 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/05(土) 23:04:45.09 ID:t6t79+190.net]
うーん

わかんない!

839 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/06(日) 00:14:59.81 ID:dCUjX7lH0.net]
>>790
torスレに回答してくれてる人がいるぞクソ虫



840 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/06(日) 09:47:42.18 ID:TvpTaFVp0.net]
>>790
.zipをつけて解答

841 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/06(日) 10:49:16.69 ID:zGk8lpZo0.net]
>>790
手動でやればいいんじゃない?

842 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/06(日) 11:37:41.69 ID:RRLqddKE0.net]
10個のmp3のアーカイブならともかく、10曲が一つのmp3になってるなら
編集ソフトで切り出すしかないのでは

843 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/06(日) 12:04:50.72 ID:WY+6IsJt0.net]
なんでおまえら答えてんの

844 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 14:52:09.82 ID:9LHTjHFn0.net]
関数の呼び出しで参照引数の初期値代入とか出来ないんでしょうか?
あらかじめ先に初期値代入するしかない?

abc(hoge=111)
print hoge

procedure abc(var hoge)
 hoge = hoge + 100
fend

845 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 15:09:06.92 ID:WbyHlW0e0.net]
なんじゃそれ

abc(111)

でいいだろ

846 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 15:12:10.38 ID:WbyHlW0e0.net]
ああ、そんでhogeを続きの処理で使いたいのか
それで動かないんならできないんだろ
大人しく先に代入しとけよ
1行増えるだけじゃん
どうしてもそうしたい理由でもあんの?

847 名前:名無しさん@お腹いっぱい。 mailto:sage [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

848 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 15:58:21.83 ID:9LHTjHFn0.net]
上で挙げてるのはただの例です。
実際は参照引数が多く、引数の一部だけ初期値代入したいのと
print文は無いですね。

849 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 16:09:04.11 ID:gjVyQnvH0.net]
はげ+150本 = そんなに増えていませんよ



850 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 20:04:53.77 ID:tjYcm4Q90.net]
それは参照渡しを使うことが間違いなんじゃね?

851 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 20:20:19.36 ID:tjYcm4Q90.net]
参照引数ってのは値じゃなくてメモリの番地とかそういうものを入れてるんじゃなかったっけ?
だから参照引数に値は代入できない

852 名前:名無しさん@お腹いっぱい。 mailto:sage [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文外すと怒られるから意味が無い

853 名前:名無しさん@お腹いっぱい。 mailto:sage [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

854 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/07(月) 22:43:28.84 ID:YgJHqyxo0.net]
>>797を見ると受け取り専用とは見えなかったけど
単にその目的なんだったら>>805の人が書いてるように

Dim a,b,c...
abc(a,b,c...)
でいいんじゃないの?

855 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 0 ]
[ここ壊れてます]

856 名前:9:25:26.60 ID:X39hgh8s0.net mailto: 1つの引数に参照渡しが多すぎるのは関数分割が出来てなくて
無駄に粒度が大きすぎる疑いがあるが、UWSCの言語仕様上仕方ない面もある。
それより使用する変数については、module変数とそのコンストラクタを利用して
初期化すれば何の問題もなくスマートに書けるはず。
ただし最初からそう書いていればスマートで苦労もないが、
後から直そうとすると抜本的な書き直しとなり苦労する俺。
[]
[ここ壊れてます]

857 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 11:36:49.32 ID:mdQ0PQ+40.net]
>>808
正にそんな感じ…

参照引数が多いのは外部からのデータ取得を一気にやるせいで
その関数の内部は整理されてるんだけど。

最初は小規模なスクリプトで変数の管理とか適当で、後から書き加えていったから
今はこんなはずじゃなかったorzって状態になってて後悔してる。

858 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 14:04:27.07 ID:EYyC3Yny0.net]
質問です。
MOUSEORGを使用したバックグラウンド操作で、
マウスオーバーする方法ってありますかね?

マウスオーバーして出てくる画像の認識をしたいんだけどできぬ

859 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 15:29:09.82 ID:X39hgh8s0.net]
それはバックグラウンドのウィンドウにマウスオーバーイベントを
発生させろと言っているに等しいんだが…
これ自動化ツールよ?
まずあなたが手動で隠れたウィンドウにマウスオーバーしてみなさいよ!
とんちかな?



860 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 15:47:28.50 ID:YrarT/t10.net]
一休さんのトラの屏風の事だな

次の方どうぞ

861 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 15:52:30.08 ID:uEQeFD2u0.net]
mmvのこといってるんじゃない?

862 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 15:58:04.94 ID:/957NIFT0.net]
煽りたいだけで答えられないならちょっと黙ってろよ
俺は黙る

863 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 16:05:17.57 ID:CELrwcnT0.net]
>>811
どういう理屈だよ
元々UWSCで出来るバックグラウンド操作は手動で出来ないでしょ

864 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 16:25:16.15 ID:XRfaJMaM0.net]
バックグラウンド操作でもマウスオーバーイベントが発生するかどうかという
その対象ソフト側の問題なんだから、UWSCの質問じゃないぞ。

865 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 16:54:18.27 ID:oQSRIGCR0.net]
なんかレベル下がったなここ

866 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 17:08:25.81 ID:X39hgh8s0.net]
>>815
バックグラウンド操作は元々のUWSCのコンセプトPC操作の自動化を
あくまで拡張したものであって、
出来なくて当然のことが出来るようになった機能だよ。
それをあたかも出来て当然のように認識されても困るわな。
まぁこんなソフトが無料で使えるだけでも奇跡的なんだが。
マウスオーバーイベントをマウスオーバーせず強制的に
外から発生させることが可能なAPIが公開されてるならば、
もはやマウスオーバー画像を直接ぶっこ抜くことも出来るんじゃね?
自動操作というよりアプリハッキングだわな。
まぁこれであっさり出来ますよとかコードが出てきて
俺が逆立ちするハメになるかもしれんがw

867 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 17:29:48.80 ID:d7jVEpko0.net]
Win32ApiのSendMessage(PostMessage)等を使ってイベントを発生させる方法はあるにはあるよ
それをアプリハックと呼ぶかは置いておいて

重要なのは作業中のマウスは普通に存在し続けているって事なので
バックグラウンドだと資源衝突が発生するのでやっぱり安定しないのよ

平たく言うとスクリプトがここにマウスがあるよとした直後に
本当のマウス位置に更新されるのでここにはマウスは無いよとなる

だからよく分からなければ別PC用意して最前面でやる
仮想環境が分かるならそっちの最前面でやれ(内部的なマウス位置が存在するので資源衝突しない)がFAQとな

868 名前:チてるのよ []
[ここ壊れてます]

869 名前:名無しさん@お腹いっぱい。 [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が選ばれる理由は画像認識と操作の記録再生が簡単ってところだよ。
別に自動操縦が特別ってことはない。(特許を取ってるところはある)



870 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 17:41:37.94 ID:EYyC3Yny0.net]
>>811-817
無知でごめんな
>>818-819
詳しく教えてくれてありがとう
やっぱり仮想環境構築か物理的にもう一台PC用意するのが手っ取り早いってことですね
仮想環境構築してやってみます

871 名前:名無しさん@お腹いっぱい。 mailto:sage [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,

872 名前:名無しさん@お腹いっぱい。 mailto:sage [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させるには
どうしたらいいでしょうか。

873 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 18:06:11.90 ID:mdQ0PQ+40.net]
ユーザー作成関数を組み込み関数であるかのように書かれても…

874 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 18:10:36.84 ID:mdQ0PQ+40.net]
あとそれスレッド1とスレッド2とほぼ同時に走るから実質同じものかと

875 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 18:16:33.76 ID:X39hgh8s0.net]
たしかUWSCのスレッドは、スレッド無いから呼び出したユーザー定義関数を、
そのスレッド内で実行しなかったような気が?
引数だけで算数して結果を返すだけのようなリエントラントな関数ならいいけど、
Windows上のリソースにアクセスするようなのは期待した動きをしなかった気がする。
試しに、自作関数を一時的にスレッドで呼び出すプロシージャ内に展開してやってみて。

876 名前:名無しさん@お腹いっぱい。 mailto:sage [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

877 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 18:41:58.65 ID:bSkm1Om50.net]
連投ですいません。
>>826
Windows上のリソースにアクセスするようなものではないですね。
ブラウザを2個起動した状態で同じ動作を並列処理させようとしてるのですが
>>827 の関数を使うと相対座標が片方に寄ってしまうんですよね。。。
展開すると関数が入れ子しているか、閉じていませんでエラーになります。。

878 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 18:46:18.69 ID:4EtCLtde0.net]
ID[i] = GETID(GET_FROMPOINT_WIN)

これってカーソルの下のウィンドウよね?
スレッドでほぼ同時に取得してるのにこれでIDきちんと2つ取れてるん?

879 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 18:49:12.06 ID:4EtCLtde0.net]
どっちか片方のIDしか取れてなくて2つのスレッドが同じウィンドウにMOUSEORGしているような気がする
ID二つとも確認してみたら



880 名前:名無しさん@お腹いっぱい。 mailto:sage [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側の相対座標

881 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 19:03:16.67 ID:X39hgh8s0.net]
今テストプログラムで確認してみたら、
PCが高負荷でなければスレッドがリソース云々は無かった。
それよか、各スレッドのpeekcolorが対象にするウィンドウIDが
mouseorgで指定されないから、
たまたまアクティブなウィンドウが対象になる。
ウィンドウID管理しなきゃ。

882 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 19:05:47.87 ID:X39hgh8s0.net]
具体的には、スレッドにする関数の引数にウィンドウIDを追加して自作関数呼び出す直前にmouseorg
または自作関数の引数にも追加してpeekcolorの直前にmouseorg

883 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 19:22:19.67 ID:bSkm1Om50.net]
>>830 PRINTにID表示させてみました。1と2でしっかり別れてました。
>>832 助言感謝です。さっそくやってみます。

884 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 19:24:40.32 ID:X39hgh8s0.net]
mouseorg使ってたねスマンね、きっと想定通りにウィンドウIDが取れてないんだろうね。
現在対象にしてるウィンドウIDをball0onで表示するようにしてみるといいよ
(スレッドごとに表示されるのでID*100ぐらいの座標指定して重ならないよう別位置に表示)

885 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 19:27:50.46 ID:X39hgh8s0.net]
被った、IDがいいなら後は判らんな
判定直前に対象ウィンドウをCTRLWIN(ID, ACTIVATE)してみるとか、
判定対象の位置付近にballoonを表示してみて見てるとこ合ってるかどうか確認
ぐらいかな

886 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 19:32:50.77 ID:bSkm1Om50.net]
>>836 了解です。バルーンで追うのはまだやってなかったので
バルーンでしばらく追いつつ試してみます!

887 名前:名無しさん@お腹いっぱい。 [2016/03/08(火) 19:57:44.27 ID:OiSIw5XY0.net]
>>822
CALL をスレッド関数内でやってんの?
これはスレッドで動かないんじゃない?

あと、スレッドを使うならグローバル変数使うんじゃなく
データを渡してしまった方がいい。
なんで添え字を渡してグローバル変数の配列にアクセスさせるのかわからない。
そういうのはC言語でやってください。
C言語でも配列の添え字を渡してグローバル変数にアクセスとかしないと思うけど。
普通はアドレスを渡しますね。

別にグローバル変数にアクセスしてもいいんだけど
それは変化するデータをリアルタイムにアクセスする必要があるときや
スレッド関数から値を戻すときくらいですね。
一度取得したIDは変化しないからコピーを渡してしまって構わない。

888 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 20:13:05.28 ID:X39hgh8s0.net]
それは多分ね、UWSCのスレッドとして呼び出した関数は、
戻り値を得ることが出来ないから、スレッドで取得した値を
メインから得る方法はグローバル変数しか無く、
スレッドがGETIDしたウィンドウIDをメインから見たいんじゃないかな。
CALLをスレッド内に入れるのはちょっと変態的なのは同意

889 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/08(火) 20:44:35.98 ID:bSkm1Om50.net]
返事遅れて申し訳ないです!
別の方法(スレッド化せず処理)でさっくり想定通りの結果が得られました!
無駄に難しい処理しようとしてたんだなと・・・
ハマって色々学べたのでよかったです。
>>838 今後のために参考にさせて頂きますOTZ
>>839 他皆様、ご助言たくさんいただき有難う御座いました!



890 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 17:41:50.93 ID:mQOmooo80.net]
getidで2窓で開いているIE上の同じページを区別させたいんですが、
クラス名で区別させるんだと思いますがそのクラス名が分かりません

今現在は
getid("ウインドウタイトル","IEFrame")

でやっています
どなたかお願いします

891 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 18:17:29.81 ID:llmIWy ]
[ここ壊れてます]

892 名前:Ss0.net mailto: やれているならそれで良いんじゃないの

クラス名が知りたいなら
自分で調査スクリプトを描け(個人的には最初に造るもんだと思う)
SPY++使えVisualStudioCommunityは無料でコレも付いてる
過去レスにSPY++互換ツールもあってそれを使っている人も居る

でもURLとかでクラス名は変わったりしないから一緒だよ
[]
[ここ壊れてます]

893 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 18:25:43.67 ID:sRxQkC9R0.net]
>>841 教えてヤフーにあったよ
オイラもそれでフラッシュゲームのバックグラウンド化に成功した
(´・ω・`)

894 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 18:47:20.16 ID:mQOmooo80.net]
>>842
ごめんなさい
今現在↓こう書いてるのですが、このIEFrameというのがクラス名ですよね?
getid("ウインドウタイトル","IEFrame")
二つ目のIEではこれはなんと書けばいいんでしょう?

>>843
お手数ですが、そのURL教えてもらえませんか?

895 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 19:04:38.44 ID:sRxQkC9R0.net]
おいおい それぐらい自分で探しなよ
オイラはそれを保存してるからもうそのページに用はないんだよね
(´・ω・`)

オイラもフラッシュゲームのバックグラウンド化について
検索しながら試行錯誤しながら廻りまわってたどり着いたんだよね

オイラたちはヒントをだす
あとは自分で調べる、試す これは基本だよ

896 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 19:26:22.70 ID:llmIWySs0.net]
一般論として
クラス名は単なるウインドウの種類の宣言でしかない
従ってほぼ全てのアプリで2つ目のウインドウだからといって違うクラス名になったりはしない
それぞれのウインドウはIDで区別される

UWSCの機能だけでやろうとしたらGETALLWINを使ったりする

個人的にはIEのタブを探して操作するなら
SHDocVw.ShellWindows から目当ての SHDocVw.InternetExplorer を見つけてCOM操作するけれどね

どっちにしてもいきなり二つ目のウインドウってアクセスは出来ない
IEのウインドウをループで回して対象URLのウインドウをピックアップして集めてから
その何個目ってしないと駄目

897 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 19:28:29.35 ID:llmIWySs0.net]
で、面倒臭いなと思ったら半自動スクリプトにしたら良いんだよ

スクリプトの最初に操作対象をクリックして下さいとか表示するとかね
完全自動化はそのための知識が揃ってからチャンジしたら良い

898 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/09(水) 19:59:37.81 ID:ZH6SCA5x0.net]
UWSC公式サイトのFAQに載ってる毎度の質問だな

899 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/10(木) 00:09:29.62 ID:kbf2APsQ0.net]
canal22.org/kansu/getctlhnd/



900 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 02:09:47.22 ID:vpN6R87y0.net]
AutoHotKeyとの違いってなに?
こっちに出来て向こうにできない、またはその逆とか

901 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 02:24:04.07 ID:q9CfIyKs0.net]
日本語変数は無理なんじゃないかな

902 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 02:34:58.77 ID:ZLCOlBAo0.net]
自作関数をEXITで抜けるみたいに、CALLで呼んだものを途中で抜けるってできるの?

903 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 03:46:02.49 ID:fLUkQ1x50.net]
EXITじゃないの?

904 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 03:53:20.39 ID:8BXL68Gt0.net]
CALLが何かを全く理解してない奴って多いよね

905 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 13:22:41.14 ID:TzmisRaw0.net]
「呼んだもの」のなかで途中で抜けるように作れば抜けるし、最後までやるように作れば最後までやるだけだが。

906 名前:名無しさん@お腹いっぱい。 [2016/03/11(金) 15:51:14.74 ID:9MIhB+Zw0.net]
Firefox系ブラウザ って
FLASHブラウザゲームに
MOUSEORGのMORG_DIRECTって使えないの?
BTNが反応しませんでした
Chromeは使えましたが、
Chromの方は、MORG_BACKがCHKIMGで認識しませんでした

907 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 17:05:56.39 ID:xL247s8c0.net]
煽りじゃなくて頑張った結果が使えないのなら使えないのでしょう

ブラウザはIE以外はマルチプラットフォームのため標準コントロールを使用していないし
裏になったら再描画しないパターンもあるしね

裏動作は出来る時もある位の気持ちで
仮想化環境を使って最前面か別PCが安定ってのがFAQだよ

908 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 17:41:53.19 ID:uLXjBvrS0.net]
hoge=

909 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 17:52:21.69 ID:uLXjBvrS0.net]
すいません、NGワードで弾かれたっぽいです


hoge="あいうえおあいうえお"

上記変数の、左から5番目の「お」だけを
「ん」に変えたいんですけど、そんな命令ありますか?
置換命令のREPLACEだと、番号指定は無理ですよね?

hoge=COPY(hoge,1,4)+"ん"+COPY(hoge,6)
遠回りな気がしますが、こんな感じにするしかないんでしょうか?



910 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 17:57:29.45 ID:8eZkzZWt0.net]
仮想化はOS用意しないといけないからなあ
linuxとか無料らしいからそれ使えればいいけどな

911 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 18:21:03.26 ID:xL247s8c0.net]
>>859
それしかないって事はないけれど特に近道も無いよってのが答えだと思う

VBSの文字列操作用や正規表現用のオブジェクトを生成して処理したり出来るが
特に行数が減るわけではない(寧ろ増える)

昔と違ってメモリを節約する努力なんて不要なんだから
行数や命令を減らす努力はそれ程重要じゃない
最適化しすぎて同じ結果になるけれどやりたい事との文脈が違う場合とか
後から見ると混乱のもとになるからね

メインの処理のやりたい事が「文字列のn文字を入れ替える」なら
そういうユーザ関数を作成して抽象化したら良いのよ

912 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 18:28:44.96 ID:HWMGVE3/0.net]
遠回りどころか、処理的には replace よりむしろ近道なのでは

913 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 19:10:33.56 ID:9aIMxtHY0.net]
>>856 ただのバックグラウンドならできる
(画面が隠れてたり最小化だとできない)
クラス名を取得してハンドルする
教えてヤフーにやり方のヒントがある
(´・ω・`)

914 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 19:19:08.73 ID:LoB9QIb70.net]
バックグラウンドと画面が隠れていることの違いって何

915 名前:名無しさん@お腹いっぱい。 mailto:sage [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が反応してくれない。それってあり得るんですかね?

916 名前:名無しさん@お腹いっぱい。 mailto:sage [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秒くらいの間隔で連打させたいのですが何を弄ればいいのでしょうか?

917 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 23:37:24.40 ID:q9CfIyKs0.net]
0.3秒+500ミリ秒+0.1秒=0.9秒

当たり前の話でんがな

918 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 23:40:11.60 ID:q9CfIyKs0.net]
間違えたハズカシ
つかchkimgは範囲が広いとそれだけ時間かかるからPCのスペック次第で時間が変わる

919 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/11(金) 23:55:24.06 ID:V+G/WUuc0.net]
>>868
なるほど、処理が追いついていないと
そこそこのスペック持たせてるはずなのに画像認識の処理ってけっこうパワーいるのに驚きです



920 名前:名無しさん@お腹いっぱい。 [2016/03/12(土) 00:22:19.71 ID:vIYJtZWi0.net]
× BTN(LEFT,CLICK,1000,500)

○ BTN(LEFT,CLICK)

921 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/12(土) 00:58:30.41 ID:JA7kK ]
[ここ壊れてます]

922 名前:oOW0.net mailto: >>870
その場合どうやって座標の指定をするので?
[]
[ここ壊れてます]

923 名前:名無しさん@お腹いっぱい。 [2016/03/12(土) 05:37:53.21 ID:vIYJtZWi0.net]
あ、つい。数字をミリ秒と読んでしまって。

画像を小さくして範囲を絞れば速くなります。

範囲を絞るために GETID() で対象ウィンドウを特定して
STATUS() で座標を取って CHKIMG() で範囲を指定します。
MOUSEORGで基準座標を対象ウィンドウにすれば
範囲は 0, 0 からサイズ x, y で指定できるので楽です。

他の方法としては
数ドットの色だけで判定できる場合は
検索範囲の画像を SAVEIMG() でクリップボードにコピーして
クリップボードから PEEKCOLOR() で検索すると早いです。
でも、数ドットで済むようなら1秒もかかってませんね。

924 名前:名無しさん@お腹いっぱい。 mailto:sage [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要らないのでは

925 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/12(土) 12:51:15.36 ID:ah+GWDsu0.net]
ヒント@
ループ開始時に開始時間を記録
その他のボタンクリック前の時間と開始時間を引いて経過時間を記録
経過時間が300ミリ秒以内ならその時間だけスリープ

ヒントA
DEF_DLL timeGetTime(): LONG: winmm.dll //ミリ秒単位の時間を取得
(わざわざwin32api使うのはUWSCは経過時間の取得は小数点(割合)になるので直感的じゃないから)

926 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/12(土) 12:54:01.60 ID:fkR2rJoF0.net]
まあ今回の場合、処理が0.6秒位かかっているようだから
スリープ0にしたところでダメだし時間測るのは無意味と思うけどね。

どちらかというと範囲制限の方が有効だろう

927 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/12(土) 13:11:01.48 ID:ah+GWDsu0.net]
それ前提のつもりでした言葉足らずだったね
0.3秒感覚でクリックしたいならそうなるようなロジックが必要ですよと

928 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/12(土) 20:47:24.15 ID:XzxPU9E/0.net]
タイミングはシビアになるかもだけど、Thread()で0.3秒ごとにクリック
メインではChkimg()してヒットしたらフラグを立てて
Threadのほうのクリックを抑止してメイン側でクリック
とか?

929 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/13(日) 01:10:40.53 ID:yStCxW+O0.net]
まず最初にみんなありがとう
せっかく教えてくれるのにごめん
ミジンコにとっては半分近くが呪文だったのです

>>872
もうちょい画像絞ってみます
知らない関数もあるのでそれも調べてみます

>>873
sleepよりも何よりもelseifの存在を忘れてた自分が馬鹿でした
適当なサイトのコピーから改竄してたのですがこれでC+齧ってたのかと思うと恥ずかしいです

>>874
誤差分だけスリープなんてできたんですね
>>875さんの件も含めて考えて、それで処理時間含めての最短を設定できるように調整してみます

>>877
並列は考えたのですが他の作業中に「そこ」をクリックされると困るので破棄しました
それを破棄した理由が連打させたい時に画面には決まった画像というのがないという事なのです


拾い物の改竄だけだと何も身につかないと再確認して自分を恥じます
勉強しなおして出直しますのでその時また困ったらお力をお貸しください



930 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/13(日) 05:59:29.63 ID:Oa7DQQ9u0.net]
chkimg3つをそれぞれ別スレッドで動かして
発見フラグが一つもない時だけ1000,500をクリックでいいのでは
これなら今どきのマルチコアCPUなら3倍速で動くはず?

931 名前:名無しさん@お腹いっぱい。 [2016/03/13(日) 10:3 ]
[ここ壊れてます]

932 名前:4:38.97 ID:5BxruRGM0.net mailto: いまどきの Core i5 でも安いのは物理2コアなので3倍速になんてなりません。
タスクマネージャで4コアに見えても、2つは論理CPUかもしれません。

仮に4コアあったとしても、3コアをUWSCが独占したら残り1コアでアプリが動くわけで
ちょっと重すぎますね。

どうしてもクリック速度を上げないといけないなら
画像を工夫するか、ほかの画像処理ツールを使うべきでしょう。

UWSCだと3つの画像で3回キャプチャしますが、
キャプチャをして画像比較を別の画像処理ライブラリを使って比較すれば
1回のキャプチャで3回比較できます。
が、UWSCで比較しても遅いので高速な言語を使う必要が・・・
[]
[ここ壊れてます]

933 名前:名無しさん@お腹いっぱい。 [2016/03/13(日) 10:38:41.65 ID:5BxruRGM0.net]
ARToolKitで複数マーカーを使ってみた
https://youtu.be/uoncHfnYWHM

ARToolKitを使った 「拡張現実感」
kougaku-navi.net/ARToolKit/

これだけグリグリ動くんだから
ビットマップの完全一致くらい一瞬じゃないとおかしいんだけどね。

おまけ
astertune.com/?p=1374
> OpenGLより高速で、iOSに特化したMetalというAPIが昨年登場 (2015年8月30日の記事)

codeit.blog.fc2.com/blog-entry-18.html
> SSE を使用することにより約二倍の高速化が見込まれ

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を使うようにした。それとソースコードを追加

934 名前:名無しさん@お腹いっぱい。 [2016/03/13(日) 10:40:01.87 ID:5BxruRGM0.net]
やっぱりシンプルで高速なライブラリってのは他にないんだな。
シンプル過ぎてな。

935 名前:名無しさん@お腹いっぱい。 mailto:sage [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は片方の条件を見つけた時点で以降の条件は探さないらしい
これで動いてくれると思う

936 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/13(日) 13:44:27.34 ID:MyuwQ+3+0.net]
>>883
それ一緒だから。

実質スリープ無くしただけ

937 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/13(日) 14:35:12.26 ID:0ijLe2jo0.net]
UWSCのSHORTCIRCUITはオール・オア・ナッシングで
副作用への注意が必要だからあまり好きじゃない

短絡評価の条件式があれば良いんだけれどね

938 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/13(日) 16:32:38.86 ID:nEkRwzyP0.net]
ただの秒数設定ミスのクソ質問かと思いきや微妙に建設的な質問になっててワロタ

939 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/13(日) 16:45:35.50 ID:E0WmGTEK0.net]
>>878
いろいろな事を考えると



940 名前:elseifでは対応できない場合も想定されるから
総合的に考えると
else
if
のままのほうがいいみたい?
まぁその分endifが増えるんだけど
[]
[ここ壊れてます]

941 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/14(月) 19:14:44.98 ID:i2rVe3gR0.net]
それは総合的に考えるモノじゃないだろう
必要に応じて使い分けるだけで

942 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/14(月) 22:57:21.23 ID:yWL5pN6J0.net]
保守のやりやすさまで考えるとelseif一択
else ifのほうが綺麗に書けるケースはちょっと思い浮かばない

943 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 01:55:30.43 ID:47j5cpZS0.net]
個人的にifは二択のときだけ
それ以外の選択肢が増えそうなときとかはcase文の方を使いたいとこだ…。

944 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 03:45:02.21 ID:SCAnh7Td0.net]
ifとcaseでは明確に用途が違うような。

945 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 03:50:19.31 ID:dAPydsp10.net]
俺はcaseは限定的な時にしか使いたくないな
逆にそれ以外はif分岐させてる

946 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 04:07:47.33 ID:SCAnh7Td0.net]
いやいやいや
caseはひとつの条件式の結果で分岐するもので
elseifは複数の条件式を使うものでしょう?
かぶる部分も無いではないけど、普通は用途で決まるような。

947 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 05:28:13.13 ID:47j5cpZS0.net]
確かに用途でも決まるね。。
俺が想定してのが単純な一つの値の判定だったから混乱させて申し訳無い

複数の判定が一つの条件式にあると
後から読みにくかったり理解しにくくなったりしそうで
ifの中には一つの判定だけをなるべく書く様にしてるからつい…。
中にどんどんif入れてくのも同様の状態になるから入れ子は少なくすることを検討した作りにしてる

948 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 11:35:32.40 ID:Ye8AnKp+0.net]
caseはbreakさせないって使い方もあるから、一概にどっちがいいとは言えないね

949 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 11:57:04.20 ID:RI0XNTAs0.net]
なるほど思い出した



950 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 13:32:13.65 ID:H7Ch8AYF0.net]
UWSCのSELECTはフォールスルー使えなくない?
ELSEIF連鎖はメーラーの振り分けみたいな優先順位付き判定群だから使い道が違う。
SELECTは1つの判定で複数の分岐。
UWSCのSELECTは、SELECTに書く式を空にして、CASE側に判定式書いても使えるんで、
ELSEIFと同様のこともできるってだけ。

951 名前:名無しさん@お腹いっぱい。 mailto:sage [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って表示されちゃう。エラーも出ん。

952 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 14:44:41.61 ID:zE0f+pvP0.net]
空は無理だけど
Select trueとかにしておけばいける

953 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 14:51:16.05 ID:215if6Wy0.net]
Selectの式の結果 と Caseの式の結果が
最初に一致するCase文が実行される感じなんかな

954 名前:名無しさん@お腹いっぱい。 mailto:select [2016/03/15(火) 15:13:32.26 ID:H7Ch8AYF0.net]
すまんね空は無理だった
ご指摘の通りtrueにすれば、式がtrueとなる最初のcaseが実行され、
空欄もしくはfalseだと、式がfalseとなるcaseが実行されるね。

955 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/15(火) 23:51:21.72 ID:PCeK8oit0.net]
CHKIMGで画像判別 一致したら then で
SOUNDでmp3を再生にしたんですが
音が出たり出なかったり
SLEEPでウエイトを入れたり 構文に trueにして同期させたりしても変わらない
レジストリ関係なのかな?
どこを弄れば直るんでしょうか?

956 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 07:35:12.72 ID:LJ+euZnJ0.net]
画像判別ができてないのか、音が出てないだけなのか切り分けできてんの?

957 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 08:34:48.88 ID:nAh2yAGb0.net]


958 名前:PにChkimg()で一致してないだけじゃないのか []
[ここ壊れてます]

959 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 08:56:46.03 ID:yzWTIl7F0.net]
あるある



960 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 10:52:10.44 ID:8JIJQW6i0.net]
Windows7では問題なく動いていたのですが
仮想環境のWindows Vistaでは一部画像認識が上手くいきません
同じく仮想環境下のWindows7では問題ありませんでした
認識しない画像をVista内で切り取るとうまくいくのですが
それでは膨大な作業量になります
ご助言をお願い致します

961 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 11:09:21.22 ID:/XbN41Fg0.net]
chkimgの色幅を試す
ChkImgXを試す
照合画像を造り直す

基本的にグラフィックドライバでイメージは変わる可能性があるという事を覚えておこう
だから使用する環境でキャプチャするのが鉄板

962 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 11:16:46.80 ID:8JIJQW6i0.net]
ありがとうございます
ちょっと量が量なのでWindows7のライセンスもう一つを購入したいと思います

963 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 18:04:20.19 ID:2Mv7Yb1h0.net]
>>907
グラフィックドライバで変わるのか
キャプチャのやり直しは正直疲れる

964 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/16(水) 19:52:25.50 ID:0mxs1TOv0.net]
変わるんだよな〜 アンチエイリアスなんだろうな。
あとOSやブラウザの変更でフォントも変わることがあり、
文字列取得できなくて画像判定で代用してるとハマるね〜
環境で変わるのに対抗するのにも、一番有効なのは仮想化。

965 名前:名無しさん@お腹いっぱい。 mailto:sage [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でこういう事は絶対出来ないんでしょうか?

966 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 15:05:30.02 ID:Y8LfVAQe0.net]
for は 初期値 終了値 加算値 をシンプルに表現してループさせる構文なので無理

967 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 17:26:15.26 ID:Dic6Ty9l0.net]
if i<k then continue
...
if array[j]=t then k=i+t
とかじゃだめ?

968 名前:名無しさん@お腹いっぱい。 [2016/03/18(金) 18:48:34.55 ID:37KGhb4W0.net]
申し訳ない・・・知恵を貸して下さい・・・。

やりたい流れのイメージ
@一致画像をクリック

画像判断。画像によって条件分かれ
(ここの作り方が不明・・・)

B一致画像をクリック

C一致画像をクリック

969 名前:名無しさん@お腹いっぱい。 mailto:sage [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」へ移行
――――――――――――――――――



970 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 18:51:32.08 ID:37KGhb4W0.net]
素人すぎて正しく伝わっているか心配ですが、
アドバイスを貰えると有り難いです・・・。

971 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 18:56:09.29 ID:37KGhb4W0.net]
尚、
「@」最初の動作にへ戻る、
又は「B」へ通常移行。
又は「B」をスキップし「C」へ移行

この3パターンは「3個同時で判定」ではなく、
全て「単体」で動作させる事を前提とした場合のスプリクトです。

972 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 19:01:31.23 ID:JI+YMOVs0.net]
そうだね!がんばれ!

973 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 19:13:18.26 ID:cs2HMD100.net]
フローチャート作って

974 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 19:14:32.75 ID:37KGhb4W0.net]
>>919
了解致しました。
少々お待ち下さいませ。

975 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 19:44:54.92 ID:37KGhb4W0.net]
>>919
お待たせしました。2パターン作りました。
画像Cからのジャンプ先は@にしてますが、場合によってBやCにも変えたいです。
www.dotup.org/uploda/www.dotup.org783399.jpg
www.dotup.org/uploda/www.dotup.org783402.jpg
シンプルに作ってみたのですが、どうでしょうか。

976 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 20:28:40.25 ID:3mTNmK/i0.net]
そこまで出来てるならそのままコーディングすればいいだけじゃ?

977 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 20:41:45.76 ID:XTMTGWl20.net]
>>922
元々スプリクトを使わない自動化ソフトを使っており、頭の中で流れの構築は出来ているのですが、
スプリクト上に起こすのがどうしても難しく、、。
頭でイメージ出来ているのに、絵に描けない状態です、、、。

978 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 20:49:53.51 ID:wiffpfVZ0.net]
@, B, C をそれぞれ関数化するといいような気がするよ

979 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 21:06:54.37 ID:a/2iCbr10.net]
>>921です。
正直センスが無さ過ぎて、見せるのも恥ずかしいのですが・・・。
一応途中まで作ったスプリクトです。
www.dotup.org/uploda/www.dotup.org783529.jpg



980 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 21:43:41.41 ID:p+rJK2780.net]
>>925
画像1と画像2の関係性は?
画像1をクリックしたら画像1が消えて画像2がでてくる?
画像1をクリックしたら画像1も画像2も表示されてる?

981 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 22:12:44.85 ID:a/2iCbr10.net]
>>926
画像はクリック毎に、前の画像は消えて、
次は必ず決まった画像が一個出ます。

画像判断の所だけ、別の画像が出てくる場合がある為、
この様な条件付き画像判断スプリクトを組み込む必要があります。

982 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/18(金) 23:36:00.24 ID:lyGpkKZO0.net]
たぶん、"IF"ってのの使い方を勉強するといいと思う

983 名前:名無しさん@お腹いっぱい。 mailto:sage [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
こういう感じ?

984 名前:名無しさん@お腹いっぱい。 mailto:sage [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

985 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 00:08:39.27 ID:BW58rut60.net]
フローチャート作れるならトライアンドエラーで頑張れ

986 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 01:41:22.95 ID:bIkT5e8S0.net]
>>930
素人の私でもめちゃくちゃ分かりやすいです、激しく感謝します!
動作確認してみましたが、全く問題なく希望通りの動きをしてくれました!

最後にもう一つだけ教えてください・・・。画像Cの後に「wend」を持ってきて
一番最初の「while true 」に戻らせてループさせようとしたらエラーが出ました。
これは何が原因になるのでしょうか??

987 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 01:43:58.70 ID:4bvWfFXm0.net]
whileとwendは必ず1個ずつのセットじゃないとだめ
一連の処理を繰り返させたいなら、wendを画像Cの下に置くだけじゃなくて最初のwhileの更に上にwhileを置かないと

988 名前:名無しさん@お腹いっぱい。 [2016/03/19(土) 01:56:50.27 ID:bIkT5e8S0.net]
>>933
私も最初そう思ったんですが、なんかエラーが出たのであれ・・?と思いまして
www.dotup.org/uploda/www.dotup.org784002.jpg
こういう事ですよね?

989 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 02:07:08.90 ID:FgddRy/I0.net]
trueが無いじゃん。



990 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 02:07:45.33 ID:4bvWfFXm0.net]
ワロタ

991 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 02:08:06.81 ID:jrQgNiRM0.net]
最初のwhileの条件が無いとか?
ヘルプで分かる内容は質問しない方がいいよ

992 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 02:35:41.05 ID:bIkT5e8S0.net]
while true
初歩的なミスでした、、、申し訳ないです。
皆様のアドバイスのお陰で

993 名前:本当に捗りました。
繰り返しになりますが、有り難うございます!
wend
[]
[ここ壊れてます]

994 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 02:56:04.14 ID:tZvnxb2Q0.net]
インデント入れろよ。

995 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 03:59:10.94 ID:aYU7I2EX0.net]
みんな優し過ぎてww

996 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 08:12:31.88 ID:BINz+wH10.net]
優しいな
俺がこんな質問した時は完全スルーされたぞ

997 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 08:20:59.56 ID:fFrQFvev0.net]
自分でコードを書く努力している人だからでしょ

998 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 11:07:56.96 ID:YmXGVn/20.net]
フロチャート作ってちょっとづつスクリプトを書いてまめにテストする
オイラの経験上ifb while たまにbreakでたいがいのゲームは動く
コツは最初はsleepに余裕をもって書く

パートを分けるんだな 戦闘、補給、修理 これらをcallで呼び出す
そうするとイベントやりながら通常戦闘もできるぞ
ゲームの完全自動化までがんばれ
(´・ω・`)

999 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 11:21:09.91 ID:YmXGVn/20.net]
あとゲームにありがちな点滅、明滅するボタン
ボタンの上に光がもやもやしてたり炎がメラメラしてるときは
他の安定してる画像をchkimgしてそこからx+A y+Bするときっちりボタン押せるぞ
(´・ω・`)



1000 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 14:27:55.04 ID:7vlPDXm10.net]
>>944
そういうのは短い時間でchkimgを繰り返せば認識できるぞ

1001 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 14:43:51.18 ID:w1t+Hd6h0.net]
>>945
それするぐらいなら>>944のほうが確実

1002 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 14:54:36.33 ID:7vlPDXm10.net]
>>944では通用しないケースは割とあるからな

1003 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 20:11:11.15 ID:BINz+wH10.net]
メラメラはいつもは諦めてほかの画像からの相対座標使ってますけど
メラメラは一致するまでwhile chkimgでいいのですか?
メラメラは私も苦手です

1004 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 20:26:21.82 ID:71k0Vm/10.net]
色幅を持たせてchkimgすればいい

1005 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 20:52:39.80 ID:BINz+wH10.net]
>>949
ありがとうございます。感謝します
もう一つ質問失礼します
今色幅IMG_MSK_BGR4でやったのですがもっと広げる方法ありますか?
メラメラが水色-黄色-赤みたいな感じのメラメラです

1006 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 20:57:57.92 ID:bgGs7ybY0.net]
そこまでは無理

1007 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 21:02:17.45 ID:BINz+wH10.net]
>>951
ありがとうございます。素直に相対座標を使います

1008 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 21:04:56.10 ID:szW1lJKS0.net]
色無視入れたらどう

1009 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 21:49:17.82 ID:BINz+wH10.net]
gifのメラメラは色幅と色無視両方1秒以内で認識しました
FFのような(画像?)メラメラはどちらもダメでした。10秒タイムアウト

では失礼します



1010 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 21:50:22.43 ID:71k0Vm/10.net]
>>950
定数じゃなくても、自分で好きな数値指定できるよ

1011 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 22:48:20.75 ID:ejAiv50P0.net]
不特定多数の場で堂々とゲームの自動化を口にするでないグラブル厨か?
ぼかして言うのが作法だぞ。
作法を守らないならネトゲそのものが嫌になるような脱洗脳スクリプト貼るからな。

1012 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/19(土) 22:49:54.86 ID:ejAiv50P0.net]
にしても本当にフローチャート書いてくるのは珍しいな。
構造文もまともに知らない時点でこれなら十分適正あるな。

1013 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 02:13:45.61 ID:PtQjd96F0.net]
以前まではここでゲームの話題はNGだったんだけどね
質問者も変われば回答者も変わった

1014 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 02:49:33.10 ID:157+05md0.net]
その以前の前のことも知らんのか
ほんとに変わったな

1015 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 07:39:38.49 ID:6LNOBso90.net]
peekcolor関数を使う際に範囲が 指定できますが、
マウスカーソル周囲を指定することってできないのですか?

1016 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 07:45:07.67 ID:6rS3nJ0Q0.net]
範囲でない座標のみ
そしてマウス座標は特殊変数に入っている
ヘルプの スクリプト→スクリプト関数→特殊変数 辺

1017 名前:りを見ろ

あと本当に周辺を調べたいなら
PEEKCOLORをループさせるユーザー関数化する必要があるぞ
[]
[ここ壊れてます]

1018 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 08:00:40.40 ID:6LNOBso90.net]
ありがとう
マウス座標そのものではなく、
マウス座標から、その周辺を調べたいんです

最終的にPEEKCOLORでマウス座標周辺の色を取得し続けるという動作をしたかったのですが
すみませんPEEKCOLORをループさせるユーザー関数とは、どんなものでしょうか
もう少し詳しく教えてくれませんか

1019 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 08:17:15.47 ID:h63WLHEt0.net]
フローチャートじゃなくてそのまんまコードじゃん



1020 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 08:51:03.34 ID:6rS3nJ0Q0.net]
考える事を否定している人にはヒントすら惜しいなぁ

マウス座標は特殊変数に入っている
マウス座標の周辺とは矩形であれば−10と+10とかで表現可能
Forは変数に初期値、終了値、増減値を設定してループ可能

後はユーザー関数の引数と戻り値かな
判断材料(引数)とその結果(戻り値)なんで
同じ色が複数あった場合にどうしたいかとか
考えることは色々あるよ

1021 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/20(日) 16:51:23.89 ID:xNax6tI9f]
peekcolorが遅い。
具体的には1点15msくらいかかる。
UWSCが全体画像取得から1点取り出して調べてるから遅いんであって、
ある程度範囲をまとめて取得したいってのがこの質問の趣旨じゃないかな?

そんな方法ありませんか?
ないです。

このスレにある画像判定Xを使うと、3つの画像判定が1回分の画像判定の処理速度でできたりとかするんですか?
それなら画像をドットにして代用できそうですが?

1022 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 19:07:10.29 ID:7t5Ndceu0.net]
>>932です。以前、皆様より頂いたアドバイスを元に自分なりにスプリクトを考えてみました。
一応希望通りの動作はしてくれる為、内容としては完成しました。
もしよろしければ「もっとこうしたらいいよ」「こういうやり方もあるよ」等
厳しいお言葉でも結構ですので、アドバイスを頂けると幸いです。
www.dotup.org/uploda/www.dotup.org787636.jpg
www.dotup.org/uploda/www.dotup.org787638.jpg

1023 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 19:43:31.70 ID:FyEV7Y7F0.net]
斬新なインデントですね

1024 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 19:49:10.85 ID:WT79cWH60.net]
エクセルかこれ…?

まずはまともなテキストエディタを拾ってくるのが先だろ

1025 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 19:54:36.21 ID:JOINNpX40.net]
やっぱりゲームか・・・

1026 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 20:02:44.88 ID:ZoeE04qr0.net]
>>967
インデントというか、自分なりに見やすくした結果
こういう分け方になりました・・

1027 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 20:09:11.46 ID:ZoeE04qr0.net]
>>968
テキストエディタという物の存在自体をしりませんでした・・・。
サクラエディタという物をDLしてみましたが・・・めちゃくちゃ便利ですねこれ・・。

1028 名前:名無しさん@お腹いっぱい。 mailto:sage [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

1029 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/21(月) 23:20:08.26 ID:Dl8KMauT0.net]
>>966
ゲームマクロはにごせって言われただろ馬鹿



1030 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 00:18:54.15 ID:YYqgpZK30.net]
>>971
emEditorってのもオススメ
サクラと使い分けるのもいいけど

1031 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 04:46:30.63 ID:DDV+vLl80.net]
ゲームマクロの質問に答え始めるとド初心者のマクロの話題だらけになるぞ

1032 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 07:19:13.62 ID:ey+ZWHj+0.net]
インデント難しい
字下げすると見にくくなって自分でよく解らなくなる

1033 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 07:41:59.43 ID:GjQDazUb0.net]
字下げして見難くなるとか何かがおかしい

1034 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 08:10:41 ]
[ここ壊れてます]

1035 名前:.21 ID:C5ffbueJ0.net mailto: 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
[]
[ここ壊れてます]

1036 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 08:45:39.65 ID:1TlcaC730.net]
aaa(){
  // こっちつかう
}
aaa()
{
  // これの人も多い
}

1037 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 09:00:46.38 ID:C5ffbueJ0.net]
} else { //これが無性に気にくわない

1038 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 09:02:54.38 ID:1TlcaC730.net]
となると下が一般的なのかな?

1039 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/22(火) 09:35:25.64 ID:S1yVAMwN0.net]
ここは幼稚園か
uwscと関係ない話はほどほどにな



1040 名前:名無しさん@お腹いっぱい。 mailto:sage [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

お願い致します。

1041 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 00:11:32.78 ID:Y8+Uhjvq0.net]
ゲームマクロの質問に安易に答えるとこうやって調子こいて次から次へとこういう質問をしてくる

1042 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 00:23:26.39 ID:F3sbSHdJ0.net]
>>983
スレチ。
特異点を見つけるだけ。

1043 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 00:24:03.93 ID:LGiv8vs60.net]
>>983=>>920じゃないの
当人だとしても別人だとしてもばかちんにかわりは無いけど

1044 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 00:53:32.64 ID:Y8+Uhjvq0.net]
どう見ても同一人物

1045 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 01:37:19.33 ID:ojrTHT/Q0.net]
しょうもない質問で埋まってきたな

1046 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 11:51:42.28 ID:CF5/3UwB0.net]
同一人物じゃねぇだろ。
前のヤツはもう完成したスプリクト張ってたし

1047 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 12:00:41.47 ID:CF5/3UwB0.net]
>>983
>>945これでいいじゃん。なにが問題なの?

1048 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 12:34:28.58 ID:Pb+9aq2M0.net]
> スプリクト

1049 名前:名無しさん@お腹いっぱい。 mailto:sage [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です。
正直センスが無さ過ぎて、見せるのも恥ずかしいのですが・・・。
一応途中まで作ったスプリクトです。
www.dotup.org/uploda/www.dotup.org783529.jpg

913 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/18(金) 22:12:44.85 ID:a/2iCbr10 [2/2]
>>926
画像はクリック毎に、前の画像は消えて、
次は必ず決まった画像が一個出ます。

画像判断の所だけ、別の画像が出てくる場合がある為、
この様な条件付き画像判断スプリクトを組み込む必要があります。



1050 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 14:21:00.41 ID:LGiv8vs60.net]
951 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/21(月) 19:07:10.29 ID:7t5Ndceu0
>>932です。以前、皆様より頂いたアドバイスを元に自分なりにスプリクトを考えてみました。
一応希望通りの動作はしてくれる為、内容としては完成しました。
もしよろしければ「もっとこうしたらいいよ」「こういうやり方もあるよ」等
厳しいお言葉でも結構ですので、アドバイスを頂けると幸いです。
www.dotup.org/uploda/www.dotup.org787636.jpg
www.dotup.org/uploda/www.dotup.org787638.jpg

974 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2016/03/23(水) 11:51:42.28 ID:CF5/3UwB0 [1/2]
同一人物じゃねぇだろ。
前のヤツはもう完成したスプリクト張ってたし

1051 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 14:49:52.58 ID:q+4+2VgZ0.net]
www

1052 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 14:53:03.90 ID:Y8+Uhjvq0.net]
ブラゲクソガキは自演までしてんのか
この共通した無駄な部分がある糞コード見りゃ同じってすぐに分かるのにな

1053 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 15:24:33.17 ID:tn83PLJk0.net]
>>989
>>989
>>989

1054 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 15:24:46.46 ID:NjVpGs9j0.net]
最初に突っ込んでやろうかと思ったけどスルーしておいてよかった

1055 名前:名無しさん@お腹いっぱい。 mailto:sage [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

1056 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 15:49:32.31 ID:SZmWshPl0.net]
画像認識ってゲーム系以外だと主に何に使うの?

1057 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 16:32:45.56 ID:U9esxu690.net]
スプリクト

1058 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 18:53:42.87 ID:2z8VVxvV0.net]
スクリプトをスプリクトというのは既出をガイシュツ(何故か変換できない)みたいなもんだろ。
動きのある画像判定は工夫次第、方法を自分で編み出して秘密にしておかなければ広まったら対策されるだけ。
ヒントとしては状況を特定するための手段

1059 名前:なのであれば、その状況を確定できる動きのない不透過部分がないか探すのが第一。
直接だけではなく対象のソフト上でサブメニュー出してみたり何なりの間接的な手段も併用する。
動きのある画像しかなければ、その動きが一番遅くなる時の1コマの画像を使い、
動きがループして最初に戻るまでの間、継続的に判定し続ける。当然処理は遅く重くなる。
[]
[ここ壊れてます]



1060 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 19:01:18.76 ID:VyfxdPXZ0.net]
すぷりくと という間違いがバカにされてるわけじゃないんだよ?

1061 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 19:24:36.03 ID:qNW8EAYN0.net]
>>1001
すぐに誤字や変換ミスを指摘するのは病んでるよ
もっと余裕持たないと顔に出ちゃうよ

1062 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 19:33:23.63 ID:OFvmjkT/0.net]
ゲシュタルト崩壊してきた

1063 名前:名無しさん@お腹いっぱい。 mailto:sage [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分までにしたいのですが、
どのように設定したらよいでしょうか?

1064 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 20:06:18.89 ID:vA7M7au70.net]
>>1005=ID:kLHNktmf0
だからここは拾ったスクリプトの改造法を聞くとこじゃない

1065 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 20:12:20.70 ID:LGiv8vs60.net]
>>1001
これ以上わらかさないで


次スレいってくる

1066 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 20:14:26.73 ID:LGiv8vs60.net]
potato.2ch.net/test/read.cgi/software/1458731603/l50

はい

1067 名前:991 mailto:sage [2016/03/23(水) 20:18:27.14 ID:vA7M7au70.net]
>>1005
と思ったら、これってUWSC本体のスケジュール設定のことか。失礼。
こんな機能は自分でスクリプトに組み込んだ方が楽だから、使う人少ないと思う。

1068 名前:名無しさん@お腹いっぱい。 mailto:sage [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)

1069 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/23(水) 21:21:44.74 ID:xEMVsYD30.net]
>>1005
時間を分に直せばいいんじゃない?



1070 名前:名無しさん@お腹いっぱい。 [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

1071 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/24(木) 00:46:59.95 ID:WL420SBN0.net]
>>1010
ありがとうございました

1072 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/24(木) 06:03:20.37 ID:IqeVqZIs0.net]
> YMDNN mod 25) = 0)
これって日によって起動時間が変わると思うけどそれでいいの?

1073 名前:名無しさん@お腹いっぱい。 mailto:sage [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年以内での実行はなし」と出てしまいました

1074 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/03/24(木) 12:43:37.75 ID:LgRlES+x0.net]
>>1015
HHを分に直せよ・・・

1075 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 133日 22時間 58分 9秒

1076 名前:1002 [Over 1000 Thread.net]
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
premium.2ch.net/
pink-chan-store.myshopify.com/


1077 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<303KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef