◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

UWSC初心者用スレ ->画像>9枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1537758829/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

801デフォルトの名無しさん2021/03/08(月) 13:36:33.15ID:r1yNd/Vf
あっそうですか
でしたら使えない機能は諦めていただく他はないですね

802デフォルトの名無しさん2021/03/08(月) 13:54:11.38ID:1eIB7vrT
マイクソからも提供されてるのか
試してみるかな

803デフォルトの名無しさん2021/03/12(金) 15:13:37.21ID:ZRLAvOku
printで表示させる文字の位置を設定する方法はありますか?
サイズも設定できるとなお良いです

804デフォルトの名無しさん2021/03/13(土) 13:10:54.59ID:cA/ebhRB
//面倒くさいやり方もあるが、無駄な労力なのでLOGPRINTを使うと良い
//なぜかx座標が7ピクセルずれるから指定座標から引く事

x = 500;y= 500

FUKIDASI("表示位置テスト1",x,y) 

LOGPRINT(TRUE,x-7,y,250,100)
PRINT "表示位置サイズ変更テスト2"

sleep(10)

805デフォルトの名無しさん2021/03/14(日) 19:17:10.26ID:MdoUOPO+
凄い初心な質問ですんません。

ID = EXEC("C:\Program Files (x86)\cameeze\cameeze.exe")
SLEEP(1.5)
ACW(GETID("cameeze","TfrmMain.UnicodeClass"),1583,450,460,300,0)

5回繰り返し(座標だけ違う)

こんな感じで作ったのですが、UWSCから設定ファイルを実行すると動くのですが、
設定ファイルから実行すると失敗してしまいます。(アクティブなウィンドウが切り替わらずにパッパッと動いてる)
重複起動していて同名なので、名前の後に(1)みたいな風に付ける方法はありませんでしょうか…

806デフォルトの名無しさん2021/03/14(日) 19:20:27.96ID:MdoUOPO+
あれ、なんでだろ書き込めない・・・

807デフォルトの名無しさん2021/03/14(日) 19:25:57.43ID:MdoUOPO+
くっそ初心者ですんません。

ID = EXEC("あああ")
SLEEP(1.5)
ACW(GETID("あああ","TfrmMain.UnicodeClass"),1583,450,330,460,0)

座標変えて5回繰り返し

こんな感じで同じソフトを多重起動させて並べようとしたのですが、失敗してしまいます。
ウィンドウタイトルが同じで同じウィンドウを色々な座標に持っていこうとしてるだけみたいな感じなのですが
ソフト名の後ろに(1)みたいなのを付けたりする方法はありませんでしょうか…
(なぜか書けなかったのであああにしてます)

808デフォルトの名無しさん2021/03/14(日) 20:13:27.68ID:E6ui2GaX
例えばこれで多重起動できる

ID = EXEC("notepad.exe")
ACW(ID,1583,450,330,460,0)

ID2 = EXEC("notepad.exe")
ACW(ID2,1583,450,330,460,0)

809デフォルトの名無しさん2021/03/14(日) 22:20:18.27ID:BQ6dfRIE
>>807
ID = EXEC("あああ")
とやってるのに、その後のACWでIDを使わない謎

810デフォルトの名無しさん2021/03/14(日) 22:32:16.30ID:MdoUOPO+
>>809
ありがとう!「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」みたいな感じですか?
でもそのソフト起動遅いんです・・・。
続けて書いたら最初に立ち上がる時に表示されるロゴみたいなのが指定の位置に移動するだけで
肝心のウィンドウは前回の終了位置にいってしまうんです…

811デフォルトの名無しさん2021/03/15(月) 00:00:30.92ID:+CyRHPpu
//>「SLEEPを挟んじゃうからIDが受け渡せてねぇんだよ」
//変数のIDを使ってないから、渡す以前に渡してねぇだろという・・・
//SLEEPは待ち時間指定だから、好きなだけ挟んで良い

//電卓を多重起動して横に並べる
EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID1 = GETID("電卓")
ACW(ID1,100,100,500,500,0)

EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID2 = GETID("電卓")
ACW(ID2,600,100,500,500,0)

EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID3 = GETID("電卓")
ACW(ID3,1100,100,500,500,0)

812デフォルトの名無しさん2021/03/15(月) 00:36:16.10ID:/ZCKQNsi
複数個起動できないソフトなのでは?

