[ 掲示板に戻る ]

過去ログ閲覧モード

Androidエミュレーター上でUWSCで画像認識をしたい / 猫
AndroidのアプリにてUWSCを使用したいため、Androidエミュレーター(Nox App player)をパソコンに入れて、そこで画像認識をして自動処理をしているのですが、
どうも画像が毎回微妙に違っているようで、(アンチエイリアスなどが微妙に違う?)
正常に画像認識が出来ません。
処理が止まる度に、画像を登録して再起動を繰り返しているのですが
画像1つを認識させるのに、画像が10個以上になって困っています。
CHKIMGの色無視オプションは使用しているのですが、効果は見られません。
正常に画像を認識させる方法は無いでしょうか?

また、今では下記のように記述しているので、
非常に見にくくなって困っています。
何かわかりやすく記述する方法は無いでしょうか?

IFB CHKIMG("ボタンA.bmp")
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
IFB CHKIMG("ボタンA.bmp")
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
IFB CHKIMG("ボタンA2.bmp")
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
IFB CHKIMG("ボタンA3.bmp")
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
IFB CHKIMG("ボタンA4.bmp")
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
IFB CHKIMG("ボタンA5.bmp")
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
.....

IFB CHKIMG("ボタンA.bmp") OR CHKIMG("ボタンA2.bmp") OR CHKIMG("ボタンA3.bmp") OR ...
とすればすっきりするかもしれませんが、ORを使うと経験上画像が正常に認識されないような気がします。

よろしくお願い致します。

No.4377 2017/08/30(Wed) 18:09:50

Re: Androidエミュレーター上でUWSCで画像認識をしたい / 猫
すみません、追記です。
色無視と色幅を指定しているため、正しくはこのように記載しております。

IFB CHKIMG("ボタンA.bmp", -1,,,,,,IMG_MSK_BGR4)
BTN(LEFT,CLICK,G_IMG_X+0,G_IMG_Y+0)
SLEEP(2)
ENDIF
....

No.4378 2017/08/30(Wed) 19:11:39

Re: Androidエミュレーター上でUWSCで画像認識をしたい / 森
クリックさせる場所を特定するのでしたら、画像全体である必要は無いので、
10枚の画像に共通部分を見つけて、専用の画像を作ってみては?
検索したら、使えそうな「画像の差分を抽出するツール」がいくつか見つかりました。
http://qiita.com/YSRKEN/items/46b96587268fe59e3dac
http://20kaido.com/archives/6136882.html

No.4386 2017/09/01(Fri) 08:30:28

Re: Androidエミュレーター上でUWSCで画像認識をしたい / 猫
ありがとうございます。
試してみます。

No.4394 2017/09/02(Sat) 01:30:04
(No Subject) / www
UWSCで使える関数を全て知りたいのですがどこで確認できますか?
また、エクセルを操作するときに使える関数?などはどこで確認できますか?

No.4392 2017/09/01(Fri) 20:39:50

Re: / 馬
添付のマニュアル以外だとグーグルかな・・・

uwsc 関数一覧
https://www.google.co.jp/search?q=uwsc+%E9%96%A2%E6%95%B0%E4%B8%80%E8%A6%A7

uwsc エクセル 関数
https://www.google.co.jp/search?q=uwsc+%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB+%E9%96%A2%E6%95%B0

uwsc マニュアル
https://www.google.co.jp/search?q=uwsc+%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB

No.4393 2017/09/01(Fri) 22:04:17
無限ループ中に特定キーを押すことで吹き出しを表示後、3秒後に消す方法 / ゆう
無限ループ中に特定キーを押すことで吹き出しを表示して、3秒後に消えて無限ループを継続させたいのですが、いまいちうまくいきません。良い方法ないでしょうか?

下記がコードです。

while true
sethotkey(VK_CTRL, MOD_CONTROL, "proc3")
sethotkey(VK_SHIFT, MOD_SHIFT, "proc1")

SLEEP(1.0)
wend



