X



UWSC初心者用スレ
■ このスレッドは過去ログ倉庫に格納されています
0167デフォルトの名無しさん
垢版 |
2018/12/26(水) 19:46:55.86ID:lZXR1qia
代数の呼び出し?ってどうやるんですか?

a = "abcd"
fukidasi("a ")
SLEEP(5)

これだと aしか表示されないです。

auto hot key だと%でくくる奴です。
a := "abcd"
MsgBox, 0, , %a%
Sleep, 5000
0170デフォルトの名無しさん
垢版 |
2018/12/27(木) 16:03:50.96ID:lC6iyiD1
デスクトップにあるaaa.txtをデスクトップのa aフォルダに移動したいのですが

a = "C:\Users\xxx\Desktop\aaa.txt"
b = "C:\Users\xxx\Desktop\a a"
DOSCMD("move " + a + " <#DBL>C:\Users\N'o'Te\Desktop\a a<#DBL>")

これだと動くのですが、下の記述だと移動してくれません。

DOSCMD("move " + a + " " + b + "")
どうすれば動のでしょうか。
0171デフォルトの名無しさん
垢版 |
2018/12/27(木) 16:10:54.01ID:Lwj8mmb4
>>170
まずはdoscmdの返り値で何のエラーか確認する
てかダブルクォート外しちゃったからってだけだろうけど
0172デフォルトの名無しさん
垢版 |
2018/12/27(木) 16:41:38.79ID:lC6iyiD1
返り値の出し方わからなかったんですけどダブルクォートつけたらうごきました。

b = "<#DBL>C:\Users\xxx\Desktop\a a<#DBL>"

これで良いぽいです。
0173デフォルトの名無しさん
垢版 |
2018/12/27(木) 22:25:30.23ID:TffHzaDx
DOSCMD("move <#DBL>" + a + "<#DBL> <#DBL>" + b + "<#DBL>")
とすれば "a","b" どちらのフルパス名内にスペースがあっても大丈夫
0174デフォルトの名無しさん
垢版 |
2018/12/28(金) 06:37:12.07ID:/5L8Sx5/
>>172
返り値てかコマンドプロンプトの標準出力だけど
doscmd自体が文字列返す関数なので変数に代入してもいいし、直接fukidasiとかに突っ込んでもおk
0175デフォルトの名無しさん
垢版 |
2019/01/09(水) 18:25:52.61ID:pINC7IeU
UWSCからプログラムに初めて触れる程度の初心者です。
画像認識について質問があります
現在複数の画像を設定してクリックするというコードを書いています。
While True
ifb chking(“画像名1.bmp”)
btn()
elseif chking (“画像名2.bmp”)
btn()
....
Wend
という文章になっており無駄が多いです。
それで一度検出した画像の検出をさせないプログラムを書きたいのですがそのような事は可能なのでしょうか?その際に使用する関数などアドバイスをしていただきたいです。
0177デフォルトの名無しさん
垢版 |
2019/01/09(水) 19:12:31.19ID:pINC7IeU
>>176
!!
その話詳しく聞かせて欲しいです。
While True
if chking(“画像名1.bmp”)
else
ifb chking(“画像名1.bmp”)
btn()
if chking(“画像名2.bmp”)
else
elseif chking (“画像名2.bmp”)
btn()
....
Wend
というわけではないですよね...

画像名1.bmp=0なら画像認識、1なら画像認識しない
のような文を追加するのでしょうか?
0178デフォルトの名無しさん
垢版 |
2019/01/09(水) 19:32:53.70ID:W2TzwIR9
そういうこと
フラグの方法だと画像の枚数分フラグが必要になる

俺の提案
画像ファイル名を配列に格納してヒットしたら配列の要素にtrue格納する
当然画像検索前に要素がtrueか否かチェックする
0179デフォルトの名無しさん
垢版 |
2019/01/09(水) 19:58:12.98ID:+1cYlkH0
>>177
まあ、実装方法は色々ある
最終的には配列を引数にした関数までいくと脱初心者って感じだが自分が言ったのは

/a = true
/b = true
/略
/while true
/ if a and chkimg(“a.bmp”) then
/ btn()
/ a = false
/ endif
/ if b and chkimg(“b.bmp”) then
/略
/wend

