プロが教えるわが家の防犯対策術!

UWSC便利!…だけど難しい…な初心者です。お知恵を貸して下さい

BTN(LEFT,CLICK,413,267,125)
BTN(LEFT,DOWN,527,253,32)
BTN(LEFT,UP,529,253,10)
BTN(LEFT,CLICK,530,377,15)
BTN(LEFT,CLICK,439,413,47)
BTN(LEFT,CLICK,550,515,300)

上記の文字列のうち

1.各行の最後の,から)にある数字を一律50にしたい(上から125,32,10...とある数字です)

2.DOWNとUPのいずれか1つをCLICKに置換し、もう片行を削除したい

よろしくお願いします

A 回答 (3件)

BTN(LEFT,CLICK,413,267,50)


BTN(LEFT,DOWN,527,253,50)
BTN(LEFT,CLICK,530,377,50)
BTN(LEFT,CLICK,439,413,50)
BTN(LEFT,CLICK,550,515,50)
でいいの?


記録したのを何度も変更とかなら例えば、
UWSCのデバッガには置換機能は無いので、メモ帳などで.uwsを開いて、

「BTN」→「MyButton」に置換。

Procedure MyButton(button, state, x, y, ms)
 if state=CLICK ot state=DOWN then // UP以外なら
  BTN(button, CLICK, x, y, 50) // 指定のボタン、x,yで、CLICK、ms=50でBTNを呼び出し。
 endif
Fend

なんかの処理を呼び出させるとか。

UWSCの使い方として、そんなに何回も記録を繰り返すってのは、使い方に問題あるんでは?とも思いますが。

この回答への補足

ブラゲーで決まった座標をクリックする記録をしたあと、それを「自動的に編集して形を整えるマクロ」を組みたいのです、わかりにくかったら申し訳ないです
betweenなんかで出来るのかなと思って少し奮闘しましたがうまくいかず…
やはりどこか手動で作業しなければいけない部分が出てくるのでしょうか、残念です…。

補足日時:2014/06/13 18:31
    • good
    • 0

BTN関数の最後のパラメータは、手で50でもなんでも好きな値に書き換えてください。

ただ経験上、10とかにするとクリックが抜けることがあるので、20以上が無難です。

操作を記録する時にぴったりの値にするようにクリックすることは神技だし、そもそもクリックする時間というか間隔も記録しているから、値がばらつくのはどうしようもないです。それと記録でCLICKになったりDOWN/UPに分かれたりする理由は、ボタンをクリックする時にマウスが微妙に上下や左右にぶれているからですね。私はこれは気にしないで、UPの方を全部消しちゃってDOWNだけを残し、これをCLICKに書き換えています。

この回答への補足

マクロを組む為のマクロを作りたいんです
なので手動で50と書き換えじゃ意味がないんです、すみません

記録をするとクリップボードに入ったUWSのデータを
「さらにUWSCのマクロで自動的に編集」が希望です

補足日時:2014/06/13 18:28
    • good
    • 0

回答No.2です。



> マクロを組む為のマクロを作りたいんです

ああ~、そう言うこと?

UWSCだと、あまり便利じゃない作業になりますね、それ。クリップボードから受け取ってクリップボードに送るのは面倒なので、以下のスクリプトは書き換え元がC:\A.UWS で固定、書き換えたものがUWSCのデバッグウィンドウに出るということで簡略化したものです。

fid=FOPEN("C:\A.UWS",F_READ) //ファイルを開く
cntmax=FGET(fid,F_LINECOUNT) //ファイルの行数を調べる

FOR cnt=1 TO cntmax //行数の分だけ繰り返し

tmpstr=FGET(fid,cnt) //1行読み取り

//BTN関数の第2パラメータがUPだったら次の行を読む
IF POS("BTN(LEFT,UP",tmpstr)<>0 THEN CONTINUE

//BTN関数の第5パラメータを50にする
IF POS("BTN",tmpstr)<>0 THEN tmpstr=COPY(tmpstr,1,POS(",",tmpstr,-1)) + "50)"

//BTN関数の第2パラメータがDOWNだったら、CLICKに書き換える
IF POS("BTN(LEFT,DOWN",tmpstr)<>0 THEN tmpstr="BTN(LEFT,CLICK" + COPY(tmpstr,14)

//結果を表示
PRINT tmpstr
NEXT
//ファイルを閉じる
FCLOSE(fid)
    • good
    • 0
この回答へのお礼

自分用ではなく、マクロの存在すら知らないような人が使うためでした。
目的は単純なクリックマクロなのですが、メモ帳で開いてそれを微調整することすらできない人です。
ならばマクロを組むためのマクロをあげてしまえば後はコピペだけで使えるんじゃないか?ということでした。

…と、背景事情はこのあたりで、動作完璧でした!
素晴らしい…。
しかし一度これを使うとエディタでの置換作業・短形選択等が面倒に感じたので、私もありがたく使わせていただくことにします。
本当にありがとうございました!

お礼日時:2014/06/13 23:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています