UWSC指定範囲内・及び指定文字の置き換え

このQ&Aのポイント
  • UWSC便利!初心者でも使える指定範囲内・指定文字の置き換え方法を解説
  • UWSCの使い方をわかりやすく解説!初心者でも簡単に置き換えができる方法とは?
  • UWSCの指定範囲内・指定文字の置き換え方法を覚えよう!初心者でも難しくない解説
回答を見る
  • ベストアンサー

UWSC 指定範囲内・及び指定文字の置き換え

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に置換し、もう片行を削除したい よろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • RandenSai
  • ベストアンサー率54% (305/561)
回答No.3

回答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)

kozaru0630
質問者

お礼

自分用ではなく、マクロの存在すら知らないような人が使うためでした。 目的は単純なクリックマクロなのですが、メモ帳で開いてそれを微調整することすらできない人です。 ならばマクロを組むためのマクロをあげてしまえば後はコピペだけで使えるんじゃないか?ということでした。 …と、背景事情はこのあたりで、動作完璧でした! 素晴らしい…。 しかし一度これを使うとエディタでの置換作業・短形選択等が面倒に感じたので、私もありがたく使わせていただくことにします。 本当にありがとうございました!

その他の回答 (2)

  • RandenSai
  • ベストアンサー率54% (305/561)
回答No.2

BTN関数の最後のパラメータは、手で50でもなんでも好きな値に書き換えてください。ただ経験上、10とかにするとクリックが抜けることがあるので、20以上が無難です。 操作を記録する時にぴったりの値にするようにクリックすることは神技だし、そもそもクリックする時間というか間隔も記録しているから、値がばらつくのはどうしようもないです。それと記録でCLICKになったりDOWN/UPに分かれたりする理由は、ボタンをクリックする時にマウスが微妙に上下や左右にぶれているからですね。私はこれは気にしないで、UPの方を全部消しちゃってDOWNだけを残し、これをCLICKに書き換えています。

kozaru0630
質問者

補足

マクロを組む為のマクロを作りたいんです なので手動で50と書き換えじゃ意味がないんです、すみません 記録をするとクリップボードに入ったUWSのデータを 「さらにUWSCのマクロで自動的に編集」が希望です

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

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の使い方として、そんなに何回も記録を繰り返すってのは、使い方に問題あるんでは?とも思いますが。

kozaru0630
質問者

補足

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