procedure proc1
nID=getid("Internet Explorer")
btn(left)
fend

procedure proc3
textblock a
見たい内容
endtextblock

文字色="$FFFFFF"
背景色="1" 
フォントサイス="12"
x="750"
y="100"
透明化=""

FUKIDASI(a,x,y,0,フォントサイス,,文字色,背景色)
fend

No.4383 2017/08/31(Thu) 23:28:12

Re: 無限ループ中に特定キーを押すことで吹き出しを表示後、3秒後に消す方法 / 森
「3秒後に消えて」以外を消し込んで単純化したら自己解決できたのでは?

while true
 sethotkey(VK_CTRL, MOD_CONTROL, "proc3")
 SLEEP(1.0)
wend

procedure proc3
 FUKIDASI("テスト")
 sleep(3)
 FUKIDASI()
fend

こんな風にも書けます。
while true
 if getkeystate(VK_CTRL)
  balloon("テスト")
  sleep(3)
  balloon()
 endif
 sleep(1)
wend

No.4384 2017/09/01(Fri) 07:55:48

Re: 無限ループ中に特定キーを押すことで吹き出しを表示後、3秒後に消す方法 / ゆう
森様、ありがとうございます。そのようなコード全然思い浮かばなかったです。
もっと学んでいきたいと思います。

No.4388 2017/09/01(Fri) 10:22:08
ワードプレスにあるテキストリンクをクリックする方法 / ゆう
ワードプレスにある「アイキャッチ画像を設定」というテキストをクリックする方法ないでしょうか?
IESETDATA( IE,true,"アイキャッチ画像を設定")ではできなかったです。
何か良い方法ないでしょうか?

[下記がコード]
<a class="thickbox" id="set-post-thumbnail" href="http://kaaaaaaa.net/wp-admin/media-upload.php?post_id=828047&type=image&TB_iframe=1">アイキャッチ画像を設定</a>

No.4382 2017/08/31(Thu) 20:06:52

Re: ワードプレスにあるテキストリンクをクリックする方法 / 森
PRO版のRecIE(IE専用の自動記録ツール)を使えば簡単ですよ。
IESetData(IE,True,"","id=set-post-thumbnail")

No.4385 2017/09/01(Fri) 08:13:07

Re: ワードプレスにあるテキストリンクをクリックする方法 / ゆう
森様、ありがとうございます。希望通りの処理ができました。
No.4387 2017/09/01(Fri) 10:13:47
クライアント領域 / ひろ
初歩的な質問で申し訳ありません。
IEでのクライアント領域についてなのですが、

id = GETID("○○○ - Internet Explorer", "IEFrame", -1)
MOUSEORG(id,1)

でクライアント領域を指定した後、MMV(0,0)を実行すると、
非クライアント領域(メニューバー、タイトルバー等...)の0,0にマウスが移動してしまいます。

非クライアント領域を除いたクライアント領域を基準として取りたいのですが、
何か良い方法はないでしょうか?

No.4375 2017/08/30(Wed) 11:38:55

Re: クライアント領域 / しき
id = getid("", "IEFrame")
id_server = hndtoid(getctlhnd(id, "Internet Explorer_Server")) //HTML Documentの部分
mouseorg(id_server)
mmv(0, 0)
mouseorg(0)

No.4376 2017/08/30(Wed) 16:51:05

Re: クライアント領域 / ひろ
無事、クライアント領域の0.0にマウスが移動しました。
Document部分を起点にする方法があったのですね。勉強になります。
ありがとうございました!

No.4381 2017/08/31(Thu) 18:14:10
TeraPadの最小化がうまくいきません / たか
TeraPadを、
手動で、タスクバーのファイル名のアイコンをクリックして、最小化してから、
UWSCで、最大化 → 最小化 しようとすると、最小化がうまくいきません。
何か良い方法はないでしょうか?
また、うまくいかないのは、自分だけでしょうか。Win7 UWSC 5.3.0.2