みたいなの
行頭の/はインデントの為なので気にしないで
0180デフォルトの名無しさん
垢版 |
2019/01/09(水) 19:58:28.44ID:pINC7IeU
>>178
本当に本当にありがとうございます!!
私の考えているコードです!!
本当にC言語等学んだ事がないので助かりました。

DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”
DIM flag[]=0,0,0

For num = 0 to length(gazou)-1
ifb flag[num]=0
ifb chking(“gazou[num]”)
btn()
num=num+1
else
num=+1
NEXT

かなり短縮することができました。
ただフラグを追加した途端文が不安になってしまいました。
0181デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:03:46.42ID:pINC7IeU
>>179
あーなるほど!考えてくださりありがとうございます
a and chkingという使い方が良さそうですね
>>180の文を少し編集してみます!
0182デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:08:47.81ID:+1cYlkH0
>>180
for〜nextの中で添字操作したらダメだよ
nextが勝手にやるからいらない

てかそれだと一周しかしないからwhileと組み合わせてね
0183デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:14:05.78ID:DJbFsP/v
>>182
あっー!そういえばいりませんねw
アドバイスありがとうございます
あとこれのフラグを配列化したいのですがa,b,cは定数ですよね?
配列の中に入ったままa=trueなどの情報を持てるのでしょうか?
DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”
DIM flag[]= a,b,c

a = true
b = true
c = true

while true
for num=0 to length(gazou)-1

if a and chkimg(“gazou[num]”) then
btn()
a = false
next
wend
0185デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:19:13.03ID:DJbFsP/v
ごめんなさい解決しました!
付き合ってくださった方々ありがとうございます
画像が増えるたびa=trueを追加していけば以下の文章で大丈夫そうですね
DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”
DIM flag[]= a,b,c

a = true
b = true
c = true

while true
for num=0 to length(gazou)-1

if flag[num] and chkimg(“gazou[num]”) then
btn()
flag[num] = false
next
wend
0186デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:21:39.60ID:W2TzwIR9
>>185
画像がヒットしたらgazouに格納されてるファイル名をtrueで上書きすると言いたかった
そしたら配列のフラグいらなくなるでしょ
0188デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:31:57.46ID:DJbFsP/v
>>186
!!確かにそれを使えばもっと短くできますね
やってみます
0189デフォルトの名無しさん
垢版 |
2019/01/09(水) 20:36:48.88ID:DJbFsP/v
色々アドバイスありがとうございます
DIM gazou[]=“画像1.bmp”,”画像2.bmp”,”画像3.bmp”

while true
for num=0 to length(gazou)-1

if gazou[num]!==flase and chkimg(“gazou[num]”) then
btn()
gazou[num] = false
next
wend
これ完璧ですね!自宅に帰り次第実行させてみたいと思います!!
0190デフォルトの名無しさん
垢版 |
2019/01/09(水) 21:28:06.29ID:pINC7IeU
本日ライセンス購入の件をumiumiさんに問い合わせをしたのですがやはり購入は厳しいですよね...
0192デフォルトの名無しさん
垢版 |
2019/01/12(土) 20:42:30.37ID:0UO0qOat
この前コードの相談に乗っていたものです
コードは完成したのですが
DIM gazou[]="unko(1).bmp","unko(2).bmp","unko(3).bmp","unko(4).bmp","unko(5).bmp"
//画像名
WHILE TRUE
for num=0 to length(gazou)-1
//クリック対象マークの画像ファイルを指定
IFB gazou[num]=true and CHKIMG("gazou[num]")
//クリック対象の画像が見つかった場合、その画像をクリック
BTN()
//クリック後はプログラムを終了する
gazou[num] = true
ENDIF
//監視時間間隔[s]
SLEEP(0.1)
next
WEND
これで実行した場合chking("gazou[num]")が配列から使用されずgazou[num].bmpとして反映されてしまいunko(1)bmpとして反映されません
chkingの中では配列を使用することが出来ないのでしょうか?アドバイスお願いします
またproライセンスの購入の件ですがまだ返信が来てません
0194デフォルトの名無しさん
垢版 |
2019/01/12(土) 21:08:06.71ID:HvhCDbr8
別にuwscに限った話でもないんだが、文字列をダブルクォートで囲うというのは、プログラム的な解釈をさせずそのままの文字列で扱って下さいということ
引数に文字列をわたしたいからといってダブルクォートで囲う必要はない
0195デフォルトの名無しさん
垢版 |
2019/01/12(土) 21:15:06.03ID:0UO0qOat
返信ありがとうございます!!
配列使うの初めてで勘違いしてました。実行する事ができました!本当にありがとうございます!