関連するQ&A

  • UWSCについて

    ゲームで自動化マクロを作りたいのですが調べてもたのですがうまくいかずよくわからないので教えてください。 やりたい事は ・文字を見つけたらある場所をクリックする ・見つからなかったときは更新ボタンを押し見つかるまで繰り返す この二つなのですが While true  // 繰り返し ここから if GETKEYSTATE(VK_ESC) then exit // Escapeキーでスクリプト停止 Search = "○○" // 検索文字 // ここから あった時 BTN(LEFT,CLICK,232,344,702) BTN(LEFT,DOWN,200,530,593) MMV(200,530,10) BTN(LEFT,UP,200,530,125) MMV(200,530,203) BTN(LEFT,DOWN,245,365,390) MMV(245,365,15) BTN(LEFT,UP,245,365,141) MMV(245,365,203) MMV(245,365,374) MMV(245,365,422) BTN(LEFT,DOWN,193,542,343) MMV(193,542,10) BTN(LEFT,UP,193,542,109) MMV(193,542,94) MMV(193,542,46) MMV(193,542,452) BTN(LEFT,CLICK,245,421,110) BTN(LEFT,CLICK,219,250,230) BTN(LEFT,DOWN,184,245,47) MMV(185,246,78) BTN(LEFT,UP,185,246,63) // ここまで あった時 // ここから なかった時 BTN(LEFT,CLICK,74,60,1217) Search = "○○" // 検索文字 終了 wend //繰り返し ここまで これをすると検索もせずクリックする部分を繰り返してしまいます。 どこを直せばいいのでしょうか? よろしくお願いします。

  • UWSCで使うファイルをexcelで作りたい

    まずあまりの初心者ゆえに失礼がありましたらすみません。 UWSCというフリーソフトのスクリプトの編集をexcelでして そのあとにメモ帳などに移して使うつもりなのですが たとえば下記のようなものがあったとして BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_1,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) という文章を BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_2,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) になって BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_3,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) をへて BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_4,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) となり BTN(LEFT,CLICK,223,72,) SLEEP(0.5) KBD(VK_a,DOWN,) KBD(VK_b,DOWN,) KBD(VK_5,CLICK,) KBD(VK_TAB,CLICK,) KBD(VK_RETURN,CLICK,) というかたちでKBD(VK_数字,CLICK,)という部分だけを1から500まで増やしていって あとの数値は同じものをずっと並べていきたいのですが普通にフィルハンドル?をつかってやると 私が編集したいKBD(VK_数字,CLICK,)の部分以外の数値までおそらく増えていってしまうんですよね。 KBD(VK_数字,CLICK,)の数字の数値だけを増やしていくことはできますでしょうか? なおどうやらソフトの性質として数字が10をこえると KBD(VK_10,CLICK,) ではなく KBD(VK_1,CLICK,) KBD(VK_0,CLICK,) や KBD(VK_1,0,CLICK,) と表現しなければいけなくなるようなのですが そういう数値の増やし方はできますでしょうか? 超初心者なので全く何もわからないのですがそんな人間でもできますでしょうか。

  • UWSCの指定画像チェック

    UWSCを利用して、画面内に指定画像があるか無いかチェックし、あればクリックしたりするスクリプト文を作成したいのですが・・・、うまくいきません; 詳しい方、どうか回答お願いしますm(_ _)m 自分の作ったスクリプト文は下記のとおりです。 ""のところの「A」はフォルダ名で、「neko.bmp」が画像ファイル名です。   IFB CHKIMG(".\A\neko.bmp")     MMV(G_IMG_X,G_IMG_Y)     KBD(VK_CTRL,DOWN)     BTN(LEFT,DOWN,G_IMG_X,G_IMG_Y)     KBD(VK_CTRL,UP)     BTN(LEFT,UP,G_IMG_X,G_IMG_Y)   ENDIF 上記のスクリプト文でUWSCを実行させると、なぜか「エラー NOT Found".\A\neko.bmp"」と出てき、実行してくれません。 画像の問題ではあると思うのですが、ちゃんとuws形式で保存されてますし、画像の方もbmp形式になってるので・・・どこか悪いのかと、思い当たるふしがありません。 悪いところや指摘がございましたらどうか教えてくださいm(_ _)m また、スクリプト文を作れる方がいましたら作成を頼めませんでしょうか。。。 私の希望する、UWSCの実行は下記のとおりです。また、"neko"は画像ファイル名のことです。 "neko"が画面内にあるか無いかチェックし、もしあれば、Ctrlキーを押したまま、"neko"が見つかった座標に左クリック。 この繰り返し。

  • UWSCについて質問です。

    UWSCについて質問です。 特定のボタンを押している間だけループさせるスクリプトを組むにはどうすればいいでしょうか? ボタンを押している間はループされ、ボタンを押していない時は処理が止まる といったようなスクリプトをくみたいのですがどうもうまくいきません。処理させるスクリプト自体は簡単で NUMPAD7を押している間はAの処理 NUMPAD8を押している間はBの処理 NUMPAD9を押している間はCの処理 といった具合にスクリプトを組みたいのですがどうすればよろしいでしょうか? 教えて頂けると助かります。 ちなみに行う処理は以下のとおりです。 処理A BTN(LEFT,CLICK,450,500,10) BTN(VK_3,CLICK,10) while true //7を押している間はここからループ開始 BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,700,660,10) Wend 処理B while true BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,700,660,10) Wend 処理C while true BTN(LEFT,CLICK,400,300,10) BTN(LEFT,CLICK,400,660,10) wend

  • uwscでWEB上の文章を表計算ソフトに貼り付け

    こんばんは。いつもお世話になっております。 今回の質問は uwscにてWEB上の文章を表計算ソフトに貼り付ける  方法を知りたいです。 環境としては、 uwsc http://www.uwsc.info/ 表計算(無料officeソフトの libreの表計算) http://ja.libreoffice.org/ を使用したいです。 例えば・・・ http://okwave.jp の質問総数:6,575,158 件 ←を 表計算のA1に 貼り付ける。 この場合どのような記述になりますでしょうか UWSCを起動して記録をしてみましたところ・・・ BTN(LEFT,DOWN,92,1062,156) MMV(92,1062,10) MMV(91,1062,78) BTN(LEFT,UP,91,1062,10) MMV(90,1062,31) なのが たくさんできました。   みなさまの知恵を拝借したいです。 USWCでなくても 無料のソフトであれば それでもかまいません。 自分の行った動作を スクリプトとして自動的に記述してくれるものだと作成、編集が楽だと思い USWCを使おうと思いました。

  • (UWSC) エクセルのセルをコピーするには?

    UWSCで、エクセルにあるセルの中身をコピーしたいと 考えています。 getstrを使って、 a = GETSTR(GETID("Microsoft Excel","XLMAIN"),p)  (pは適当な数字) としましたがうまくいかないみたいです。 例えば、i行j列のセルにある文字をコピーするには、 どのようにすればいいのでしょうか? KBD(VK_CTRL,DOWN,32) KBD(VK_C,CLICK,31) KBD(VK_CTRL,UP,40) でもかまいません。

  • UWSCで指定箇所のみループ

    UWSCで指定した箇所へ戻ってループさせたいのですが、やり方がわかりません。 上手く説明ができないのですが… 例えば… while True Z地点 //Aの画像があればクリックしてX地点へ ifb CHKIMG("画像A") x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 300) endif X地点 //Bの画像があればクリック、無ければZ地点へ戻る ifb CHKIMG("画像B") x=G_IMG_X y=G_IMG_Y BTN(LEFT, CLICK, x, y, 300) endif wend という感じで…、状況によってプログラムの指定した行へ移動させたいのですが どうすれば良いのでしょうか? 上手く説明できなくてすみませんが、教えてください。 よろしくお願いします。

  • UWSCについて

    UWSCの設定について質問させて頂きます。 私がしたいのは、画面上に画像が現れた瞬間からカウントをスタートし、一定時間で左クリックを一回押すというものです。 現在は下記のように試しており、大体は思い通りなのですが、カウントスタート前にUWSCの停止ボタンのポップアップが点滅状態のため画像が現れた瞬間に反応できてないような感じです。 コンマ数秒でのことですがどうしても正確にしたいのです。 プログラムについての知識もなく行き詰まってしまいました。 どうか宜しくお願い致します。 while true if GETKEYSTATE(VK_ESC)then exit ifb CHKIMG("画像.bmp",0) BTN(LEFT,CLIK,10000) ENDIF WEND

  • UWSC すごく初歩的な質問で申し訳ないのですが・・・

    ACW(GETID("ログイン - Yahoo! JAPAN - Microsoft Internet Explorer","IEFrame"),0,0,1019,736,0) INPUT ("パスワー入力") //ここでインプットボックスにログインパスワードを入力 BTN(LEFT,CLICK,157,68,300) BTN(LEFT,CLICK,651,501,300) //ログイン画面パスワード入力BOX(ここで最初に入力しておいたパスワードを自動で貼り付けるようにしたい) スクリプトの知識が全く無く、基本的にはUWSCの記録機能しか使っていないのですが、上記のような場合どう追記すればいいか、よろしければご教示下さい。

  • UWSCのスクリプトについて

    画像Dを認識したら画面上に画像Bがあっても 処理Bを実行しない為にはどうしたら良いでしょうか。 -------- while True BTN(LEFT,click,150,10,110)   //処理A Sleep(2) ifb CHKIMG("A.bmp")    x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) endif Ifb ChkImg("B.bmp")       //処理B BTN(LEFT,click,1120,90,110) Sleep(1) KBD(VK_return,DOWN,30) endif ifb CHKIMG("C.bmp")      //処理C x=G_IMG_X            y=G_IMG_Y BTN(left,click,x,y,110) Sleep(1.5) wend --------

専門家に質問してみよう