CTRLWIN(GETID("TeraPad"),MAX)
SLEEP(2)
CTRLWIN(GETID("TeraPad"),MIN) // ここで最小化できない

最初の、手動でタスクバーのファイル名アイコンをクリックして最小化しなければ、うまくいきます。
(ウィンドウが最大化か普通の大きさのとき)
自分で最小化しているときがあるので、そのときも最小化させたいです。

【試したこと】

・NORMAL をはさんでみた。

CTRLWIN(GETID("TeraPad"),MAX)
SLEEP(2)
CTRLWIN(GETID("TeraPad"),NORMAL)
SLEEP(2)
CTRLWIN(GETID("TeraPad"),MIN) // ここで最小化できない

・CLKITEMで、手動でやったようにタスクバーのファイル名アイコンをクリックした

CTRLWIN(GETID("TeraPad"),MAX)
SLEEP(2)
CLKITEM(GETID("","Shell_TrayWnd"),"ファイル名",CLK_ACC or CLK_LEFTCLK) // ここで最小化できない

・ウィンドウの右上の最小化ボタンを押した

CTRLWIN(GETID("TeraPad"),MAX)
SLEEP(2)
CLKITEM(GETID("TeraPad"),"最小化",CLK_BTN) // ここで最小化できない

No.4373 2017/08/28(Mon) 06:49:14

Re: TeraPadの最小化がうまくいきません / たか
最初に可視状態にすることで機能させることにしました。

CLKITEM(GETID("","Shell_TrayWnd"),"ファイル名",CLK_ACC or CLK_LEFTCLK)
CTRLWIN(GETID("TeraPad"),MAX)
SLEEP(2)
CTRLWIN(GETID("TeraPad"),MIN)

No.4374 2017/08/29(Tue) 07:03:24
エバーノートでコピー、特定キー入力でサブライムエディター貼付け / ゆう
エバーノートでコピーして、特定キー入力でサブライムエディターに貼付けの処理を繰り返しします。下記のコードで処理はできているのですが、CPUが100%になり動作が遅いという問題点があります。おそらくwhile trueで無限ループしているからだと思いますがこれを他のコードに代用して動作を早くさせる方法ないでしょうか?

//メモリーが100%になり動作が遅い。
 id1=getid("Evernote Web")

 id2=getid("Sublime Text")

h = G_SCREEN_H / 2
w = G_SCREEN_W / 2

ACW(id1,0,0,w,G_SCREEN_H)
ACW(id2,w,0,w,G_SCREEN_H)
STOPFORM(FALSE)
sethotkey(VK_ALT, MOD_ALT, "proc")

while true
IFB GETKEYSTATE(VK_ALT)
ENDIF
wend


procedure proc
 id1=getid("Evernote Web")
 id2=getid("Sublime Text")

a=getstr(0)
sckey(id2, VK_RETURN)
sendstr(id2,a)
sckey(id2, VK_RETURN)
sendstr(id2,"---------------------")
Fend

No.4369 2017/08/26(Sat) 12:49:58

Re: エバーノートでコピー、特定キー入力でサブライムエディター貼付け / miles
無限ループのときは、sleepを入れましょう。
sethotkeyでALTキーのチェックしていれば、GETKEYSTATE(VK_ALT)はいりませんよ。

while true
//IFB GETKEYSTATE(VK_ALT)
//ENDIF
 sleep(1)
wend

No.4370 2017/08/26(Sat) 13:39:33

Re: エバーノートでコピー、特定キー入力でサブライムエディター貼付け / ゆう
miles様、回答ありがとうございます。 sleep(1)を入れた事でCPU率が一気に下がりました。
sleep(1)を入れるだけでここまで下がるとはオドロキです。

No.4371 2017/08/26(Sat) 15:33:54
タッチスクリーンを禁止する / タッチスクリーン
LockHardEX(0, LOCK_MOUSE) // マウス禁止
サンプルプログラムにはマウス禁止のコマンドがありますが、これと同じように
タッチスクリーン(タップしたりするの)を禁止する方法ってどなたか知りませんか。