あとumiumiさんから返信が来た場合連絡に来ます
0197デフォルトの名無しさん
垢版 |
2019/01/17(木) 17:37:08.88ID:ywa0zm07
UWSCのスクリプトの停止をALT+F2から変えたいんですが、
設定を見たところ、2つのキーを押すしか選択肢がないみたいなんですが、
これをEscキーのみに変えられないでしょうか?
0198デフォルトの名無しさん
垢版 |
2019/01/17(木) 18:07:29.42ID:3kooyktr
設定のところでは無理みたいだからスクリプト内で
キーを監視して押されたら止めるのを組み込むしかないね
0199デフォルトの名無しさん
垢版 |
2019/01/17(木) 18:15:04.25ID:pnYdwJsv
>>197
変えられない
コードでesc押したら終了するように書いておく
ループの先頭に
if GETKEYSTATE(VK_ESC) then exit
みたいな感じ
0200197
垢版 |
2019/01/17(木) 19:51:17.64ID:ywa0zm07
どうもありがとうございます。スクリプトの方に記述しておきました。
0201デフォルトの名無しさん
垢版 |
2019/01/24(木) 13:58:09.20ID:Vpq0nFz5
マウスを取られずにドラッグ&ドロップの動作を行いたいのですがうまく動作しません。
現状はウィンドウIDを取得して
mouseorg(id,2)
btn(left,down,x1,y1)
mmv(x2,y2)
btn(left,up,x3,y3)
としています。left,downまではできているようなのですがおそらくmmvが動作していない感じがします。
mouseorg(id,0)の場合はちゃんと動作するので原因が分からず困っております。
たかがドラッグ&ドロップ程度のことができないなんてことはないと思うのですがどなたか分かる方いらっしゃいませんでしょうか?
0203デフォルトの名無しさん
垢版 |
2019/01/25(金) 03:55:18.58ID:djc20dkg
まずmmv挟む必要あるのかってのと遅延入れないとアプリ側で処理が追いつかない場合が多い
0204デフォルトの名無しさん
垢版 |
2019/01/28(月) 03:10:09.68ID:a09O8V2t
六ヶ所あるポイントをランダムで五ヶ所クリックさせたいのですが、良い方法を教えてください。
ポイント1 x座標100 y座標185
ポイント2 x座標258y座標296
ポイント3x座標315y座標580
以下略
今書こうとしてるのが
for i = 0 to 4
BTN(LEFT,CLICK,ここをランダムなポイントにしたい)
next
アドバイスよろしくお願いします。
0211デフォルトの名無しさん
垢版 |
2019/01/29(火) 02:43:56.37ID:IO64zMNw
>>202
201です。書き忘れていて申し訳ありませんがsleepはいろいろ数値を変えて各動作に0~2秒程度余裕を持たせて試しています。
mmvも必要ないかもと思い抜いてみたりしましたが結果は変わりません。
そもそも裏動作でドラッグ&ドロップは可能なのでしょうか?
可か不可だけでも教えていただけると嬉しいです。
0212デフォルトの名無しさん
垢版 |
2019/01/29(火) 02:51:47.66ID:LOO3gYN5
>>211
裏動作できるかどうかはそのアプリ次第
簡単な確認方法として裏動作させて
IDでSAVEIMGして正常にスクリーンショット取れればできる
取れなければできない
0213デフォルトの名無しさん
垢版 |
2019/02/17(日) 20:05:21.25ID:z/uMXN8p
CHKIMGXで画像の色を判定したいんですけどできますか?
例えば、元の画像が灰色だったらfalseが返ってくるようにしたいです。
0215デフォルトの名無しさん
垢版 |
2019/02/17(日) 22:00:13.55ID:z/uMXN8p
>>214
CHKIMGX(temp.bmp)の画像の色が同じじゃないときに処理通っちゃうんですけどそれは仕様ですか?
0217デフォルトの名無しさん
垢版 |
2019/02/18(月) 07:07:31.39ID:JSWq4P0e
>>215
そういう機能が既にある

