[表示 : 全て 最新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/

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
不明な点が多すぎて基本的なやつになった






[ 続きを読む ] / [ 携帯版 ]

前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