No.4358 2017/08/25(Fri) 00:33:02

Re: タッチスクリーンを禁止する / satocha
MS謹製のDevConを使えばタッチスクリーンに限らず、どんなデバイスもスクリプトから自在にオンオフできそうです。

https://msdn.microsoft.com/ja-jp/library/windows/hardware/ff544707(v=vs.85).aspx

Windows標準でなく、インストールが必要というのが残念ですが。

No.4361 2017/08/25(Fri) 05:28:04

Re: タッチスクリーンを禁止する / タッチスクリーン
返答ありがとうございます。
デバイスを禁止するときに管理者権限は使わないようにしたいです。
LockHardEX(0, LOCK_MOUSE) // マウス禁止は
管理者権限が必要なかったですが、
これと同じようにしたいです。

No.4367 2017/08/25(Fri) 16:57:00

Re: タッチスクリーンを禁止する / タッチスクリーン
すいません。自己解決しました。
おすすめしてくださったdevconをインストールして
ttps://qwerty.work/blog/2015/03/wdkdevconbatcommand.php
でバッチを作り、
管理者権限で実行するファイルをパスワードを必要とせずに実行する方法
ttp://ch.nicovideo.jp/mashiroakira/blomaga/ar989196
で実質的に管理者権限なしでデバイスを禁止することができました。

回答ありがとうございました。

No.4368 2017/08/25(Fri) 19:46:14
IEのサイトとメモ帳とエクセルを開いている状態で特定のキーを押す事で特定の処理をさせる方法 / ゆう
下記のコードで文字をコピーしてNを押すとエクセルの最終行に貼付け、NキーでB列の最終行に貼付け、SHIFTを押すとIEのタイトルバークリック、ALTキーを押すとクリップボードに文字がなければ、メモ帳をクリック、クリップボードに文字があればコピーしたのを貼付けという処理をしたいのですが、クリップボードに文字がある状態でALTキーを押してメモ帳に貼付けした後、SHIFTを押してもIEのタイトルバーをクックする処理にならず反応がなく、クリップボードに文字がない状態でALTキーを押してメモ帳をクリックする処理にならず反応がありません。

スクリプト起動後、クリップボードに文字がある状態でALTキーを押さず、SHIFTキーやALTキーでのメモ帳クリックとかも問題なくできています。
エクセルの最終行貼付けは、問題なくできています。したい処理がクリップボードに文字がある状態でALTキーを押した後であっても、SHIFTキーやALTキーの処理させたいのですができません。
どこが間違っているのでしょうか?


excel2 = GETACTIVEOLEOBJ("Excel.Application")
o_sheet = excel2.ActiveSheet

yA = sub_getBlankRowNumber1a(o_sheet, 1)  //A列の現在行(空欄行)
yB = sub_getBlankRowNumber1a(o_sheet, 2)  //B列の現在行(空欄行)


while True
  sleep(0.2)
  
  ifb getkeystate(VK_N) then //VK_ADD
    x = 1
  elseif getkeystate(VK_M) then //VK_MULTIPLY
    x = 2
  elseif getkeystate(VK_SHIFT) then //メモ帳移動
sethotkey(VK_SHIFT, MOD_SHIFT, "proc2z")

  elseif getkeystate(VK_ALT) then //VK_MULTIPLY
  x = 3
sethotkey(VK_ALT, MOD_ALT, "proc1z")

  else
    continue  
  endif
  
      
 ss = GETSTR(0)
  ifb (ss <> "")  //クリップボードにある場合のみ処理する
    ifb (1 = x) then
      y = yA
    Excel2.ActiveSheet.Cells[y, x].Value = ss
    y = y + 1
      yA = y
    elseif (2 = x) then
      y = yB
      Excel2.ActiveSheet.Cells[y, x].Value = ss
      yy = y + 1
      yB = y
    elseif (3 = x) then
    SENDSTR(0, "") // クリップボードをクリア
else
continue
    endif
        
  endif
wend



procedure proc1z

