(2018/4/30 「_plus=0」のような、わかりにくい部分が有りましたので少し書き換えました)
もう十数年愛用しているRPA「UWSC」
https://www.vector.co.jp/soft/winnt/util/se115105.html
を便利にする自作関数達をお裾分けします。
ちなみにUWSCのスクリプトはjavascriptと同じく変数名と関数名に2バイト文字を使えます。
■指定した内容を読み上げ、読んでいる時だけ表示する(下の「▲▼▲▼▲▼▲ 関数」行以下もスクリプトに張り付ける必要あり)
声表示("内容")
////////////画面に表示し、声を出して読み上げる。音量注意。
■指定した画像が見つかるまで待機させたいとき(下の「▲▼▲▼▲▼▲ 関数」行以下もスクリプトに張り付ける必要あり)
画像検知("検知対象画像名.bmp")
//////////検知対象画像名.bmpと同じ絵をPCのスクリーン上で見つけるまで待機する。画像が1ドットでも異なると反応しない。
■指定した画像をクリックさせたいとき(下の「▲▼▲▼▲▼▲ 関数」行以下もスクリプトに張り付ける必要あり)
画像クリック("クリック対象画像名.bmp", x方向ズレ, y方向ズレ)
//////////クリック対象画像名.bmpと同じ絵をPCのスクリーン上で見つけるまで待機する。見つけると、見つけた部分の中心から「x方向ズレ」,「y方向ズレ」の分だけズレた部分をクリックする(通常は両方とも0にする)。画像が1ドットでも異なると反応しない。
■指定した画像を右クリックさせたいとき(下の「▲▼▲▼▲▼▲ 関数」行以下もスクリプトに張り付ける必要あり)
画像右クリック("クリック対象画像名.bmp", x方向ズレ, y方向ズレ)
//////////クリック対象画像名.bmpと同じ絵をPCのスクリーン上で見つけるまで待機する。見つけると、見つけた部分の中心から「x方向ズレ」,「y方向ズレ」の分だけズレた部分を右クリックする(通常は両方とも0にする)。画像が1ドットでも異なると反応しない
■ほかにも
画像検知_window指定("検知対象画像名.bmp", window名, フレーム名)
画像クリック_window指定("クリック対象画像名.bmp", window名, フレーム名, x方向ズレ, y方向ズレ)
画像右クリック_window指定("クリック対象画像名.bmp", window名, フレーム名, x方向ズレ, y方向ズレ)
も作りました。この「window名, フレーム名」とは、UWSCでマウスのクリックを記録した時に自動的に作成されるGETIDの中身、例えば、
ACW(GETID("C:\","CabinetWClass"),-8,-8,1208,816,0) の
"C:\","CabinetWClass"
に相当する部分です。 ダブルクォーテーションごと「window名, フレーム名」の部分にコピペします。
あと、下の関数群もスクリプトの下層に張り付けて下さい。
//▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲ 関数群(ここ以降は変更不可。要らない場合は削除可)
Function 声表示(内容)
Result = False
Balloon(内容,,, 0, 40)
Speak(内容, FALSE)
Balloon()
Fend
Function 画像検知_window指定(画像名,window名,フレーム名)
Balloon(window名 + "のWindowを検索中",,, 0, 40)
windowID = GETID(window名,フレーム名,-1)
MOUSEORG(windowID)
Balloon(window名 + "内の画像:" + 画像名 + "を検知中",,, 0, 40)
x1 = STATUS(windowID,ST_X)
y1 = STATUS(windowID,ST_Y)
x2 = x1 + STATUS(windowID,ST_CLWIDTH)
y2 = y1 + STATUS(windowID,ST_CLHEIGHT)
while CHKIMG(画像名,1,x1,y1,x2,y2) = False
sleep(1) //1秒ごとに画像検索
wend
Balloon(window名 + "内の画像:" + 画像名 + "を検知しました",,, 0, 40)
Result = True
Balloon()
Fend
Function 画像クリック_window指定(画像名,window名,フレーム名,x_plus=0,y_plus=0)
Balloon(window名 + "のWindowを検索中",,, 0, 40)
windowID = GETID(window名,フレーム名,-1)
MOUSEORG(windowID)
Balloon(window名 + "内の画像:" + 画像名 + "を検知中",,, 0, 40)
x1 = STATUS(windowID,ST_X)
y1 = STATUS(windowID,ST_Y)
x2 = x1 + STATUS(windowID,ST_CLWIDTH)
y2 = y1 + STATUS(windowID,ST_CLHEIGHT)
while CHKIMG(画像名,1,x1,y1,x2,y2) = False
sleep(1) //1秒ごとに画像検索
wend
Balloon(window名 + "内の画像:" + 画像名 + "を検知しました",,, 0, 40)
BTN(LEFT,CLICK, G_IMG_X + x_plus, G_IMG_Y + y_plus, 15)
Result = True
Balloon()
Fend
Function 画像右クリック_window指定(画像名,window名,フレーム名,x_plus=0,y_plus=0)
Balloon(window名 + "のWindowを検索中",,, 0, 40)
windowID = GETID(window名,フレーム名,-1)
MOUSEORG(windowID)
Balloon(window名 + "内の画像:" + 画像名 + "を検知中",,, 0, 40)
x1 = STATUS(windowID,ST_X)
y1 = STATUS(windowID,ST_Y)
x2 = x1 + STATUS(windowID,ST_CLWIDTH)
y2 = y1 + STATUS(windowID,ST_CLHEIGHT)
while CHKIMG(画像名,1,x1,y1,x2,y2) = False
sleep(1) //1秒ごとに画像検索
wend
Balloon(window名 + "内の画像:" + 画像名 + "を検知しました",,, 0, 40)
BTN(RIGHT,CLICK, G_IMG_X + x_plus, G_IMG_Y + y_plus, 15)
Result = True
Balloon()
Fend
Function 画像クリック(画像名,x_plus=0,y_plus=0)
Balloon(画像名 + "を検知中",,, 0, 40)
while CHKIMG(画像名,1,,,,) = False
sleep(1) //1秒ごとに画像検索
wend
Balloon(画像名 + "を検知しました",,, 0, 40)
BTN(LEFT,CLICK, G_IMG_X + x_plus, G_IMG_Y + y_plus, 15)
Result = True
Balloon()
Fend
Function 画像右クリック(画像名,x_plus=0,y_plus=0)
Balloon(画像名 + "を検知中",,, 0, 40)
while CHKIMG(画像名,1,,,,) = False
sleep(1) //1秒ごとに画像検索
wend
Balloon(画像名 + "を検知しました",,, 0, 40)
BTN(RIGHT,CLICK, G_IMG_X + x_plus, G_IMG_Y + y_plus, 15)
Result = True
Balloon()
Fend
//▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲ 以上、関数群終了
最近、RPAという言葉が騒がれつつあるようですが、それって自分が知る限り、十数年前からマクロという形で有ったのですよね。二十数年前の名機HP200LXにはシステムマクロというRPAと同じものが有ったと記憶しています。
(コメントされる場合はコメントの最初にjjjjと入れて下さい。無い場合はスパムとみなされてしまいます。 English comments will be welcomed. If you have any comments, please write 'jjjj' at first of your comments OR spam filters will delete your comments.)
スポンサードリンク
■昼休みや通勤・通学時間帯でも速度低下しにくい格安回線(MVNO)特集
(遅い格安SIMに削られる時間を仕事にあてたら、いくら得するだろう・・・・)
■期間限定ポイントの消化にいかが? ・ギフト券店(楽天)
■ 空きスペースを駐車場などでレンタルして小遣い稼ぎ
■お得な招待コード or 招待ページ
メルカリ:FEKMZK、ポイントサイト モッピー・アメフリ・げん玉・げっとま
免責:本記事により生じた損失について記述者は一切の責任を持てませんので、その程度の内容としてご活用下さい。出所が怪しいネット情報は新規の着眼点を得るために使うべきで、興味を持った場合は信頼できる情報源で検証して下さい。さらに、その検証結果を公開してもらえると有り難いです。なお不具合の注意喚起は公衆の不利益回避のためであって、他者を攻撃するためではありません。
本記事にはCM等の事業者の表示が含まれます。
(遅い格安SIMに削られる時間を仕事にあてたら、いくら得するだろう・・・・)
■期間限定ポイントの消化にいかが? ・ギフト券店(楽天)
■ 空きスペースを駐車場などでレンタルして小遣い稼ぎ
■お得な招待コード or 招待ページ
メルカリ:FEKMZK、ポイントサイト モッピー・アメフリ・げん玉・げっとま
免責:本記事により生じた損失について記述者は一切の責任を持てませんので、その程度の内容としてご活用下さい。出所が怪しいネット情報は新規の着眼点を得るために使うべきで、興味を持った場合は信頼できる情報源で検証して下さい。さらに、その検証結果を公開してもらえると有り難いです。なお不具合の注意喚起は公衆の不利益回避のためであって、他者を攻撃するためではありません。
本記事にはCM等の事業者の表示が含まれます。
下は売れ筋上位の医薬品で通常はコンタクトレンズが上位独占ですが、世相を反映して新型コロナウイルス騒動以降はマスクが上位独占。その後は消毒液や酸素飽和度測定器、非接触体温計なども出現。詳しい記事はこちら。
登録:
コメントの投稿 (Atom)
カテゴリーとタグ
-
2021年5月10日: この記事の最新版は こちら↓ スマホの動きが変だと感じた時に悪さをしているアプリを特定し対処するコアな3つの方法 @トラブル対処 @スマホ @注意 @モバイル ■■■ 2つの方法 ■■■ (1)無駄にCPU使用率が高いアプリを...
-
■■■ 3つの方法 ■■■ お決まりの方法である、OS再起動 、Battery mixで確認、開発者向けオプションの「CPU使用状況を表示」を使用 しても、問題解決しない場合の3つの解決方法です(OS再起動以外の2つは最新のAndroidではまず役に立たないようです)。 最近イ...
-
R言語はPythonと違ってデフォルトで次のコードにてクリップボードが読めます。 x = scan("clipboard", what="character") 多くの解説サイトでは「 x = scan("clipboa...
0 件のコメント:
コメントを投稿