CHKIMGX( 画像名, [ID, x1, y1, x2, y2, 番号, 判定閾値, 着目する色] )
着目する色: 指定した色とどれだけ近いかでグレースケール化した画像を使ってマッチングの計算を行う。文字の色などを指定することで背景の変化に強いマッチング判定を行うことが可能

着目する色の引数に認識したいカラーコードを入れればOK。「色 判定 アプリ」とかで検索すれば認識したい画像からカラーコード生成できるサイトは引っ掛かる。
これで色違いでの誤動作はだいたい弾いてくれるよ
0218デフォルトの名無しさん
垢版 |
2019/02/18(月) 11:57:12.20ID:B+vGb4gg
色の差(閾値)を考慮する機能、いつ頃実装されたのか個人的に興味ある
15年前には無かったような気がするんだが
0219デフォルトの名無しさん
垢版 |
2019/02/18(月) 21:39:57.37ID:2CdapbG+
>>216
イメージはこんな感じの処理を期待しています。
https://imgur.com/Ax1fWdO

CALL ChkImgX.uws

winid = getid("Main")
x1 = 0
y1 = 0
x2 = 1280
y2 = 720
Detect_num = 1
Threshold_delta = 5
Target_color = -1

startup_chkimgx()

ifb CHKIMGX("pic/select.png" , winid , x1 , y1 , x2 , y2 , Detect_num , Threshold_delta , Target_color)
CMD = "cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap " + G_IMGX_X + " " + G_IMGX_Y
DOSCMD(CMD)
endif

shutdown_chkimgx()
0220デフォルトの名無しさん
垢版 |
2019/02/18(月) 22:39:55.29ID:nrhNd94Q
>>219
スクリプトに問題はなさそう
閾値を調整しても駄目なんだよね?
あと対象の画像をsaveimgで保存した画像で検索したらどうなるか
着目する色を指定するまでもない画像だとおもうんだけど
0221デフォルトの名無しさん
垢版 |
2019/02/18(月) 23:02:29.08ID:CU6zYEEj
ChkImgXは画像モノクロに加工して走査するからグレーボタンなんて閾値しだいかも
これなら完全一致でChkImgのほうが良かったりして
その際元画像はもう一回り青色範囲内にして背景含めない必要かな
0222デフォルトの名無しさん
垢版 |
2019/02/19(火) 01:41:50.90ID:Wcea5l1h
>>219
chkimgxは指定した判定画像に「近い」ものを探している
かつ高速化の為に内部では判定画像も画面もグレースケール化して処理をしている
(綺麗なグレースケールでなくかなりざっくりしたもの)

なのでボタン背景色の違いはグレースケール化によって判別出来ない
あるいは、あえて背景の青を着目色として指定すると青色有無が判定画像に強調されるので判別できるかもしれない
ただしその場合、文字が消えてボタンの誤判定が発生すると思われる

というわけで、素直にchkimg使ったらという>>221に同意
0223デフォルトの名無しさん
垢版 |
2019/02/19(火) 20:27:55.49ID:/Cx1K2A5
>>220,221,222
ありがとうございます
参考にしてちょっとやってみます
0224デフォルトの名無しさん
垢版 |
2019/03/09(土) 00:57:44.21ID:yFQrIlgr
すみません別のUWSCスレにも書いたんですが
クリックがうまくされず、待機時間など入れてみましたが失敗することが多く、

どのタイミングでクリックしてるのか見るためにBTN(LEFT,CLICK,)の前に print "クリックします"
という処理を入れたらなぜか確実にクリックされるようになったのですが、何が原因なのでしょうか?
0225デフォルトの名無しさん
垢版 |
2019/03/09(土) 17:08:59.22ID:kABtCqRT
メッセージループやフォーカス問題かな
アイドル状態になるまでメッセージループ回しつつ待機する処理を置く
0226デフォルトの名無しさん
垢版 |
2019/03/09(土) 17:20:18.72ID:qrlmwqjK
いや単に実行速度が早すぎるだけでしょ
sleep入れるかbtnの引数見て待ち時間入れればいい
0227デフォルトの名無しさん
垢版 |
2019/03/09(土) 17:22:38.46ID:pzt1chqt
>>224
btn失敗するときはたいていウィンドウが非アクティブになってて1クリック目が受け付けられてないことが多いからウィンドウのアクティブ化を書いてあげると確実になる
0228デフォルトの名無しさん
垢版 |
2019/03/09(土) 17:56:05.87ID:yFQrIlgr
ありがとうございます。
とりあえず使えてはいますが毎回 ”クリックします” が表示されるので困ってます。