a=getstr(0)
a=length(a)

if a=0 then
nID =GETID("無題 - メモ帳","Notepad")//ウィンドウ指定

MMV(STATUS(nID, ST_CLX)+STATUS(nID, ST_CLWIDTH)/2, STATUS(nID, ST_CLY)+STATUS(nID, ST_CLHEIGHT)/2)
else
ida = GETID("メモ帳")

MOUSEORG(GETCTLHND(ida,"edit"), 2)
tesa = GETSTR(0)
SENDSTR(ida,tesa+"<#CR>")
endif

fend

procedure proc2z

id1=getid("Internet Explorer")
x1 = status(id1, ST_x) + status(id1, ST_WIDTH) / 2
y1 = status(id1, ST_Y) + 10
btn(LEFT, CLICK, x1, y1)
fend


//下から上に探して最初の空欄がある行番号を返す
function sub_getBlankRowNumber1a(oSheet, iColumnNumber)
  dim i_bottomRow = oSheet.Rows.Count
  dim o_range   = oSheet.Cells(i_bottomRow, iColumnNumber)
  
  dim xlUp = -4162
  o_range = o_range.End(xlUp)     //Ctrl + ↑ と同じ操作
  
  ifb (empty <> o_range.Value) then  //空欄でなければ
    o_range = o_range.Offset(1, 0)  //一つ下のセル
  endif
  
  result = o_range.Row
fend

No.4346 2017/08/22(Tue) 23:37:45

Re: IEのサイトとメモ帳とエクセルを開いている状態で特定のキーを押す事で特定の処理をさせる方法 / miles
MOUSEORGを外したらどうですか?
SENDSTR(文字列の送信)だけなら、MOUSEORG(メモ帳に直接送る)はいらないでしょう。
その後のクリックも正常になると思う。

 ida = GETID("メモ帳")
// MOUSEORG(GETCTLHND(ida,"edit"), 2)
 tesa = GETSTR(0)
 SENDSTR(ida,tesa+"<#CR>")

No.4363 2017/08/25(Fri) 11:10:45

Re: IEのサイトとメモ帳とエクセルを開いている状態で特定のキーを押す事で特定の処理をさせる方法 / ゆう
miles様、MOUSEORG外したら希望通りの処理ができました。
難しく考えすぎていたようです。
ありがとうございます、助かりました。

No.4366 2017/08/25(Fri) 12:37:22
UWSC Pro版のEXE化のエラーについて / pokotan
UWSC Pro版の体験版でライセンス購入前にexe化で動作確認をしようとしてみたのですが、
-------------------------------------------------------
CREATEFORM/CHKIMG関数にて以下の取込みが出来ませんでした
CREATEFORM(CHARPATH + CHARACTER[INDEX] + ".html"
-------------------------------------------------------
と表示されました。
処理的にはマクロ自身でhtmlファイルを生成し、それを表示するというものです
これはexe化による仕様的なものでしょうか?

No.4362 2017/08/25(Fri) 10:29:21

Re: UWSC Pro版のEXE化のエラーについて / pokotan
もしかしてexe化は対象htmlとかも含めて内包しているのでしょうか…?
htmlを表示するだけのソースを作って動作を確認してみましたが、どうもcreateform呼び出し時に添付フォルダに該当htmlをexeから吐き出しているようなのでそうではないのかと

No.4364 2017/08/25(Fri) 11:12:41

Re: UWSC Pro版のEXE化のエラーについて / pokotan
過去ログ検索したら同様のやり取りがありました。お手数おかけしました
やはりセキュリティ的なものでしょうか?悪意あるサイトに飛ばしたり出来るとかで
次の更新でcreateformやchkimgをEXE化した時に変数による参照は出来ない等の旨を書いて貰えると有り難いです

ログ見てたらabout:blankで直接書き込む方法ならいけそうな気がするのでそちらでやってみます

No.4365 2017/08/25(Fri) 11:54:23
全1170件 [ ページ : << 1 ... 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 117 >> ]