[ 掲示板に戻る ]

過去ログ閲覧モード

バックグラウンドの起動方法について / R
初歩的な質問かもしれませんがお許し下さい。
アクティブ時の画像認証等はうまく動作してくれますが、mouseorg関数がどうやってもうまく行かず困っております。
メモ帳の非アクティブの状態で入力は出来たのですがNOX(Android仮想シュミレーター)での動作が画像認証は疎かクリックすらうまくいきません。
UWSCの設定内にあるバックグラウンドで実行出来る形で記録、を用いてもうまく行きませんでした。
どなたかご教授頂けましたら幸いです。

No.4494 2017/10/02(Mon) 18:42:30

Re: バックグラウンドの起動方法について / R
記載し忘れましたのでスクリプトに誤りがあればご指摘下さいm(_ _)m

id = GetID("Nox1 ライン有")
id = GetCtlHnd(id,"Qt5QWindowIcon")

MOUSEORG(id,2)


//クエストクリック
IFB CHKIMG("WS000000.bmp") //D:\Users\R.ishikawa\Desktop\UWSC モンスト\絆マクロ\WS000000.BMP//
BTN(LEFT,CLICK, G_IMG_X, G_IMG_Y)
ELSE //
MSGBOX("画像認識に失敗しました。")
ENDIF

No.4495 2017/10/02(Mon) 18:43:50
アプリの指定ITEMが出るまで待ち、無い場合は終了したい / たんと
アプリに表示されているA.iniを選択し、TESTボタンを押す
アプリに表示されているB.iniを選択し、TESTボタンを押すという動作がしたいと思って作りました。
(今回はA.iniを選択しTESTボタンを押す部分のみ抜粋。Whileの部分をコピペするだけです)

A.iniが無い場合や、それより前のTESTフォルダ自体が無い場合もあります。

対象ファイルが無い場合は処理を飛ばしたいWhileを使っていますが
飛ばされることはありません。CLK_BTNまで実行してしまいます。
また、アプリが起動していてもリストビューが出るのにタイムラグがあることがあり
処理だけドンドンすすんでしまい、リストビューを開けていないのに
CLK_BTNを押してしまうことがあります。

Q1.リストビューに表示されるまで待つにはどうしたら良いでしょうか
Q2.BUSYでは判定できなかったため、3秒待ち無ければ処理を飛ばすにはどうしたらいいか
上記2点、分かりましたら教えて頂けないでしょうか。

id=GETID("テストアプリ","#32770",-1)
Sleep(1)