BTN(LEFT,CLICK,,,100)では失敗が多く、sleep(5)では機能しますが遅すぎるので、
print "クリックします"を仕方なく使っています
失敗するのはランダムなのでウィンドウはアクティブになっていると思うのですが。
0229デフォルトの名無しさん
垢版 |
2019/03/09(土) 18:00:11.83ID:yFQrIlgr
クリックが長押しになっているのが原因のような気がしています
画面がドラッグされてしまうことが多いので
0230デフォルトの名無しさん
垢版 |
2019/03/09(土) 21:35:40.19ID:qrlmwqjK
>>229
よく分からないので再現できる程度のコード貼ってくれないか?
アプリ隠したいならペイントでも電卓でも適当なものでいいからさ
もしそれらで再現しないなら操作したいアプリ側の仕様もあるかもしれないし、切り分けの一助にはなるだろう
0231デフォルトの名無しさん
垢版 |
2019/04/02(火) 13:20:23.00ID:VFSC/5Or
INIファイルで16進表記はできないでしょうか?
UWSC INI 16進 で調べてみたけど見つかりませんでした
わかる方いたら教えてください
因みに$FFでは駄目でした
0233デフォルトの名無しさん
垢版 |
2019/04/02(火) 19:46:22.94ID:Vs75GbqA
EVAL
0234デフォルトの名無しさん
垢版 |
2019/04/08(月) 02:47:11.35ID:YAySA4WV
DIM writetval = $0000FFFF
WRITEINI( "section", "hex", num_to_hexstr(writetval,8))
DIM readeval = hexstr_to_num(READINI( "section", "hex"))
MSGBOX(num_to_hexstr(readeval,8))


FUNCTION num_to_hexstr(num, iwidth)
 RESULT = "$"+REPLACE(FORMAT(num, iwidth,-1)," ","0")
FEND

FUNCTION hexstr_to_num(strhex)
 RESULT = EVAL(strhex)
FEND
0236デフォルトの名無しさん
垢版 |
2019/04/09(火) 23:02:37.42ID:hVRP1zbV
UWSCでIBM大型計算機エミュレーターの制御はできるのだろうか?
録画機能を使ってもうまく録画してくれない
0237デフォルトの名無しさん
垢版 |
2019/04/09(火) 23:56:12.98ID:elRErDJW
TSO(TSS)かね? P-COMとかFalconとかソフト名含めてググれば(UWSCじゃなくてVBSとかで)多少事例は出てくるだろう
てかそもそもエミュレータにマクロ機能ついてて外部ソフトで操作する必要はないと思うんだけど
0240デフォルトの名無しさん
垢版 |
2019/04/10(水) 09:15:41.71ID:84IJZde6
PCで他のマシンのエミュレータなどという言葉が認知されるよりずっと前から汎用機の端末エミュレータの方が知られていたわけだが。
0241デフォルトの名無しさん
垢版 |
2019/04/10(水) 19:59:20.55ID:C73Jm2jh
>>237

別業務システムからExcelに落としたデータを
大型計算機に入力していきたいニーズがあり、
ふさわしい手段としてUWSCを選択しました
0243デフォルトの名無しさん
垢版 |
2019/04/10(水) 23:22:57.82ID:m7iPF43E
>>241
ISPFで入力フォームがあって転記するのを自動化したいというお話し?
そんなことするよりCSVか固定長に直してエミュレータのファイル転送機能かFTPでデータセットにしちゃった方がいいと思うけど
まぁとにかくUWSCは全く適してないので、悪いこと言わんからさっさと有識者捕まえて教えてもらいな
0244デフォルトの名無しさん
垢版 |
2019/04/15(月) 13:11:00.13ID:R0+d+gEp
https://qiita.com/macro_no_deshi/items/dd3b3405123bad0cfe4a
ここを参考に、NOXで裏マクロ化したいのですが動作しません