813デフォルトの名無しさん2021/03/15(月) 01:08:44.19ID:v5Yi3qmH
ああ!そういうことか!(´・ω・`)意味が分かったかもしれない!!

ID = EXEC("あああ") ←この『ID』=という部分が自分で決めれるんすね!?
例えばaaa = EXEC("あああ")と書いて次の行に
ACW(aaa,1583,450,330,460,0)とすると
録画機能みたいなのを利用してたのでIDと書くルールなのかと思ってました…

>>812
いえ、複数個起動はできるソフトで、一応動くには動くのですが
設定ファイルから実行するとアクティブなウインドウが切り替わらず一つのウィンドウだけが座標を行ったり来たりする感じでした

814デフォルトの名無しさん2021/03/15(月) 01:09:40.14ID:v5Yi3qmH

815デフォルトの名無しさん2021/03/15(月) 09:32:47.13ID:+CyRHPpu
なるほどなぁ
そのレベルからの解説でも需要があるのか
UWSCの需要はまだ枯れてないか

816デフォルトの名無しさん2021/03/17(水) 06:59:58.16ID:TjD9TcDJ
>>808
せっかく教えてくれていたのに、専ブラの設定かで見えてませんでした
ありがとうございます

817デフォルトの名無しさん2021/03/17(水) 07:01:40.55ID:TjD9TcDJ
>>811
も見えてなかった…
ありがとうございます!

8188072021/03/17(水) 16:54:27.51ID:dsWxXXVG
皆のお陰様でちょとだけ理解ができてきました
あわよくばもう一点だけ教えて欲しいのです

>>808さんが教えてくれた方法は何故か上手く動いてくれませんでした
起動の遅れ?とかが関係あるのかとSLEEPを挟んでみたりしたのですがうまくいかず
でもそのまんまコピペするとメモ帳はその様に動きました。

そこで>>811さんの教えて貰った様に起動させた後にGETIDってので戻り値?というのをID1〜6に指定
これで思惑通り動きました!でも解せないというか理解できてないんです。

ID1 = GETID("電卓") ってのは「電卓っていうウィンドウIDを返せ」「それをID1と仮名する!」という意味であってますか?
だとすると電卓が複数個起動してたらどれのウィンドウIDを戻すのか分からなくなる気がするのは気の所為でしょうか
それとも順番に書いてるからアクティブなウィンドウから値を引っ張ってきてるのでしょうか?

1・自動で起動させてアプリを並べる。
2・別の設定ファイルでウィンドウにあるプルダウンメニューから自動で選ぶ
をやりたくて、1はできたのですが2を行う場合、GETIDではできませんでした。

初心者のクセに基礎も分からず意味不明なこと言ってるかもしれませんが、最後にしますのでお願いします…

819デフォルトの名無しさん2021/03/17(水) 19:42:27.72ID:0BuFiOnf
最初から言ってる設定ファイルがなんなのか分からん
どっかて買ったマクロ集かなんか?

まあ他の部分は推測と合っている

820デフォルトの名無しさん2021/03/17(水) 19:56:01.39ID:+PPxZeIs
省略しないで書くなら、
ID = GETID("電卓", "ApplicationFrameWindow", -1)
となるが、めんどいから省略してる
//IDはIDの数値を入れる変数なので、変数名は何でも良い
//変数は数値や文字を入れておく箱のようなイメージ
//UWSCには変数の型は無いので、数字でも文字でも区別なく入れられる

//変数の宣言 使いたい所で変数を作れるの必須ではないが、使う変数を決めておく意味で宣言しておいた方が良いとは思う
DIM ID1,ID2,ID3

EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID1 = GETID("電卓")
ACW(ID1,100,100,500,500,0)
msgbox(ID1)

EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID2 = GETID("電卓")
ACW(ID2,600,100,500,500,0)
msgbox(ID2)

EXEC(GET_SYS_DIR+"\calc.exe")
SLEEP(2)
ID3 = GETID("電卓")
ACW(ID3,1100,100,500,500,0)
msgbox(ID3)

//こうすると、起動した順にIDが1,2,3と割り振られてる事が分かる
//プルダウンメニューから選ぶのはUWSCでも出来るけどめんどい

821デフォルトの名無しさん2021/03/17(水) 20:02:51.61ID:dsWxXXVG
>>819
すんません、設定ファイルじゃなくてuwsファイルでした。

ということは、同名アプリ起動後に別のuwsファイルでIDを取得するには
マウスで座標指定してクリック→ウィンドウをアクティブに→ * = GETIDみたいなのを書いてやると良いわけですね
ありがとうございます挑戦してみます

822デフォルトの名無しさん2021/03/17(水) 20:12:09.19ID:dsWxXXVG
>>820
勉強なります。そうですかプルダウンはめんどうなんですね
プルダウンは諦めて手動にしようかと思います。

823デフォルトの名無しさん2021/03/17(水) 21:35:38.19ID:oFq5eIyC
プルダウンメニューから選ぶというのがよくわからない

824デフォルトの名無しさん2021/03/18(木) 07:40:23.96ID:8urs7GkO
>>823
防犯カメラ複数台登録して視聴ソフトを起動させると
すべて1台目のIPが指定されてしまうのです。
なのでプルダウン(ドロップダウン)から機器登録されている
IPアドレスを選択してあげないといけないんです

825デフォルトの名無しさん2021/03/18(木) 08:15:40.32ID:YmFQF9g2
全部を一つでは出来ないよ
所詮はアプリじゃなくてスクリプトだからさ
やろうと思えば出来るけど、状態を保持してる何かするのは難しい
今上がってるもので言うと
複数の監視カメラの視聴アプリとやらを一括で起動するのは特に問題ないよね
同時に整列させるのはちょっとハードル高いから考え方変えて、同じアプリを後から整列させるなら多少は簡単にできる
(ただ、uwscでやる必要性はあまり感じない)
プルダウンから自動で選ぶはまだちょっと意味が分からない
リストからカメラ指定して起動したいってこと?
それとも起動済みの視聴アプリをリストにして、それを選んで何か操作したいということ?
後者はアプリがタイトルバーに何か色つけてくれてればやりようあるけど、そうじゃないなら難しいよ

826デフォルトの名無しさん2021/03/18(木) 09:52:39.16ID:JPJY5VhO
たとえば一つの例として「Fit Win」というアプリがあって
指定したアプリを整列させるだけならこういうアプリもある

プルダウンから選ぶは座標クリックしていく原始的なやり方しかないだろうね
整列して同じ座標へウィンドウを固定させたら比較的簡単にできるし

視聴ソフトはあまり詳しくないので調べてみたら「smart viewer」というフリーのソフトが複数カメラ、複数画面に対応してるようだけど
こういうソフトじゃないと駄目なの?機器が対応してないと駄目だろうけどLAN接続するタイプなら割と対応してるっぽいが?
このソフトを採用している警備会社があるようだから悪くないと思うけどな

827デフォルトの名無しさん2021/03/18(木) 10:40:06.48ID:Y5jTQtWf
ネットワークドライブのuwsファイルを認識しないのですが、みなさんの環境でもそうですか?
\\ORE-PC\UWS\hoge.uws をダブルクリックすると問題なく起動しますが、
\\ORE-PCをZドライブに割り当てて、
Z:\UWS\hoge.uwsをダブルクリックするとFILE NOT FOUNDってでる。
右クリ→メモ帳だと問題なく開けるので、UWSCの仕様なんでしょうかね・・

828デフォルトの名無しさん2021/03/18(木) 11:08:31.02ID:JPJY5VhO
ダブルクリックして起動?
ランチャーとかUWSCから起動させるのは駄目?
ネットワークドライブを割り当てるとかはやってないのでわかりませんね

8298272021/03/18(木) 12:13:19.45ID:Y5jTQtWf
windowsのショートカットでも、ランチャーに登録してもダメですね。
だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ

830デフォルトの名無しさん2021/03/18(木) 12:38:28.87ID:Sp8r4MHz
コマンドプロンプトで実行できるなら、hoge.uwsがあるフォルダにUWSC.exeを入れて
BATファイルに
UWSC.exe hoge.uws
と書いてBATファイルで実行する手もある

8318272021/03/18(木) 13:45:17.72ID:Y5jTQtWf
>>830
やってみたら見事に
FILE not found :hoge.uws
が返ってきました。目の前にあるんですけどね・・

832デフォルトの名無しさん2021/03/18(木) 14:05:23.77ID:Y5jTQtWf
>だけど、UWSC本体からファイル開く→再生だといけますね・・・なんだこりゃ

改めてやったら、そもそもUWSC本体→開くでZドライブが見えない。
なんで開けたつもりになったんだろう・・謎
ショートカットは見えるので叩くとやっぱFILE not found

833デフォルトの名無しさん2021/03/18(木) 14:25:56.67ID:Sp8r4MHz
EXEファイルにするか、iexpress.exeでパッケージ化するか
https://wikiwiki.jp/gutchie/%E8%87%AA%E5%8B%95%E5%8C%96%E3%83%84%E3%83%BC%E3%83%AB/UWSC#y1bf8470

834デフォルトの名無しさん2021/03/24(水) 22:16:20.39ID:SjAM6MJ0
子ウィンドウを取得して操作したいのですがなかなか上手くいきません

ID=GETID("親ウインドウのタイトル")
idLength=GETALLWIN(ID)
FOR i = 0 TO idLength-1
PRINT STATUS(ALL_WIN_ID[i],ST_TITLE) 
NEXT

↑を実行したところ、返ってきたのは子ウィンドウではなく
子ウィンドウ内の要素でした。(ボタン、チェックボックス、ラジオボタン)

ID=GETID("親タイトル",,,"子タイトル")
PRINT

↑は-1になります
やり方間違ってますか

835デフォルトの名無しさん2021/03/24(水) 23:30:49.98ID:ffF9L6R4
//ウィンドウIDを全て取得してみてIDとタイトルを調べる方法もある

n = GETALLWIN()

FOR i = 0 TO n-1
PRINT ALL_WIN_ID[i] + " " +STATUS(ALL_WIN_ID[i],ST_TITLE) 
LOGPRINT(TRUE,100,50,800,1100)
NEXT

msgbox("stop")

836デフォルトの名無しさん2021/03/25(木) 00:14:40.63ID:dnI+vm3S
>>835
実行してみると
親ウィンドウのタイトルが、ウインドウの数+1表示されました
という事は自分が子ウインドウだと思っていたものは全て親ウインドウという事かな?
今日は遅いのでまた明日やってみます
ありがとうございました

837デフォルトの名無しさん2021/04/09(金) 09:20:46.01ID:vJdMFfhi
Windowsのユーザーを切り替えて、各ユーザーごとにマクロを実施していきたいのだけど、ユーザー切り替えはUWSCでは難しいですか?

838デフォルトの名無しさん2021/04/09(金) 09:27:52.43ID:Aph6z+sk
何したいか分かんないけどユーザー指定して操作対象のアプリ起動するんじゃダメなん?

839デフォルトの名無しさん2021/04/09(金) 11:17:30.70ID:RfO7RRDz
UWSCの範囲を超えるこえど
動かしたいユーザー列挙しといて
レジストリに自動ログオンと自動実行の仕掛け作っとけばいけそう
再起動→次のユーザーで自動ログオンして自動実行という流れで

840デフォルトの名無しさん2021/04/09(金) 11:58:31.99ID:AGu16ZxP
ユーザー分の台数を用意すればいい
10ユーザーいるなら10台用意するとかね

841デフォルトの名無しさん2021/04/13(火) 14:47:03.51ID:IqZsL8m5
神様ちょっと助けておくれ・・・

ブラウザのスクロールバーのボタン3回クリックの1セットを、
1セット×回数で10回行いたい(=最後は30回クリック)
forでかけ算すればいいんじゃね?とひらめいたが動くわけがなかった。

842デフォルトの名無しさん2021/04/13(火) 15:08:40.06ID:IqZsL8m5
for t=1 to 10
CHKIMG("scroll-down.bmp")
c=t*3
repeat
BTN(LEFT,CLICK, G_IMG_X,G_IMG_Y ,30)
sleep(1)
until c >c
next

untilの書き方にモヤモヤしているが・・・とりあえずエラーは出ない
永久にクリックし続けるだけで。

843デフォルトの名無しさん2021/04/13(火) 15:14:05.98ID:C7npRUyM
ブラウザの右下隅に下向きのボタンがあるが、それをクリックするという事かな?

844デフォルトの名無しさん2021/04/13(火) 15:16:34.28ID:IqZsL8m5
そうです。
ブラウザ上での作業を自動化したくて。
ボタンにかんしてはscroll-down.bmpで判定してます。
forのt使って
repeat
BTN(LEFT,CLICK, G_IMG_X,G_IMG_Y ,30)
sleep(1)
until t >t*3

にしてみましたがこれも永遠にクリック(tが1なんだから4で止まって欲しいのに・・・)

845デフォルトの名無しさん2021/04/13(火) 16:03:51.33ID:M7vT5OZZ
c > c
ワロタ
この不等式がおかしいと思わないってヤバない?
プログラムじゃなくて数学、いや算数レベルやん

846デフォルトの名無しさん2021/04/13(火) 16:11:32.97ID:C7npRUyM
//FORの入れ子でOK
//1回目 1*3、2回目 2*3・・・10回目 10*3

CHKIMG("scroll-down.bmp")

FOR i = 1 TO 10
FOR x = 1 TO i*3
SLEEP(1)
BTN(LEFT,CLICK,G_IMG_X+5,G_IMG_Y+5)
NEXT
NEXT

msgbox("クリック完了")

847デフォルトの名無しさん2021/04/13(火) 16:36:03.26ID:IqZsL8m5
いろいろ試してる間にごちゃごちゃしてきたのですみませんね;
UWSCではforしか使ったことがないもので

>>846
入れ子でいいはずですよね・・・(同じコードだ・・・)
もう一回ためしてみます。
ありがとう。

848デフォルトの名無しさん2021/04/16(金) 14:51:43.21ID:uD9tfUyH
プログラムファイルから消した文言が表示されエラーになってしまいます
IFB CHKIMG ("C〜.BMP")を("C〜.PNG")に書き換えしたのですが、NOT FOUND 〜BMP となります

(appdataなど削除し)ソフトの入れ直しや、違う名前のプログラムファイルを作成などしましたが改善せず。terapadを使用して書いてます
ご教示お願いします

849デフォルトの名無しさん2021/04/16(金) 14:53:20.85ID:hdR99Jx3
違うファイルを読み込んでいる

850デフォルトの名無しさん2021/04/16(金) 15:17:51.55ID:jul+q2bh
実行してるファイルと編集してるファイルが違ってたとかよくある
何でこのバグ消えねぇんだ?と思ってよく見たら違ってたと

851デフォルトの名無しさん2021/04/16(金) 21:43:26.23ID:Qutb4gNt
CHKIMGはBMPしか使えないからそのエラーになるだけで消した文が影響している訳ではない
BMPに戻せ

852デフォルトの名無しさん2021/04/16(金) 21:59:57.64ID:9Ra8nUSr
ちゃんとエラーメッセージ読むタイプと読まないタイプの違いが出たな

853デフォルトの名無しさん2021/04/16(金) 23:08:42.23ID:mtyX36ii
おお!出来ました!
皆様ありがとうございます

854デフォルトの名無しさん2021/04/23(金) 04:45:57.46ID:GWiJhS53
for文について困っていることがあります。
下記の処理Aのみ 繰り返す際に処理回数を1増やしたいです。

BTN(LEFT,CLICK,13,167,10)
 For i = 1 to 100  
 KBD(VK_RALT,DOWN,50)
 KBD(VK_RIGHT,CLICK,50)
 KBD(VK_UP,CLICK,50) //処理A ※ ここの処理だけ 1回目は1回実行 2回目は2回実行 3回目は3回実行… にしたい
 KBD(VK_RALT,UP,50)
 NEXT

調べましたがどうしてもわかりませんでした。
for文の中の処理回数を増やす方法をご存じでしたら、教えていただけたら幸いです。
よろしくお願いします。

855デフォルトの名無しさん2021/04/23(金) 05:45:45.21ID:2JaREPAx
 For i = 1 to 100  
  KBD(VK_RALT,DOWN,50)
  KBD(VK_RIGHT,CLICK,50)
  For j = 1 to i
   KBD(VK_UP,CLICK,50) //処理A ※ ここの処理だけ 1回目は1回実行 2回目は2回実行 3回目は3回実行… にしたい
  Next
  KBD(VK_RALT,UP,50)
 Next

856デフォルトの名無しさん2021/04/23(金) 05:56:06.69ID:kWPc6e52
やるじゃん!

857デフォルトの名無しさん2021/04/23(金) 06:00:49.79ID:GWiJhS53
>>855
できました!
なるほどfor文の中にfor文を入れて他の変数にiを代入すればいいんですね…
お忙しいところ教えていただきありがとうございました

858デフォルトの名無しさん2021/04/23(金) 12:41:11.27ID:Fs/FdOQM
いや別に代入はいらんけど…

859デフォルトの名無しさん2021/04/23(金) 13:40:06.30ID:gAgD293m
動けばいいんだよ
猿相手に説明してもしゃーない

860デフォルトの名無しさん2021/04/23(金) 14:54:53.39ID:zpT46eZ/
キーキー喚いて他人に噛み付くだけの猿は本当にしょうがないよな

861デフォルトの名無しさん2021/04/23(金) 15:13:24.53ID:gAgD293m
>>1読んでないのかな

862デフォルトの名無しさん2021/04/23(金) 15:35:59.73ID:Qd1iaOGD
無能な猿はすっこんでろって

863デフォルトの名無しさん2021/04/23(金) 18:49:02.98ID:k2R/iVu9
サルモンキーウッキー

864デフォルトの名無しさん2021/04/30(金) 21:19:57.52ID:gWvSQQ0Q
メモ帳上だと正常に機能するけど、動かしたいソフト上だと特定のキー(十字キーとかシフトキー)だけ受け付けないんだけどなにかわかるかな?
記録は出来て、中身を見るとちゃんとキーも入ってるけど再生時に特定のキーが無視されちゃう

865デフォルトの名無しさん2021/05/01(土) 02:52:48.63ID:MA8kI4AW
まず「動かしたいソフト」の名前を書け

866デフォルトの名無しさん2021/05/14(金) 14:13:35.87ID:2RtqhEo0
画像1と画像2のどちらかを認識した場合、認識した画像の座標を取得して処理Aを行いたいです

IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A
ENDIF

処理Aは同じですが、いまはこうして分けています
今後、画像3、画像4と増えていく可能性があるので毎回分けて記述しなくても良い方法はないでしょうか

IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1) OR CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)//処理A

このようにORを使って画像1が表示されてる最中に実行してみたところ、画像座標の取得に失敗してしまい処理Aが動作しませんでした
(PRINTで座標を確認してみたら-99999とかになってました)

867デフォルトの名無しさん2021/05/14(金) 15:09:08.52ID:K8K4yQFj
getdirでファイル一覧取ってきてfor-in-nextで画像ファイルの分だけループ回せばいいと思う

868デフォルトの名無しさん2021/05/14(金) 16:43:30.17ID:iQwZsiAA
chkimgxを使えばもっと簡単に書けるが、使わないなら

//画像1.bmp〜画像2.bmpを検索してどれかを認識したら処理Aを実行しループを抜ける
FOR x = 1 TO 2
IFB CHKIMG("画像" + x + ".bmp", , , , , , -1, IMG_MSK_BGR1)
//処理A
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
BREAK
ENDIF
NEXT

869デフォルトの名無しさん2021/05/14(金) 17:02:47.72ID:2RtqhEo0
>>867-868
ありがとうございます、ですがすいません
文にしたときにわかりづらかったので変えていたのですが、
実際の画像ファイルはファイル毎に名前を変えていて連番ではなく、画像を認識する場所もそれぞれ異なります

870デフォルトの名無しさん2021/05/14(金) 17:37:15.98ID:iQwZsiAA
//BMPファイルの数を取得する
//BMPファイルは同じフォルダに入れておくこと
N = GETDIR(GET_CUR_DIR,"*.BMP",TRUE,0)

//GETDIR_FILES配列にはGETDIRで取得したBMPファイルのファイル名が全て入る

//BMPファイルを検索してどれかを認識したら処理Aを実行しループを抜ける
//CHKIMGで座標指定しないなら、パラメータ無指定でもOK
FOR x = 0 TO N-1
IFB CHKIMG(GETDIR_FILES[x])
//処理A
BTN(LEFT, CLICK, G_IMG_X, G_IMG_Y)
BREAK
ENDIF
NEXT

871デフォルトの名無しさん2021/05/14(金) 22:43:48.66ID:6hlMfvtI
>>869
>画像を認識する場所もそれぞれ異なります
ってこういうことかな

CONST e_bmp=0
CONST e_xOffset=1
CONST e_yOffset=2

// 画像と認識位置のセット
DIM aMultidim[][2] = "a.bmp",2,3 _
          ,"b.bmp",-1,-1 _
          ,"c.bmp",0,1
DIM i
DIM iLastSet = length(aMultidim) - 1
FOR i = 0 TO iLastSet
 IFB TRUE = CHKIMG(aMultidim[i][e_bmp]) THEN
  // 発見位置にオフセットを加味してクリック
  BTN(LEFT, CLICK , G_IMG_X,+aMultidim[i][e_xOffset] _
          , G_IMG_Y+aMultidim[i][e_yOffsetOffset])
 ENDIF
NEXT

872デフォルトの名無しさん2021/05/15(土) 02:20:59.88ID:d0kD+s8i
やっぱchkimgxで組んだら?
わざわざ配列でチェック座標管理しなくて済むし

873デフォルトの名無しさん2021/05/15(土) 15:01:39.06ID:M0a+Mlf6
明確に座標が違うなら配列作ってforで回す方がいいと思うがね

874デフォルトの名無しさん2021/05/18(火) 01:52:43.80ID:IPcsF0ko
すいません、返事が遅れました
>>870-871の方法でいじりながら様子を見てみます、ありがとうございます
しかし元々の記述よりだいぶ複雑になるんですね…
CHKIMGXはなぜかウインドウがピカピカ光って煩わしいのでなるべく使わないようにしてます

別件ですがもうひとつ質問です
ランダムに表示される画像xを参照して処理を行う001.uwsというもののほかに、同じ画像xを参照するものの001.uwsとは異なる処理を行う002.uwsや003.uwsを作る予定です

・A.uwsの中身
WHILE TRUE
CALL B.uws
CALL C.uws
CALL 001.uws//処理が終わったらA.uwsに戻ってこさせたいので、ループ処理にはしていない
WEND

いまUWSCにはこのように記述したA.uwsを読み込ませています
説明が難しいのですが001.uwsと002.uwsを使う場面が明確に異なるので、
CHKIMGで画像1を認識したら、画像2や画像3を認識するまで以降002.uwsや003.uwsなど特定のuwsだけを読み込まなくなり、
逆に画像2を認識したら、画像1や画像3を認識するまで以降001.uwsや003.uwsだけを読み込まないようにしたいです

IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
CALL 001.uws
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
CALL 002.uws
ELSEIF CHKIMG( "画像3.bmp", , , , , , -1, IMG_MSK_BGR1)
CALL 003.uws
ENDIF

このように記述すれば良いのでしょうが、001.uws〜003.uwsはループ処理させたくないのと、画像1〜3は常に表示されているわけではないので困ってます
なにか良い解決策はないでしょうか

875デフォルトの名無しさん2021/05/18(火) 06:01:50.96ID:UDGz656x
ちょっと話しは逸れるけど
そもそもいちいちcallする必要あるのかな
関数化しちゃいかんの?

876デフォルトの名無しさん2021/05/18(火) 10:17:39.32ID:wQ5og2t5
定期的に出てくるけどCALLを関数代わりにしてる奴は頭おかしいからスルーして大丈夫

877デフォルトの名無しさん2021/05/18(火) 10:19:50.75ID:qh33yYe/
むしろファイルをcallできる言語仕様に驚きを禁じ得ない

878デフォルトの名無しさん2021/05/18(火) 10:31:01.04ID:4dF+L4dN
そこは include とか import と同じじゃないの
単機能を関数的に呼び出すのがおかしいってだけで

879デフォルトの名無しさん2021/05/18(火) 10:37:54.61ID:qh33yYe/
まあ確かにDLLと同じようなもんだと言われたらそれまでだけど
関数ポインタをディスパッチするような手間いらずで初心者でも手軽に使える点は評価したい

880デフォルトの名無しさん2021/05/18(火) 10:42:00.07ID:t/eWMALd
callもスクリプト単体で動くようにすると結構便利だけどな
スクリプトは実行時に読み込まれてるみたいだし関数と変わらん気がするが

881デフォルトの名無しさん2021/05/18(火) 11:10:02.73ID:qh33yYe/
利便性を優先すると使うための手続きが複雑になる
このトレードオフは言語開発者の永遠のテーマだろうな

882デフォルトの名無しさん2021/05/18(火) 11:14:19.63ID:4dF+L4dN
たぶん上の人は関数自体使い慣れなくてだいぶ抵抗があるんだろうな
老婆心的にはスマートな使い方教えたいけど
自分でメリット感じられないとなかなか移行は難しそうだ

883デフォルトの名無しさん2021/05/18(火) 11:30:39.35ID:qh33yYe/
DLLを使った方がカッコイイからというくだらん理由で
どう見ても静的リンクでいいだろうという場面でやたらDLLを使いたがる人もいる
シンプルにEXE一本で動かせるのにランタイムライブラリという必要条件が増えるけど
素人は複雑イコール技術が高度と感じることがあるのでなんとも言えない

884デフォルトの名無しさん2021/05/18(火) 12:16:39.91ID:AZFZk1uK
そもそも、起動した時点でcall先のファイルは一括して読み込まれるってのを分かってないよね
だから、読み込まないようにしたいっていう一文が出てくる

885デフォルトの名無しさん2021/05/18(火) 12:24:17.39ID:4dF+L4dN
>>884
それはそうなんだろうけど
874の人は関数的に使ってるから読み込ませたくない=実行させたくない って意図でしょう

それはそうと874の実際の質問内容考えてる人俺含めていない件w
後ででもしっかり読んでみようと思ってるけど論理問題のようだから意図や齟齬たどるの面倒よね

886デフォルトの名無しさん2021/05/18(火) 13:30:39.30ID:9AUeHlwd
>>874
CALLの使い方を間違ってる

887デフォルトの名無しさん2021/05/18(火) 13:51:29.74ID:qh33yYe/
CALLの正しい使い方のお手本を出してくれるそうだから
よく聞くように

888デフォルトの名無しさん2021/05/18(火) 14:17:24.85ID:XOsT82We
874です
以前、こちらのスレで長々と書くのではなく、ひとつの処理に対してひとつのファイルにしてCALLで読み込ませろって書いてあったのを読んだ気がしてそうしてました
よろしくおねがいします

889デフォルトの名無しさん2021/05/18(火) 16:19:21.98ID:KFxGhSSQ
CALLは意味が沢山あって意外と日本人に馴染みのない言葉だから仕方ないね

890デフォルトの名無しさん2021/05/18(火) 16:53:51.17ID:9AUeHlwd
>ランダムに表示される画像xを参照して処理を行う001.uwsというもののほかに、同じ画像xを参照するものの001.uwsとは異なる処理を行う002.uwsや003.uwsを作る予定です
ファイルを分ける必要がない

動けばどう書いても良いけど、難しく考えすぎて面倒くさい書き方をしてるようにしか思えん

891デフォルトの名無しさん2021/05/18(火) 16:58:47.86ID:0sQ29iV7
関数の使い方を覚えるべきだよね

892デフォルトの名無しさん2021/05/18(火) 20:28:58.68ID:9AUeHlwd
認識した画像ごとに処理を分ける例
IFBでダラダラ書くより読みやすく書ける

WHILE TRUE

SELECT TRUE
 CASE CHKIMG("画像1.bmp")
  処理1
 CASE CHKIMG("画像2.bmp")
  処理2
 CASE CHKIMG("画像3.bmp")
  処理3
 DEFAULT
  例外処理 //例外処理
SELEND

WEND

893デフォルトの名無しさん2021/05/18(火) 21:40:52.44ID:pImCnyq0
>>892
これは凄い発想
caseに式や関数使えるとか知らなんだ

894デフォルトの名無しさん2021/05/18(火) 22:21:22.88ID:wQ5og2t5
CALLしてるファイルの中でも関数化してるわけじゃなさそうだし
ファイルが増えればそのうち変数がバグってどこが原因か分からなくなる

895デフォルトの名無しさん2021/05/20(木) 05:48:05.89ID:xogd6JER
874です

CALLにしていた処理をまとめる方向で修正してます

>>892
自分はIFB〜ELSEIFとの違いがわからず悩んでいます
CASE CHKIMG("画像1.bmp")で画像を読み取れば、
IFB〜ELSEIFと同じひとつの処理に対してENDIFが必要ないってことでしょうか?

896デフォルトの名無しさん2021/05/20(木) 09:42:02.88ID:j8DWMRqC
>>895
書いてある通り>>892にとってはselectの方が読みやすいってだけだろ
IFBとELSEIFで段差ができる部分が揃う
CASEの方が文字数少ない
CHKIMGは書き方のバリエーションだからIFBと違いはないのでは

897デフォルトの名無しさん2021/05/20(木) 11:13:41.40ID:1BZg1gED
コードの可読性を意識して書いてるだけだがね

可読性の概念とかは プログラミング 可読性 でググれ
動けばどうでも良いという主義ならそれはそれで

898デフォルトの名無しさん2021/05/20(木) 11:22:16.62ID:HONoZ+FD
892のコンセプトしだいだけど
メンテナンス性拡張性とか加味するとifのほうがいいかもね

899デフォルトの名無しさん2021/05/20(木) 12:20:19.57ID:1BZg1gED
CASE CHKIMG("画像1.bmp") AND (CC = 1)
とかIFBの条件式と同じように書けるし、どうでも良い事ではあるがね

900デフォルトの名無しさん2021/05/20(木) 13:26:28.17ID:dsnUQ917
on N goto 1000,1100,1200,1300…でいけるよ

901デフォルトの名無しさん2021/05/21(金) 08:55:27.51ID:jCHc9CEs
874です

メインにしてるuwsの中に複数の処理をまとめた処理群AをCALLで呼び出してましたが、処理群Aをクラス化して、処理群Aのなかの各処理をPROCEDUREなどでメインのuwsに記述する

CALL 処理群A.uws
クラス名は処理群A、関数名は処理Aと処理B

IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
処理群A.処理A
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
処理群A.処理B
ENDIF

CALLの使い方はこれで大丈夫でしょうか?

902デフォルトの名無しさん2021/05/21(金) 09:47:46.96ID:hKnIbAZ8
UWSCってクラス使えたんだっけ!?使ったことなかった
>>901
それはともかくそれでいいと思うよ
処理A,Bを他のスクリプトから使わず規模も大きくないなら
CALL使わず1ファイル内の関数だけで済ますんでいいと思うけど
----.uws ここから
IFB CHKIMG( "画像1.bmp", , , , , , -1, IMG_MSK_BGR1)
 処理A()
ELSEIF CHKIMG( "画像2.bmp", , , , , , -1, IMG_MSK_BGR1)
 処理B()
ENDIF

procedure 処理A()
 //Aの処理
fend

procedure 処理B()
//Bの処理
fend
----.uws ここまで
あと下部のprocedureをクラス化せずそのまま別ファイルにしてCALLするんでも動くよ
知ってるかもだけど念の為

903デフォルトの名無しさん2021/05/21(金) 12:44:57.04ID:04KdsCb/
話をループさせるなよw

904デフォルトの名無しさん2021/05/21(金) 12:55:06.38ID:hKnIbAZ8
スクリプト直CALLしてたのをクラス関数CALLにはしたけど
それはそれでいいがもっと簡単にはできるよ
って話なのでループではないと思うが

902みたいな関数の一番簡単な使い方も把握してるのか怪しかったし

905デフォルトの名無しさん2021/05/24(月) 09:07:34.94ID:j7BJolv/
CHKIMGの色幅がCHKIMGX1でも認識するくらいシビアな画像でも
CHKIMGXにすると判定できなくなる場合ってどうすれば良いですか?
CHKIMG使うしかないですか?

906デフォルトの名無しさん2021/05/24(月) 15:27:04.53ID:j7BJolv/
読み直したら間違えてた
CHKIMGX1じゃなくてIMG_MSK_BGR1で認識するくらいシビア

907デフォルトの名無しさん2021/05/24(月) 15:38:58.41ID:ULoozdN2
chkimgで認識できてchkimgxで認識できないってのがよくわからないんだけど
chkimgxのthresholdとかcolorの引数弄っても認識できてないの?

908デフォルトの名無しさん2021/05/24(月) 15:47:05.47ID:/wIz9r2w
>>907
画像によってはchkimgで認識してchkimgxだとしないのがあるね
見た目で緑系色が多いと認識しない感じ

909デフォルトの名無しさん2021/05/24(月) 16:22:49.00ID:ULoozdN2
>>908
chkimgxはキャプチャしたイメージをグレースケール化するので色は引数のcolorを弄らない限り関係ない

910デフォルトの名無しさん2021/05/24(月) 16:30:11.09ID:jIebElNo
btnでクリックできなくなったね。

911デフォルトの名無しさん2021/05/24(月) 17:28:10.19ID:VAxBPl7R
>>909
ソースのコメントみる限り、色指定した場合はグレースケール化と読めるが

指定した色とどれだけ近いかでグレースケール化した画像を使って マッチングの計算を行う
文字の色などを指定することで背景の変化に強いマッチング判定を行う

912デフォルトの名無しさん2021/05/24(月) 18:21:59.68ID:qg+aTsN4
>>911
ソースコードの関数も確認した
色指定あるときはgrayscale化

913デフォルトの名無しさん2021/05/26(水) 08:10:53.62ID:K14fqcy/
CHKIMGからのクリックができなくなってるなぁ。
画像認識まではするけど、クリックはしない。
管理権限で起動しても、だめだったなぁ。
WINDOWSのアップデート前後で変わってるから、そこかなぁ。

914デフォルトの名無しさん2021/05/26(水) 11:01:01.07ID:XORx725k
>>913
ついに使えなくなったか

915デフォルトの名無しさん2021/05/26(水) 13:05:07.61ID:yYro70ts
アップデートは停止してるからわからないけど
使えなくなるならアップデートはしないでおこう。人柱サンキュー!ワハハハ!

916デフォルトの名無しさん2021/05/26(水) 13:56:10.97ID:9QyAf03y
バージョン 2004のままにしておくか

917デフォルトの名無しさん2021/05/26(水) 14:14:16.02ID:eqZO3XDC
Windows はいじらないほうがいいですね。

918デフォルトの名無しさん2021/05/26(水) 17:01:33.65ID:9QyAf03y
WEBツールの仕様変更でCLICKが使えなくなったのをDOWN,UPで対応させてるがバージョン変わったら使えなくなるんだろうか
待ち時間をランダムにして人間がクリックしてるように偽装して何とかなってる

BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y,(RANDOM(500)+2000))
BTN(LEFT,UP,G_IMG_X,G_IMG_Y,RANDOM(500))

919デフォルトの名無しさん2021/06/03(木) 12:51:13.08ID:q8TMEvZw
MEMUというandroidエミュを使っているんですが
MOUSEORGでMEMUのウィンドウIDを指定して裏マクロにしようとすると、CHKIMGやPEEKCOLOR1回ごとにウィンドウの周りが白くなって一瞬(0.1秒くらい?)だけフリーズします
例えばIFB並べてCHKIMGの画像6個探すときは6回分のプチフリーズしてループ、6個のうち上から3個目がヒットするときは3回分の長さのフリーズの後に処理が始まるみたいになります
SAVEIMGの取得をMEMUのウィンドウIDではなくデスクトップにして、クリップボードからPEEKCOLORすれば止まらずに動きますが裏マクロになりませんし…
キーボードマッピング(MEMUの機能)で設定したキーをKBDで押すときは上のプチフリーズは起こらないんですが

920デフォルトの名無しさん2021/06/03(木) 13:55:27.25ID:8BEM7SHC
こちらからの報告は以上です。どうぞ

921デフォルトの名無しさん2021/06/03(木) 14:53:36.50ID:yaZ7gTV4
ラジャー、次の質問者どうぞっ!?

922デフォルトの名無しさん2021/06/03(木) 15:02:00.58ID:uxUjlRum
DorectXだと思うけど、peekcolor多量に回すmemuの画面がフリーズする
フレームバッファをその度にフル転送してるからじゃないのかなあ

で、画面フリーズするとどういう弊害がでてんの?

923デフォルトの名無しさん2021/06/03(木) 15:22:40.86ID:mewPK9u+
そうですか

924デフォルトの名無しさん2021/06/03(木) 15:43:58.08ID:PveMLo3f
特定のソフトに依存する質問については、そのソフトの環境を構築する手間暇掛けてまで答える気になれない

925デフォルトの名無しさん2021/06/04(金) 03:13:49.55ID:HrGwVRMF
Androidエミュごときで環境構築面倒とかいうのもどうかと
中華エミュだから入れたくないとかならまだしも

926デフォルトの名無しさん2021/06/04(金) 04:55:22.58ID:8MiFu8j6
ガイジあらわるw

927デフォルトの名無しさん2021/06/04(金) 09:57:52.95ID:AmUi7cYO
わざわざ無能な人のために環境構築してあげてやる道理なんかないでしょ
自分で頑張れと冷たく言い放っておしまい。ぶっちゃけ自分には関係ないからな。困ってるのは私ではなくアイツなのだからアイツが苦しむのはOK
私は上から目線で笑いながらからかってやるだけですよ

928デフォルトの名無しさん2021/06/04(金) 12:17:23.70ID:oeJhT1F4
環境作る義理ないならついでにいちいちそんなお気持ち表明しにこなくてええんやで

929デフォルトの名無しさん2021/06/04(金) 12:31:28.73ID:U0nNGufy
匿名掲示板で環境作る義理あるやつなんているのかな?

930デフォルトの名無しさん2021/06/04(金) 12:45:19.55ID:DM+caa8E
>>925
そう思うなら、答えてあげなさい
オレはやらん

931デフォルトの名無しさん2021/06/04(金) 19:32:48.15ID:AmUi7cYO
かくして、彼は泣きながら手動で頑張るのでしたとさ
チャンチャン♪

932デフォルトの名無しさん2021/06/05(土) 20:12:02.91ID:AuKRvxXh
表マクロなら動くんだろ
それでいいじゃん

933デフォルトの名無しさん2021/06/06(日) 07:09:26.47ID:nFBl7Kad
昨日触り始めた信じられないくらいの初心者で申し訳ないですが知識をお借りしたく
・画像AとBの画像が同時に存在する時のみに画像Cをクリックしたい
・画像AとBの画像が無い場合は次に書いた処理を行いたい
これをしたいのですが1つ目の時点で画像Cをクリックしてくれないです
おかしなところだらけとは思いますがお助けください

While True
ifb CHKIMG("A.bmp") _
and CHKIMG("B.bmp") _
and CHKIMG("C.bmp")
    BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
sleep(1/64)

elseif CHKIMG("D.bmp")
    BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
sleep(1/64)

934デフォルトの名無しさん2021/06/06(日) 07:55:07.27ID:rQ15Fo4h
>>933
Andで一行にせずに書いて原因究明
横着しない

935デフォルトの名無しさん2021/06/06(日) 08:14:21.20ID:NIzk3ndz
横着のつもりはなくAndしか使えそうなのがわからず…
バラで使えそうな何かを探す旅に出てきます

936デフォルトの名無しさん2021/06/06(日) 08:27:55.32ID:rQ15Fo4h
>>935
そこまで書けてるのに、ifを分けて書くこと出来ない?
その書き方じゃ、本当にABCの画像が同時に存在して認識出来ているか確認できないでしょ?
画像って目視じゃ同じに見えても実は全く同じじゃなかったりするし

937デフォルトの名無しさん2021/06/06(日) 08:42:55.09ID:NIzk3ndz
>>936
一度に全て探そうとせずにtrue thenで次の画像を探させる方向で考えればいいのです?

938デフォルトの名無しさん2021/06/06(日) 08:53:18.19ID:Y/jc2SzG
>>937
ifb CHKIMG("A.bmp") then
print "found A"
endif

これでAを本当に認識できてるかどうか確認できる

939デフォルトの名無しさん2021/06/06(日) 09:09:30.18ID:BeC5o1Q9
いつもmsgbox使ってた

ifb chkimg("a.bmp")
print "g_img_x:"+g_img_x+" g_img_y:"+g_img_y
ifb chkimg("b.bmp")
print "g_img_x:"+g_img_x+" g_img_y:"+g_img_y
ifb chkimg("c.bmp")
print "g_img_x:"+g_img_x+" g_img_y:"+g_img_y
btn(left,click,g_img_x,g_img_y)
sleep(1/64)
endif
endif
endif

940デフォルトの名無しさん2021/06/06(日) 09:40:11.66ID:NIzk3ndz
ありがとうございます
今は出先なので帰ったらまた試してみます
また詰まったら力を貸してください

941デフォルトの名無しさん2021/06/06(日) 13:21:06.69ID:IWgw88U5
初心者が増えるのは良いな
UWSCがまだ死んでないという事だし
初心者向けの参考書書いても需要ありそうだから、何か書いてみるか

942デフォルトの名無しさん2021/06/19(土) 20:28:31.54ID:h+5L1XCT
素人質問で大変恐縮なのですが
乱数を用いてcall先をランダムにする事って可能でしょうか?
rondam(5)
で1の時に
call a.uwsを呼ぶというようなことがしたいのですが

943デフォルトの名無しさん2021/06/19(土) 20:43:34.89ID:EQ2vKl4E
可能です

944デフォルトの名無しさん2021/06/19(土) 20:54:33.63ID:Lk+y+wSz
//0〜e.uwsがあるとして、

SELECT RANDOM(5)
 CASE 0
  call 0.uws
 CASE 1
  call a.uws
 CASE 2
  call b.uws
 CASE 3
  call c.uws
 CASE 4
  call d.uws
 CASE 5
  call e.uws
SELEND

945デフォルトの名無しさん2021/06/19(土) 20:56:22.82ID:Lk+y+wSz
RANDOM(5) なら 0-4だったな

SELECT RANDOM(5)
 CASE 0
  call 0.uws
 CASE 1
  call a.uws
 CASE 2
  call b.uws
 CASE 3
  call c.uws
 CASE 4
  call d.uws
SELEND

946デフォルトの名無しさん2021/06/19(土) 21:22:37.66ID:h+5L1XCT
>>943-945
具体的な記述もありできそうです
ありがとうございました

947デフォルトの名無しさん2021/06/19(土) 21:25:16.67ID:H3JZ4m/K
callはそういう使い方するものじゃないって
これだけ言われても理解しないんだな

948デフォルトの名無しさん2021/06/19(土) 21:29:01.75ID:ptUlvasO
アホの質問にまともに理解していない馬鹿が得意げに答えるからこうやって誤った使用法が広まっていくのさ

949デフォルトの名無しさん2021/06/19(土) 21:31:09.82ID:Lk+y+wSz
低レベルな質問には低レベルに答える
それだけの事
使い方が間違ってる事にはあえて突っ込まない優しさ

950デフォルトの名無しさん2021/06/19(土) 21:39:01.24ID:Lk+y+wSz
公式のサンプルの#1、#2のようなCALLの使い方もあるから、別に良いんじゃねという気もしないでもない

公式サンプル
http://web.archive.org/web/20180428070202/http://www.uwsc.info/sample.html

951デフォルトの名無しさん2021/06/19(土) 21:39:10.21ID:uJ2Gt/N3
あ、僕でも答えられる質問だ!
よーし張り切って教えちゃうぞ!

そしてこのざま

952デフォルトの名無しさん2021/06/19(土) 22:00:38.89ID:Lk+y+wSz
この程度のことで凄い事になっとるなw
ギスギスしすぎ

953デフォルトの名無しさん2021/06/19(土) 22:40:03.07ID:A8n9fwTn
初心者スレでも可能ではなく最適なものを理解した上で質問しなければならなかったのですね、スレが荒れる原因を作ってしまい失礼いたしました猿未満だったようなので猿レベルになるまで勉強してから質問するようにします

954デフォルトの名無しさん2021/06/19(土) 23:21:45.35ID:25IvVjLU
質問することで質問したこと以外に発見することもあるからええんやで

955デフォルトの名無しさん2021/06/20(日) 00:05:04.52ID:YihnOY9y
UWSCはそんな高尚なもんじゃないから気にするな
いい歳したおっさんには、一行もコードを書かずに喜々として叩いてる人の気持ちは分からん

956デフォルトの名無しさん2021/06/20(日) 02:46:28.68ID:rWaLY8jt
説明が難しいんですけど一部分の動作だけオンオフってできますか?

AndroidエミュのNOXでゲームマクロってのに興味が出ていろいろやってるんですけど、
いろんな処理をwhileとfendの中に入れてるんですけど、その中の一部分だけ画像1を見つけた場合に画像2を見つけるまで他の処理に追加して繰り返し実行されるようにして、
画像1がいなければすっ飛ばすって処理を組み込みたいです
問題は画像1が1回しか表示されないので、都度chkimgで画像1を見つけて実行ってのができなくて、
オンオフみたいに画像1を1回でも見つけたら以降は画像2を見つけるまでwhileとfendの中に組み込めないかなって考えてるんです

957デフォルトの名無しさん2021/06/20(日) 02:55:34.48ID:rWaLY8jt
call a.uws

while
//開始ボタンを押す
開始ボタンを押す処理

//終了ボタンを押す
終了ボタンを押す処理

//ここから
画像1を1回見つけたら以降は画像1がなくても画像2を見つけるまでa.uwsの中の処理を上2つの処理に加えたい処理()
//ここまで
fend

こんな感じのことをやりたいです

958デフォルトの名無しさん2021/06/20(日) 06:27:18.41ID:tvAYOSZI
NOXの場合の考慮とか
画像1が1回しか見つからないこととか
chkimgを余分に実行して時間がかかることとか
置いておく
状態を変更できる変数を使って画像1と画像2を
見つけたかどうかという状態を管理する
変数の名前はgazou1mitsuketaじゃなくていい

call a.uws
gazou1mitsuketa = False
while True
(省略)
//ここから
ifb chkimg("画像1")
gazou1mitsuketa = True
endif
ifb chkimg("画像2")
gazou1mitsuketa = False
endif
ifb gazou1mitsuketa
a.tsuika()
endif
//ここまで
wend

959デフォルトの名無しさん2021/06/20(日) 08:03:31.93ID:2nwNcO+1
>>958
option shortcircuit

call a.uws
gazou1mitsuketa = False

while True
(省略)
 //ここから
 ifb gazou1mitsuketa or chkimg("画像1")
  gazou1mitsuketa = True
  ifb chkimg("画像2")
   gazou1mitsuketa = False
  else
   a.tsuika()
  endif
 endif
 //ここまで
wend

960デフォルトの名無しさん2021/06/20(日) 22:13:34.21ID:rWaLY8jt
while trueにwendでした、寝ぼけてました
>>959が正しいってことですかね?やってみます

961デフォルトの名無しさん2021/06/20(日) 23:06:19.83ID:xqcz4eEH
>>960
959は958を効率よくした感じのはず
958でやってること理解できるなら959の方がいいと思う

962デフォルトの名無しさん2021/06/21(月) 19:36:45.44ID:qUhNELyw
>>961
ありがとうございます
でもoption shortcircuitってどんな意味があるんですか?
調べてもいまいちわからなくて

963デフォルトの名無しさん2021/06/21(月) 19:57:25.10ID:xAMfoQlc
短絡評価でググって分からなければとりあえずおまじないでいいよ
変な動作すると思ったらまた調べてみると分かるかもね

964デフォルトの名無しさん2021/06/23(水) 09:11:36.97ID:mNR5QgFC
result = funcA() AND funcB()
という式があった時 funcAの戻りがFALSEなら
funcBを評価しなくてもresultの値はFALSEで確定となる
だからfuncBを評価しても時間の無駄なのでfuncBを呼び出さないのが短絡評価

ちなみに旧VBやVBAは短絡評価が無いが、C系やPythonは短絡評価が標準
後者に慣れてるならOPTION SHORTCIRCUITを有効にすると幸せになれる

965デフォルトの名無しさん2021/06/23(水) 23:02:39.31ID:ZOV9Dozi
//ここから
 ifb gazou1mitsuketa or chkimg("画像1")
  gazou1mitsuketa = True

この場合、gazou1mitsuketa を見つけた場合、chkimg("画像1")を探さずにgazou1mitsuketa = True
で確定するってことであってます?

966デフォルトの名無しさん2021/06/24(木) 02:23:59.47ID:00iTQ5wf
gazou1mitsuketaがTrueの場合(=すでに1回chkimg("画像1")がTrueになった後)は
gazou1mitsuketaの評価だけでTrueが確定するから2回目以降のchkimg("画像1")は実行されない

967デフォルトの名無しさん2021/06/24(木) 19:13:43.20ID:PWbklwVl
>>966
すいません、短絡評価についてです

968デフォルトの名無しさん2021/06/24(木) 20:30:05.47ID:dP2DIBfG
>>967
言葉が足りないからちゃんと書いて
そもそも「gazou1mitsuketaを見つけた場合」ておかしい
gazou1mitsuketaは見つけるものじゃない

969デフォルトの名無しさん2021/06/25(金) 00:17:46.49ID:vMtaTkKe
すいません、それも言葉遣いだったようですが、>>965の部分が>>964の言う短絡評価ってことであってますか?

970デフォルトの名無しさん2021/06/25(金) 09:53:18.96ID:EowRs67i
もうすでに答え出てるけど、複数条件式がある場合に、最初の条件一致のみでその条件式を評価できる場合、それ以降の追加条件をスルーするという事

971デフォルトの名無しさん2021/06/25(金) 23:47:56.00ID:vMtaTkKe
じゃああってそうですね、ありがとうございます

972デフォルトの名無しさん2021/07/03(土) 12:53:45.98ID:7+9XI9UL
Andoroidエミュでゲームの周回マクロ組んでるんですけれど画像認識の処理を範囲指定じゃなくて指定のプロセス内のみで行う方法ってありませんか?

973デフォルトの名無しさん2021/07/03(土) 12:58:50.69ID:7+9XI9UL
エミュレーターウィンドウが他のウィンドウに隠れちゃうと画像認識処理が進まなくて困っているということです。

974デフォルトの名無しさん2021/07/03(土) 15:31:03.86ID:m1bhd94m
MOUSEORG関数を使って頑張ると可能

975デフォルトの名無しさん2021/07/06(火) 03:06:28.27ID:amsSEIe8
> id = GETID("**** - FANZA GAMES - Iron")
> Hnd = GETCTLHND(id, "Chrome_RenderWidgetHostHWND")
> MOUSEORG(Hnd, MORG_DIRECT, MORG_BACK)
>
> While True
>
> IFB CHKIMG("****_1.bmp")
> BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
> endif
>
> IFB CHKIMG("****_2.bmp")
> BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
> SLEEP(1)
> BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y,10)
> endif
>
> SLEEP(1)
>
> Wend


これでバックグラウンドでのブラゲの自動周回自体は機能するのですが
なぜか実行中はブラウザのタイトルバーなどがバグったかのようにずっとチラつきます
これが起こらないようにするにはどうしたらいいんでしょう?

上のものは解説サイトを元にしたもので
そこでの3行目は本来 MOUSEORG(Hnd, 2) でしたが何故かこれでは機能しなかったので
さらに調べてみたところ別のサイトにて MOUSEORG(Hnd, MORG_DIRECT, MORG_BACK) を見つけました
後者で正しく動きはしたもののチラつくようになってしまったという次第です

記述の仕方などが間違っているんでしょうか
教えてください

976デフォルトの名無しさん2021/07/06(火) 07:20:51.43ID:/RjXbpw3
UWSCはヘルプファイルが優秀だから分からなくなったら読むことをオススメする

MOUSEORGでMORG_BACKを指定している時の画面のチラつきはどうしようもなかったと思う
諦めてそのまま使うか、MORG_FOREにしてウィンドウを最前面に表示させておくか

977>9752021/07/08(木) 00:39:02.57ID:gAnN6jGv
そうなんですか
特に害も無いようなので気にしないことにします

ありがとうございました

978デフォルトの名無しさん2021/07/10(土) 20:08:14.26ID:XM4MvmXG
ifb chkimg("img.bmp")
btn(left,click,g_img_x,g_img_y)

これで画像の中央または右下をクリックしたいのですが
xとyに画像サイズを手打ちする以外の方法ありますか?

979デフォルトの名無しさん2021/07/10(土) 20:44:43.14ID:CnuMoVdC
>>978
btn(left,click,g_img_x + 50,g_img_y + 30)
こういうのではないってこと?

980デフォルトの名無しさん2021/07/10(土) 21:58:25.41ID:QRyBoOzw
>>978
画像の縦横の幅から中央の座標は計算できるだろ

981デフォルトの名無しさん2021/07/12(月) 01:07:25.55ID:8PUM0aGH
>>979
はい。頻繁に新しい画像に差し替える上に
毎回画像サイズが微妙に違うので画像の
右端と中央の値も自動で検出ないでしょうか?

982デフォルトの名無しさん2021/07/12(月) 05:22:18.76ID:vUaIVbuw
>>981
それぞれの画像のサイズはお前が知ってるんだから指定したらいいのでは?

983デフォルトの名無しさん2021/07/12(月) 10:24:19.84ID:H6QXN1y/
BMP画像の幅と高さを得る関数
https://poku.blog/pc/code/uwsc/img-height-wifth.html

984デフォルトの名無しさん2021/07/12(月) 13:04:37.72ID:IDkhHauo
自分はchkimgxの関数使ってるな

985デフォルトの名無しさん2021/07/12(月) 22:40:23.83ID:huq3V1Ev
>>982
サイズは調べないと分かりません。
頻繁に変わるサイズをいちいち確認するのは
中々手間な作業なので省けるなら省きたいです。

986デフォルトの名無しさん2021/07/12(月) 23:51:06.13ID:8VMj3XKP
>>983で出来ました
ソース貼り付けただけだとうまく動かなかったので文字を囲う"と計算式のマイナスを直したらちゃんと動きました
情報公開する方はちゃんと動くものを出してほしいですね

987デフォルトの名無しさん2021/07/15(木) 05:11:03.79ID:mj6R5ge4
> 情報公開する方はちゃんと動くものを出してほしいですね
清々しいまでの乞食だw

988デフォルトの名無しさん2021/07/15(木) 07:09:47.12ID:BwKcyqiC
>>987
気持ちよくしてくれた方に対して乞食呼ばわりは失礼です
まだ義務教育を受けている段階の方なら意味をはっきり理解していない言葉は辞書を引く癖をつければ間に合います

989デフォルトの名無しさん2021/07/15(木) 07:28:32.91ID:9d/0yVjN
清々しい(きよきよしい)キチガイ

990デフォルトの名無しさん2021/10/30(土) 19:25:40.38ID:tA37D2o5
昔PRO購入していたUWSCを最近ちゃんと使い始めて、初めてこのUWSCスレみつけた!
初〜中級者な自分に有益な情報多くてほんと助かります(言い争いも多いけど)。
本スレのほうも楽しみ。
あと作者が亡くなられてたということで本当に残念です。昨日知りました。
このスレが消える前に自分メモ用にログ残したった。
みんな初心者卒業しちゃってて継続なさそうだし。

991デフォルトの名無しさん2021/10/30(土) 19:40:25.15ID:BIRu0arL
なんで書き込みないのかと思ったらこっちは初心者用だからなのか

992デフォルトの名無しさん2021/11/12(金) 20:31:09.08ID:9I9Wghw5
UWSCはwindows10で動作するんですか?

993デフォルトの名無しさん2021/11/12(金) 20:33:23.14ID:JKu/AJc8
>>992
全機能が使えるかは分からんが、俺の用途では普通に使えてる

994デフォルトの名無しさん2021/11/12(金) 22:56:54.17ID:xoJHoay5
>>992
普通に使える
IE関係の機能は使えないのがあるかもしれないが、IE使ってないから分からん

995デフォルトの名無しさん2021/11/13(土) 09:59:44.60ID:CrYSxUjw
>>993-994ありがとう
画像認証が出来ないOSの設定なのかな?

996デフォルトの名無しさん2021/11/13(土) 11:16:47.86ID:Oi0tyZlY
実際にうまく動作しないならそう書け
具体的に書けば教えてもらえるだろう

997デフォルトの名無しさん2021/11/14(日) 00:12:11.79ID:tEJjUPzv
うめ

998デフォルトの名無しさん2021/11/14(日) 07:53:25.02ID:xN0MYk0E
誰か作者の魂を呼んでくれ

999デフォルトの名無しさん2021/11/16(火) 01:02:55.97ID:fqXCMnDe
999

1000デフォルトの名無しさん2021/11/16(火) 01:10:18.00ID:b0ZMvWtK
ご冥福をお祈りします


lud20220918114113ca

レス:1-200 201-400 401-600 601-800 801-1000 ALL

このスレへの固定リンク: http://5chb.net/r/tech/1537758829/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「UWSC初心者用スレ ->画像>9枚 」を見た人も見ています:
【初心者】懸垂10回を目指すスレ 12【チン】
PC初心者にありがちなこと
Mac初心者質問スレッド281
【画像】JDまんさん「事故りまくったけど、もう少しでダッサイ初心者マークとれる!うれしい!」
下手くそ専用スレ
くだすれDelphi(超初心者用)その16
初心者が気軽に何でも撮影してUPして評価してもらうスレ 3
【キンスレ】キングスレイド初心者用スレpart3【初心者】
【WoT】World of Tanks 初心者スレ 129
Twitter 初心者&質問スレ Part.27
くだすれDelphi(超初心者用)その55
【WoT】World of Tanks 初心者スレ 137
【USD/JPY】ドル円専用スレ Part28175【$\】
【USD/JPY】ドル円専用スレ Part27648【$\】
マム初心者が集まるスレ
【映画】汎用スレ 2018/08/05〜【音楽】
FX初心者スレ Part98
PC初心者のワイ、充実したPCライフが送りたい。
PC初心者にも脱税者の匿名告発は簡単 [無断転載禁止]
初心者から中級者を目指す人の救済スレ(ガンプラ用)
人狼ジャッジメント初心者スレ part13
ソードワールド初心者スレ
[SDK]iPhoneアプリ開発初心者質問箱48[touch][iPad] [無断転載禁止]
俺、パチ初心者専用質問スレ6本目
jubeat初心者スレ 32nd Tune
人狼ジャッジメント初心者スレ part9
Webサイト制作初心者用質問スレ part248 [無断転載禁止]
自作PC初心者パーツ購入相談事務所【35列目】
徳井専用スレ
RC初心者に教えてくれる人が集まるスレ [無断転載禁止]
UWSC初心者用スレ2
【目指せ】嘘PC用語辞典@PC初心者【1000】
【USD/JPY】ドル円専用スレ Part27928【$\】
【Switch】Splatoon2/スプラトゥーン2 初心者スレ99【質問/雑談】
iPodtouchを使うには…?(初心者)
【Rank100↓】グランブルーファンタジー超初心者スレ542
みかんの戯言専用スレ Part.4
みかんの戯言専用スレ Part.5
【Rank100↓】グランブルーファンタジー超初心者スレ462 ©2ch.net
楽天ラッキーくじ専用スレ 43
【DQ10】ドラゴンクエストX 初心者スレ 129組目
BTS専用スレ
PC初心者だけど、5000円のパソコンとかないの? [無断転載禁止]
【DQ10】旅芸人専用スレ ハッスルダンス79回目
新 キャンプ用テント専用スレ
将棋ウォーズ友達対局用スレ (段級位問わず)
MacOSX86初心者スレッド Part6
自作PC初心者に教えて…
【初心者専用】引き寄せの法則 2【証拠不要】 [無断転載禁止]
TOEIC初心者が頑張るスレ
囲碁初心者・入門者への指導法を考えるスレ
【mobage】 グランブルーファンタジー初心者スレ2406 [無断転載禁止]
街の自転車屋専用スレ 119店目
自演ノイローゼエタ専用スレ
【慈悲】PC初心者をお救いください
自作PC初心者パーツ購入相談事務所【27列目】
Mac初心者質問スレッド283
Mac初心者質問スレッド282
pc初心者なんだが質問したい
PC初心者のJKだけど質問ある?
自作PC初心者パーツ購入相談事務所【42列目】
PC初心者板の回答者の質を向上される為の・・・
【rank100↓】グランブルーファンタジー超初心者スレ609
ウクレレ初心者集まれ!! Part19 (ID有)
【Rank100↓】グランブルーファンタジー超初心者スレ453
00:37:51 up 8 days, 14:59, 0 users, load average: 116.60, 127.96, 137.84

in 0.13216590881348 sec @[email protected] on 103113