While HANTEI=TRUE
 KEYWORD=ITEMWAIT(id,CLK_LSTVIEW,"C:\",2)
  HANTEI=DATA_CLICK(id,KEYWORD)

  KEYWORD=ITEMWAIT(id,CLK_LSTVIEW,"Program Files",2)
  If KEYWORD="NODATA" then
   KEYWORD=ITEMWAIT(id,CLK_LSTVIEW,"Program Files(x86)",2)
  Endif
  HANTEI=DATA_CLICK(id,KEYWORD)

  KEYWORD=ITEMWAIT(id,CLK_LSTVIEW,"TEST",2)
  HANTEI=DATA_CLICK(id,KEYWORD)

  KEYWORD=ITEMWAIT(id,CLK_LSTVIEW,"A.ini",2)
  HANTEI=DATA_CLICK(id,KEYWORD)

  CLKITEM(id,"TEST",CLKBTN)
  break
WEND


FUNCTION DATA_CLICK(id,item)
RESULT=FALSE
  If item<> FALSE and item<>"NODATA" then
    CLKITEM(id,item,CLK_LSTVIEW,True)
    CLKITEM(id,item,CLK_LEFTCLK,True)
    CLKITEM(id,item,CLK_DBLCLK,True)
    RESULT=TRUE
  Endif
FEND

FUNCTION ITEMWAIT(id,kind,item,num)
  count=0
  While True
    Sleep(0.5)
    for n in GETITEM(id,kind,num)
       if n=item then
          RESULT=item
          exit
       Endif
       
       If count=3 then
         RESULT="NODATA"
         exit
       End if
    Next
    count=count+1
  Wend
FEND

No.4458 2017/09/22(Fri) 17:50:16

Re: アプリの指定ITEMが出るまで待ち、無い場合は終了したい / たんと
説明が分かりづらいでしょうか……
No.4468 2017/09/25(Mon) 10:12:17

Re: アプリの指定ITEMが出るまで待ち、無い場合は終了したい / stuncloud
> Q1.リストビューに表示されるまで待つにはどうしたら良いでしょうか
> Q2.BUSYでは判定できなかったため、3秒待ち無ければ処理を飛ばすにはどうしたらいいか


僕ならITEMWAITを以下のようにして

function ITEMWAIT(id, kind, item, num, wait = 3)
 limit = gettime() + wait // wait秒間見つからなかったらFALSE
 repeat
  // itemがクリック可能ならTRUE(クリック自体はしない)
  result = clkitem(id, item, kind, FALSE, num)
 until gettime() >= limit or result
fend

ITEMWAIT()を呼んでTRUEが返った場合は必要な処理を行いFALSEが返ったら処理をスキップ、とします

スキップに関してはどうスキップしたいのかが元のコードから読み取れないのでちょっとアドバイスできないです、すいません
HANTEIがFALSEになったらループをやめたい?みたいな感じだったのなら単にその都度
if ! HANTEI then break
すればOKです

ちなみにもともとのITEMWAIT関数でkindにCLK_*定数を渡してますけど、それを受けてるのがgetitem()なのがよくなかったんじゃないでしょうか…と思ったけどCLK_LSTVEWとITM_LSTVEWはたまたま値が一致するんですね
# ほんとは別の関数用の定数を使うのはぜったいダメ

No.4471 2017/09/26(Tue) 12:29:43

Re: アプリの指定ITEMが出るまで待ち、無い場合は終了したい / たんと
回答ありがとうございます。

HANTEIがFALSEになったらループから抜けたいのですが、
上手く行かなくて困ってました。
FALSEになったら抜けるために、WHILEループにしたのですが上手くいかず…。
書き方が悪いのかもしれません。

if ! HANTEI then break のようにすると
毎行書く必要が出て、ソースを読むのに苦労しそうだと思い
このような形になっています。現状でも読みづらいソースですけれど…。

>ちなみにもともとのITEMWAIT関数でkindにCLK_*定数を渡してますけど、それを受けてるのが>getitem()なのがよくなかったんじゃないでしょうか…と思ったけどCLK_LSTVEWとITM_LSTVEWはたま>たま値が一致するんですね
># ほんとは別の関数用の定数を使うのはぜったいダメ

ありがとうございます!
どうしようか迷った挙句、そのまま使ってしまいました。
他の適当な言葉?をあてるのがベストですよね!修正します!


頂いたソースを試してみましたが、
CLKITEMがされることもなく、単にBUTTUN?がカチカチカチカチ異常動作を繰り返すだけでした。
他の方法検討してみます。

No.4474 2017/09/27(Wed) 15:43:05

Re: アプリの指定ITEMが出るまで待ち、無い場合は終了したい / stuncloud
> if ! HANTEI then break のようにすると
> 毎行書く必要が出て、ソースを読むのに苦労しそうだと思い
> このような形になっています。現状でも読みづらいソースですけれど…。

毎回書かないと失敗したところで抜けられないのでめんどくさいですけど毎回書きましょう
さすがにこの状況だとあまりシュッとしたのは書けないので泥臭くやるしかないですね

あるいは、while内で似たような作業が多いので "Program Files" とか "A.ini" とかを処理する順番に配列に入れてforで回すというように書き直せば、毎回のHANTEIチェックもfor文内に1度書くだけで済みます

例:
if kindofos(TRUE) then
 // 64bitOS
 ProgramFiles = "Program Files(x86)"
else
 // 32bitOS
 ProgramFiles = "Program Files"
endif
dim items[] = "C:\", ProgramFiles, "TEST", "A.ini"

for item in items
 KEYWORD=ITEMWAIT(id,ITM_LSTVEW,item,2)
 HANTEI=DATA_CLICK(id,KEYWORD)
 if ! HANTEI then break
next
CLKITEM(id,"TEST",CLKBTN)

※ アイテム名がx86かどうかはkindofos(TRUE)で決め打ちにしてみましたが、対象の実装がわからないので適当です

> 頂いたソースを試してみましたが、
> CLKITEMがされることもなく、単にBUTTUN?がカチカチカチカチ異常動作を繰り返すだけでした。

ああ、だめでしたかごめんなさい
clkitemは第四引数をFALSE指定しているのでクリック動作しないのはいいのですが、異常動作についてはちょっと想定外ですね…
(まぁおおよそこんな感じなら動くだろうというコードだったので、対象アプリによってはうまくいかない可能性はありました)
ちなみに対象があるかどうか探す場合はgetitemで探すのが常套手段ではあるんですが、クリッカブルな場合はclkitemのほうが速いしコードも短いという理由でclkitemを採用しています
なのでclkitem部分はgetitemから探すように書き換えてもOKです
# キモは3秒過ぎてもダメならFALSEを返すという部分なので

No.4475 2017/09/27(Wed) 16:24:01

Re: アプリの指定ITEMが出るまで待ち、無い場合は終了したい / たんと
stuncloud様

再度回答頂きありがとうございました。
頂いたソースをもとに、自分のソースを変更したところ
上手く動くようになりました!

教えて頂いたソースをみたら、CLKITEMの戻り値を利用していることに気づき(今更ですが)
戻り値になるように設定したら上手く動きました。初歩的なことで申し訳ありませんでした。

また、clkitem様の言うようにCLKITEMで確認したほうがソースも短くなるし
読みやすくなるし…良いことばかりのような気がするので、CLKITEMだけに統一します!

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

No.4493 2017/10/02(Mon) 14:35:41
ログファイルを分けて保存したい / kuma
AのデータはログファイルAに
BのデータはログファイルBに
というふうに分けてログを保存したいです
方法ありますでしょうか

No.4490 2017/10/02(Mon) 09:01:01

Re: ログファイルを分けて保存したい / 森
以前私が同じような質問をしていますので、過去ログ No.4242 が参考になると思います。
No.4492 2017/10/02(Mon) 12:10:26
マウスクリックの制動について / ぬかみそ
マウスの動作についてお聞きしたい事があります
ランダムに指定した位置をクリックをする、そのクリック間の時間をランダムにしたいのですが上手く出来ません。

BTN(LEFT,CLICK,X + random(10),Y + random(10)、100)

これだと位置はランダムにクリックしてくれるのですがクリックの間の動作をいじれませんよね?

BTN(LEFT,DOWN,X + random(10),Y + random(10)、100+random(100))
BTN(LEFT,UP,X + random(10),Y + random(10)、100+random(100))

しかしこれでは、UPとDOWNでカーソル位置がずれてしまいます。
DOWNした時の位置にUPを追従させる方法
または改善策がありましたら宜しくお願い致します。

No.4477 2017/09/29(Fri) 20:24:39

Re: マウスクリックの制動について / 森
質問本文からは、クリック間の時間=クリックとクリックの間隔と読み取れ、
スクリプトからは、クリックしている時間の長さのように読み取れますが、
実際にやりたいことはどちらでしょうか。

// ランダムな座標をランダムな間隔で10回クリック
for i = 1 to 10
 btn(left , click , random(100) , random(100))
 sleep(random(10))
next

// ランダムな座標をランダムな長さで10回クリック
for i = 1 to 10
 btn(left , down , random(100) , random(100))
 sleep(random(10))
 btn(left , up )
next

No.4491 2017/10/02(Mon) 11:59:02
BTNコマンド実行後、画面がオフになる / Haze
DELLのvostro14、Windows10ProでUSWSを使っているのですが、
BTNコマンドで、左クリックを実行するたびに、
画面がオフになり、画面が付いたり消えたりしてしまいます。
何とか解決できないでしょうか?

No.4480 2017/09/30(Sat) 15:37:02
外部DLLがポインタ指定になっている / K-1
Memory.DLLというメモリを直接読むDLLを使って、他プロセス上のメモリを読みたいと思いますがうまくいきません。

DEF_DLL DReadMemory64(HWND, dword, longlong var, dword):int:Memory.dll
のような宣言で第3パラメータの示すアドレスに返り値が入ってくるので、

Dim aaaa
win_id = GETID("たいとる")
ret = DReadMemory(win_id, $10000000, aaaa, 4)
としました。
aaaaに4バイトの値が入っているのを期待したのですが、どうもそれらしい値が入っていません。

アドレスが合っているとかは確認しますが、Memory.DLLに与えるポインタ返しの書き方はこれで問題ないでしょうか?

No.4479 2017/09/30(Sat) 09:22:35
ボタン類での条件分岐 / 金ちゃん
Firefoxでサイトを読み込んで、ITM_LINKやITM_BTNで条件分岐をしたいのですが、どのような方法がありますか?
(画像を読み込むのが非常に遅い為、リンクで条件分岐したい)
画像の場合は下記の様に出来ますが、ボタン類はどうやるのでしょうか?
IFB CHKIMG("000.bmp")
ELSE
ENDIF

CHKBTN関数ではリンクボタン等は上手く動作しませんでした。

よろしくお願いします。

No.4478 2017/09/29(Fri) 22:43:47
recIEでyahooトップページが崩れる / ほえほえ
お世話になります。
RecIeでyahooJapanのトップページ(https://www.yahoo.co.jp/)を開くと崩れます。
本来あるはずの押したいリンクも表示されません。
設定によって直るのであればアドバイス頂けると助かります。
よろしくお願い致します。
RecIe Ver 2.3.0.0

No.4459 2017/09/22(Fri) 19:28:21

Re: recIEでyahooトップページが崩れる / umiumi
「設定」->「レンダリング・モード」にて "IE11" を選択してください。
No.4464 2017/09/23(Sat) 22:39:34

Re: recIEでyahooトップページが崩れる / ほえほえ
直りました^^
お忙しいところありがとうございました。

No.4476 2017/09/29(Fri) 18:31:06
XLCLOSEの後だと、配列の内容が読み取れない / sen
いつもお世話になっております。
XLCLOSEの後だと、配列の内容が読み取れないのです。
実際には、もう一つエクセルファイルを開いて、そこに転記したいので、
このファイルは一度、綴じたいのです。
ご教授願いませんでしょうか。


dim 担当別累計注残[1][20]
Excel = GETACTIVEOLEOBJ("Excel.Application")

With Excel.ActiveSheet
  FOR t = 1 to 50
   if copy(.Cells(4,t).value,6,3) = "/02" then break
  next
  ifb t > 0 then
   for p = t to 100
    .Columns(t).Delete
   next
  endif

  For i = 0 To 11
   .cells(1,i+1).ColumnWidth = 10
   .Rows(7 + i * 3).Insert
   .Rows(7 + i * 3).NumberFormatLocal = "#,###"
   .Cells(7 + i * 3, 2) = "累計"
   .Cells(7 + i * 3, 3) = .Cells(5 + i * 3, 3) + .Cells(6 + i * 3, 3)
   .Cells(7 + i * 3, 2).Interior.Color = 13434879
   .Cells(7 + i * 3, 3).Interior.Color = 13434879
    For p = 0 To t-1-4
      .Cells(7 + i * 3, 4 + p) = .Cells(5 + i * 3, 4 + p) + .Cells(6 + i * 3, 4 + p) + .Cells(7 + i * 3, 3 + p)
      .Cells(7 + i * 3, 4 + p).Interior.Color = 13434879
    Next
   担当別累計注残[1][i] = .Cells(7 + i * 3, t-1)
   担当別累計注残[0][i] = .Cells(5 + i * 3, 1)
   .Range(.Cells(5 + i * 3, 1), .Cells(7 + i * 3, 1)).Merge
   print "i="+i+ 担当別累計注残[0][i] +"="+ 担当別累計注残[1][i]
  Next
EndWith

print "◎"+ 担当別累計注残[0][2]+担当別累計注残[1][2]

XLCLOSE(Excel,TRUE)

print "×"+ 担当別累計注残[0][2]+担当別累計注残[1][2]

No.4470 2017/09/25(Mon) 21:16:51

Re: XLCLOSEの後だと、配列の内容が読み取れない / stuncloud
> 担当別累計注残[1][i] = .Cells(7 + i * 3, t-1)
> 担当別累計注残[0][i] = .Cells(5 + i * 3, 1)

変数にオブジェクト入れちゃってるからじゃないでしょうか
値だけほしいなら確かvalueプロパティかなんかがあったはずなので

担当別累計注残[1][i] = .Cells(7 + i * 3, t-1).value

とすれば大丈夫じゃないかと思います
# もしかしたらvalueじゃないかもしれないけど、値だけ取り出す方法はあるのでそれでやってみてください

No.4472 2017/09/26(Tue) 13:42:11

Re: XLCLOSEの後だと、配列の内容が読み取れない / sen
うまく動きました。
XLCLOSEの前だとうまく読み出せるので、思いもよりませんでした。

気を付けたいと思います。
ありがとうございました。

No.4473 2017/09/26(Tue) 21:56:44
UWSCが突然使えなくなってしまいました。 / R
無料期間中、Proで使用しておりフリー版へ移行したところ使えなくなってしまいました。
色々試し、記録は出来るようなのですが再生が全くせず、画像認証はおろか単純なクリック等も再生出来ない状態です。
どなたかご教授頂ければ幸いです。

No.4467 2017/09/24(Sun) 14:52:24

Re: UWSCが突然使えなくなってしまいました。 / たんと
現状がどのような状況か分からないため回答は難しいかと…
UWSCフォルダ内のファイル名一覧とかが分かれば、
何のファイルが足りないか等、比較して分かるかもしれません。

No.4469 2017/09/25(Mon) 10:13:37
全1170件 [ ページ : << 1 ... 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... 117 >> ]