IF CHKIMGX( "画像1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
BTN(LEFT, CLICK, G_IMGX_X+300, G_IMGX_Y+200)
ENDIF

これで動作するマクロを裏マクロ化したいので、上記HPを参考に以下の記述にしてみましたが動作しません
NOXの保存先はデフォルトです

IF CHKIMGX( "画像1.bmp", winid, x1, y1, x2, y2, Detect_num, Threshold_delta, Target_color)
CMD = "cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap " + (G_IMGX_X+300) + " " + (G_IMGX_Y+200)
PRINT CMD
DOSCMD(CMD)
ENDIF

PRINTで表示されるテキストには、以下のように記載されています
cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 440 300
コマンドプロンプトで直接入力すると以下のように返ってきます
error: no devices/emulators found
0245デフォルトの名無しさん
垢版 |
2019/04/15(月) 13:31:06.08ID:cJYPoSuP
>>244
no devices/emulators found

エミュレーターが接続されていませんよと出てるので今立ち上げているエミュがadbに接続されているか確認
複数立ち上げているならマクロを回したいエミュを指定する必要がある
no devices/emulators foundまで表示されているということはnox_adbまではコマンドが通っているはずだからその先を見直す
0246デフォルトの名無しさん
垢版 |
2019/04/16(火) 16:11:07.01ID:OH4xxM/G
エンコードの自動化をしたいのですが、エンコードソフトにファイルを渡した時、
たまにエラーが出るのですがそれを回避したいです。

エラー時はコマンドウインドウが出るので "いいえ"を選択すれば回避できます。

if ID = -1 でエラーウインドウが出なかった場合は行けるのですが
エラーウインドウが出た場合の指定ってできるのですか?

一応下のコマンドで作ってみたのですが、動くには動くのですがエラーが出なかった場合10秒ほど
止まってしまい、その後動き始めます。
うまく動かすにはどうすればいいのでしょうか

質問id=GetID("質問","Qt5QWindowIcon")
IF 質問id = -1
ELSE
clkitem(質問id,"いいえ",CLK_BTN)
endif
0247デフォルトの名無しさん
垢版 |
2019/04/16(火) 16:18:38.91ID:8xPkTgw7
>>246
ヘルプより

戻値 = GETID( タイトル, [クラス名, 待ち時間秒, MDI子タイトル] )
 待ち時間秒: 確認できるまで指定された秒数待ちます (0.01〜)
         0: 0.1〜10秒まで状況や負荷により自動判断 (デフォルト)
        -1: 無期限待ち
0248246
垢版 |
2019/04/16(火) 16:52:24.80ID:OH4xxM/G
>>247

質問id=GetID("質問","Qt5QWindowIcon",0.5,)

こうしたらサクッと動きました!
ありがとうございます。
0249デフォルトの名無しさん
垢版 |
2019/04/24(水) 22:39:44.25ID:HpurvKDn
私も>>244と同じサイト見て裏マクロを実行しようとしているのですがうまくいきません
認識した位置でSAVEIMGを使って確認すると、認識している位置はあっていましたが、
ペイントソフトを入れてどこをタップしてるのか見ると認識したところからずれているのが分かりました
縮尺がずれているような感じなのですがなぜそうなったのかがわかりません
0250デフォルトの名無しさん
垢版 |
2019/04/24(水) 23:08:04.34ID:HpurvKDn
手探りで調節すると
x方向に1.8倍、y方向に1.9倍ぐらいすれば近いようになるのですがよくわかりません…
0251デフォルトの名無しさん
垢版 |
2019/04/25(木) 00:53:43.08ID:/PrCm3A4
>>249-250
Noxでやってるって話ならウインドウ縮小してるのでは?
当然ながらデスクトップの解像度よりNoxは小さいサイズで縮尺100%の状態で座標判定する必要がある
(設定からウインドウサイズの復元でサイズ100%になる)
注意点は縦画面のアプリ、横のサイズが縦になるから入らなくなるので自動で縮小される
0253デフォルトの名無しさん
垢版 |
2019/04/25(木) 14:40:58.77ID:nqSsKFf7
>>251
>>252
解像度を携帯電話720×1280でやってましたが
PCの解像度が低くて自動的に縮小されてたんですね
カスタムで360×640のサイズにしたら狙った通りの場所をタップしてくれました
マクロ以前の話でしたね…
レス有難うございました
0254デフォルトの名無しさん
垢版 |
2019/05/07(火) 19:34:12.96ID:tBIfA+Hb
音が止まったら(無音状態になったら)クリックする というマクロを作りたいのですが音が出ているか出ていないかを検知する関数はないのでしょうか?
0255デフォルトの名無しさん
垢版 |
2019/05/07(火) 21:18:38.19ID:uIMNwWvX
>>254
そんな関数あるわけないじゃん

やり方はいくらか思いつくが
・サウンドドライバから出力レベルを取る
・常駐するレベルメーターを表示するソフトを使って画像認識する
0259デフォルトの名無しさん
垢版 |
2019/05/08(水) 20:51:34.11ID:bLQQQcYM
高速リアルタイム スペクトラムアナライザー WaveSpectra
http://efu.jp.net/soft/ws/ws.html
WS151.ZIP

とかで上の波形が直線になることを画像認識するのがお手軽と思う


Core Audio Interfaces
https://docs.microsoft.com/en-us/windows/desktop/coreaudio/core-audio-interfaces
IAudioPeakMeter interface
https://docs.microsoft.com/en-us/windows/desktop/api/Devicetopology/nn-devicetopology-iaudiopeakmeter
IAudioPeakMeter interface
https://docs.microsoft.com/en-us/windows/desktop/api/Endpointvolume/nn-endpointvolume-iaudiometerinformation

For a code example that uses the IAudioMeterInformation interface, see Peak Meters
https://docs.microsoft.com/ja-jp/windows/desktop/CoreAudio/peak-meters

hr = pMeterInfo->GetPeakValue(&peak);

IAudioMeterInformation::GetPeakValue method
https://docs.microsoft.com/en-us/windows/desktop/api/Endpointvolume/nf-endpointvolume-iaudiometerinformation-getpeakvalue

↓これはPowershellでの例
.net – ウィンドウが現在サウンドを再生しているかどうかを調べる
https://codeday.me/jp/qa/20190319/438303.html
0260デフォルトの名無しさん
垢版 |
2019/05/09(木) 20:25:45.26ID:Tv5gs4em
>>259
試してみたけど
これそのまんますんなり使えるな
https://codeday.me/jp/qa/20190319/438303.html
Add-Type -TypeDefinition @'
から
'@
までの後ろに
[Foo.Bar]::IsWindowsPlayingSound()
を付け足して
IsWindowsPlayingSound.ps1で保存
DIM playng = POWERSHELL("C:\TEST\IsWindowsPlayingSound.ps1")

で音が出てればTrue、出ていなければFalseが返るようになる

今までPOWERSHELLスクリプトを実行したことがなれれば
実行できないとエラーがでるので管理者権限でポリシーの設定が必要

UWSCでpowershell()関数使ったらエラー出た問題
https://stuncloud.wordpress.com/2014/07/10/uwsc_powershell_func_had_error/

もしくはPOWERSHELL()でなくDOSCMD()を使って
DIM playng = DOSCMD("powershell -ExecutionPolicy RemoteSigned -File C:\TEST\IsWindowsPlayingSound.ps1")
0261デフォルトの名無しさん
垢版 |
2019/05/09(木) 20:32:53.56ID:Tv5gs4em
数値として取りたい場合は
public static bool IsWindowsPlayingSound()

public static float GetWindowsPlayingSoundLevel()
にして
return value > 1E-08;

return value;

[Foo.Bar]::IsWindowsPlayingSound()

[Foo.Bar]::GetWindowsPlayingSoundLevel()
にすれば
数値としてとれるようになる
0265デフォルトの名無しさん
垢版 |
2019/05/14(火) 08:05:11.43ID:sv+72Rh7
>>244 のサイトのサンプルコード(完成形)を、画面サイズと画像ファイル名だけ変更して
実行してみたのですが、

jobexp.bmpを発見しました。
cd C:\Program Files (x86)\Nox\bin & nox_adb shell input touchscreen tap 718 183

とテキストだけが繰り返されて、画面がタップされません。
パスをコマンドプロンプトから実行すると、画像認識した座標がタップされるのですが・・・。
どこを見直したら良いでしょうか?
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況