UWSC 掲 示 板
投稿時に「証明書が不正です」と出る場合には、JavaScriptをオンにしてください
動作不具合での質問の場合には環境(OS,IEのバージョン等)の表記もしてください
タイトルは質問内容を表したものにしてください
ネットゲーム関係の質問はご遠慮ください

OCR機能について / かん
サンプルを参考に、OCR機能を利用しています。
基本的にはうまく動作しているのですが、文字の認識に失敗した時に、

COM_Error:例外が発生しました。
○○行目:doc.OCR(miLANG_ENGLISH, False, False)

と表示され、停止してしまいます。
認識できなかった場合はスキップ、というような処理は可能でしょうか?
よろしくお願いします。

No.3991 2017/05/21(Sun) 02:03:41

Re: OCR機能について / satocha
ヘルプで
COM_ERR_IGN-COM_ERR_RET(とCOM_ERR_FLG)の項を読んでください。
その上で分からなかったら該当部分のスクリプトを添えてもう一度質問してください。

No.3992 2017/05/21(Sun) 07:45:38

Re: OCR機能について / かん
CONST miLANG_ENGLISH = 9 // English
CONST miLANG_JAPANESE = 17 // 日本語

While 1

SAVEIMG("test.bmp",0,1785,558,130,30)

doc = CreateOLEObj("MODI.Document")
try
doc.Create("test.bmp")
except
doc.Create("test.bmp")
endtry
COM_ERR_IGN
doc.OCR(miLANG_ENGLISH, False, False)
COM_ERR_RET
for i = 0 to doc.Images.Count-1
test=doc.Images[i].Layout.Text
next

print test
sleep(1)

Wend


このように記述してみました
今度は、エラー発生時にUWSCが強制終了してしまうようになりました。
根本的に何か間違っていますでしょうか…。

No.3998 2017/05/22(Mon) 04:02:42

Re: OCR機能について / かん
エラーを無視して繰り返すか、
エラー発生時にスクリプトを再起動できる方法があると良いのですが。

No.3999 2017/05/22(Mon) 04:24:34

Re: OCR機能について / stuncloud
> try
> doc.Create("test.bmp")
> except
> doc.Create("test.bmp")
> endtry


この書き方はダメです、二度目が失敗した場合にどうにもなりません

> for i = 0 to doc.Images.Count-1
> test=doc.Images[i].Layout.Text
> next
>
> print test


これだとImagesが複数あった場合に最後のひとつしかprintされません

> エラーを無視して繰り返すか、
> エラー発生時にスクリプトを再起動できる方法があると良いのですが。

ざっくり書くとこう、どこかしらでエラーが発生したらやり直す

try
 doc = CreateOLEObj("MODI.Document")
 doc.Create("test.bmp")
 doc.OCR(miLANG_ENGLISH, False, False)
 for i = 0 to doc.Images.Count-1
  print doc.Images[i].Layout.Text
 next
except
 poff(P_UWSC_REEXEC, TRUE) // スクリプト再実行
endtry

ただ、根本的な問題解決ができていないと無限に再実行されることになるかもしれませんが

No.4002 2017/05/22(Mon) 10:50:06

Re: OCR機能について / かん
なんとかなりそうです。丁寧にありがとうございました。
No.4003 2017/05/22(Mon) 17:04:28
CHGMOJと配列データの置き換えについて(10番目以降置き換え) / ジンギスカン
res3[12]の配列データが入っています。このデータをCHGMOJを利用して置き換えをしたいのですが地域名1から9までは希望通りの配列のデータが置き換わってくれるのですが、10番目から地域名10の場合地域名1の配列データが置き換わってしまいます。配列データ10番目をうまく置き換える方法ないでしょうか?配列データの10番目である北海道・札幌と地域名10を置き換えたいです。


FOR i = 0 TO LENGTH(res3)-1

全体=CHGMOJ( 全体, "地域名"+i, res3[i])

if i=10 then
全体=CHGMOJ( 全体, "地域名10", res3[i])

elseif i=11 then
全体=CHGMOJ( 全体, "地域名11", res3[i])

elseif i=12 then
全体=CHGMOJ( 全体, "地域名12", res3[i])

endif
NEXT   


[元データ]

<th>地域名0</th>
<th>地域名1</th>
<th>地域名2</th>
<th>地域名3</th>
<th>地域名4</th>
<th>地域名5</th>
<th>地域名6</th>
<th>地域名7</th>
<th>地域名8</th>
<th>地域名9</th>
<th>地域名10</th>
<th>地域名11</th>
<th>地域名12</th>

[配列データ]
全国:関東,首都圏:関西,近畿:東海:海外,グローバル:アジア,海外:甲信越,北陸:中国:四国:北海道・札幌:東北:九州,沖縄:

No.3994 2017/05/21(Sun) 22:15:11

Re: CHGMOJと配列データの置き換えについて(10番目以降置き換え) / Liners
未検証ですが、"<"も含めればユニークになるのでは?

FOR i = 0 TO LENGTH(res3)-1
    全体=CHGMOJ( 全体, "地域名" + i + "<", res3[i])
NEXT

No.3995 2017/05/21(Sun) 23:40:34

Re: CHGMOJと配列データの置き換えについて(10番目以降置き換え) / satocha
問題は「地域名10」を変換したいのに、その前に文字列「地域名1」がマッチしてしまって変換されてしまうことです。
なので、ループを逆順にして先に地域名+数字2ケタの変換をさせればいい。

FOR i = (LENGTH(res3)-1) to 0 step -1
 全体=CHGMOJ( 全体, "地域名"+i, res3[i])
NEXT   

No.3996 2017/05/22(Mon) 01:58:25

Re: CHGMOJと配列データの置き換えについて(10番目以降置き換え) / Liners
satocha さんの方がよりスマートですね。
訂正: 全体=CHGMOJ( 全体, "地域名" + i + "<", res3[i] + "<")

No.3997 2017/05/22(Mon) 02:59:12
セキュリティソフトの誤検知について / umiumi
ご迷惑をおかけして申し訳ありません。
もちろん マルウェア的な物は入っていません。

とりあえずの対策であれば、セキュリティソフトの除外処理で UWSC.exeを検査から除外してください。
もしくは UWSCの旧版を使用してください。(ダウンロードページの下に「前バージョンのUWSC」があります)

当方としては全てのセキュリティソフトに対応する事はできません。
UWSCが誤検知された場合にはセキュリティソフト側に問い合わみて頂けると こちらとしても助かります。

UWSC Ver530からは デジタル署名(コードサイニング証明書)を付けています。
エクスプローラより UWSC.exeを右クリック ->「プロパティ」 ->「デジタル署名」
「詳細」ボタンにて デジタル署名情報が表示されます。
「このデジタル署名は問題ありません。」とあれば
著者の身元、ファイルが改変されていない事を認証局が保証します。
残念ながら セキュリティソフトに対しては役にたたないようですが。

おそらく UWSCの構造、性質からして これからもバージョンアップの度に 誤検知される可能性は高いと思われます。
どうかご了承ください。

No.3990 2017/05/21(Sun) 01:54:15
バックグラウンドでIEの特定のタブを閉じる方法 / ヤマグチ
いつもお世話になっております。
IEの、カメラという文字が含まれたタブをバックグラウンドで閉じたいのですが

bid=GETID("カメラ")
hwnd=GETCTLHND(bid,"Edit")

MOUSEORG(hwnd, MORG_DIRECT)
print hwnd

KBD(VK_CTRL, DOWN)
KBD(VK_W, CLICK, 100)
KBD(VK_CTRL, UP, 100)

上記のスクリプトですと、10回に3,4回程しか上手く閉じてくれません。
タブを認識しているかどうかの確認のために、print hwndを挿入していますが、これは常に66410と返してくれますのでタブの認識は問題ないと思っています。
KBDの時間を幾通りか変更してみましたが結果は同じでした。
SCKEYにしますと、IEがアクティブになってしまいます。
BTNを使って、IEのメニューバーのファイル部分を左クリック、C押しをするため、KBDの3行を

BTN(LEFT,CLICK,35,62)
KBD(VK_C, CLICK, 100)

に変更してみましたが、IEのアドレスの部分にCが入り、相対座標をいろいろ変えてみても結果は同じでした。

ご教授願えましたら幸いに存じます。

No.3982 2017/05/19(Fri) 09:29:13

Re: バックグラウンドでIEの特定のタブを閉じる方法 / ando
// 動作確認環境:win10, IE11, UWSC5.3.0.2

指定タイトル = "カメラ"
try
 IE = GetActiveOleObj("InternetExplorer.Application", 指定タイトル)
 IE.ExecWB(45, 0) // タブを閉じる
 msgbox("指定タイトル = <#dbl>"+指定タイトル+"<#dbl><#cr>のタブを閉じました")
except // 指定タイトルのIEを取得できなかった時のエラー対策
 msgbox("エラー<#cr>指定タイトル = <#dbl>"+指定タイトル+"<#dbl><#cr>のIEを取得できませんでした")
endtry

No.3987 2017/05/20(Sat) 05:09:16

Re: バックグラウンドでIEの特定のタブを閉じる方法 / ヤマグチ
ando様
すごいです。思い通りに動きます‼
たいへんたいへん感謝申し上げます!

No.3988 2017/05/20(Sat) 08:30:53
配列の数字データがエクセルで入力した結果がおかしい / 加川プロ
xgetでaファイルの内容をaファイル変数に入れて、aファイルのデータをres=split(aファイル,":")で配列に数字のデータのみをいれています。
このデータをエクセルにExcel.ActiveSheet.Range("A3:A11")=Excel.WorksheetFunction.Transpose(res)
で縦に入力しているのですが、下記のような入力結果になります。表示形式を文字列や数字でそれぞれ試してみたのですが、aファイルの数字をそのまま入力した形になりません。何が原因なのでしょうか?

[aファイル]

134:
36:
17:
15:
9:
2:
2:
1:

[入力結果]
6
2
1
1
0
0
0
0

No.3977 2017/05/18(Thu) 11:15:33

Re: 配列の数字データがエクセルで入力した結果がおかしい / 加川プロ
解決しました。
No.3981 2017/05/18(Thu) 12:23:32
ウイルスと見なされ勝手に削除されました。 / 山ちゃん
ウイルスバスターにUWSVがウイルスと見なされて、勝手に削除されました。

再ダウンロードをしようとしたら、やはりアクセス先が危険だと言われて拒否されました。

No.3978 2017/05/18(Thu) 11:38:28

修正・補足 / 山ちゃん
UWSCが自動削除されます。

Pro版です。

No.3979 2017/05/18(Thu) 11:47:01

Re: ウイルスと見なされ勝手に削除されました。 / 雅
ちょっと前に書かれているスレくらいみましょうよ。
No.3980 2017/05/18(Thu) 12:07:05
excelの式を値のみにする方法 / ゆき
UWSCについて質問です。

いつもお世話になっています。今回もよろしくお願いします。

excelに記述された、式を、値だけにしたいのですが、
どのようにすれば出来るのか、分かりませんでした。
ちなみにPRO版は持っておりません。

セルを全選択したのち、右クリック、コピー、右クリック、値を選択して
貼り付けを行おうと思ったのですが、セルの全選択が上手く行きませんでした。

例えば

C2 =Sheet1!A1
C3 =Sheet1!A2

という式があり、値だけにしたい場合、どのような処理を行えば
良いのでしょうか?どなたか、教えて頂けると幸いです。
よろしくお願いします。

No.3967 2017/05/16(Tue) 11:42:43

Re: excelの式を値のみにする方法 / しき
o_Excel = GetActiveOleObj("Excel.Application")
o_sheet = o_Excel.Worksheets("Sheet2")
o_range = o_sheet.Range("C2")
o_range.Value = "=Sheet1!A1"  //式を入れてみる
v = o_range.Value        //値を取得
msgbox(v)
o_range.Value = v        //値を代入

o_range = o_sheet.Range("C3")
o_range.Value = "=Sheet1!A2"
o_range.Value = o_range.Value

No.3974 2017/05/17(Wed) 18:03:08

Re: excelの式を値のみにする方法 / K.Nagatani
こんな方法も良かったら参考にしてください。

 EXCEL = GETACTIVEOLEOBJ("Excel.Application","TEST.xlsx")
 EXCEL.visible = True

 //条件を入力
 EXCEL.Range("A1:A3").VALUE=100

 //式を入力
 EXCEL.RANGE("B1:B3").FORMULA="=A1"

 //コピーと貼り付け
 EXCEL.activesheet.RANGE("B1:B2") = Excel.Range("B1:B2").Value()

No.3975 2017/05/17(Wed) 22:34:51
thread内での座標指定方法 / uwsc勉強中
mainとthreadの両方で、同じ座標の色情報を取得したいと考えています。

下記のようなスクリプトでは、main=, thread=で表示される値が異なりますが、
同じにできる手法はありませんでしょうか?
相対座標でpeekcolorの位置を指定したいと考えています。

ID = GetID(GET_FROMPOINT_OBJ)
MOUSEORG(ID,1,MORG_FORE)

thread A

while true
print "main= "+peekcolor(100,200,COL_RGB)
sleep(0.01)
wend


procedure A()
while true
print "thread= "+peekcolor(100,200,COL_RGB)
sleep(5)
wend

No.3961 2017/05/15(Mon) 00:05:34

Re: thread内での座標指定方法 / miles
procedure A() でも MOUSEORG が必要です。

以下ヘルプファイルより

// マウス座標を相対座標にする、 またはマウスとキー情報を直接ウィンドウへ送る
MOUSEORG( ID, [基準指定, 画面取得指定 ] )
〜 省略 〜
 ※ 有効範囲はスレッド単位

No.3966 2017/05/15(Mon) 12:35:42
<#dbl>を”に変換する方法 / NER
正規表現でエディターで検索とuwscのスクリプト上で起動する際に<#dbl>と”を変換を手動でやるのが面倒なので、変換する方法を下記のスクリプトで書いてみたのですがうまく変換されません。何か良い方法ないでしょうか?

textblock name
// <span class=<#dbl>num js-count<#dbl>>     (\d{1,4})|<span class=<#dbl>num js-privateCount<#dbl>> .+;(\d{1,4})
endtextblock

// a=getstr(0)
b=chgmoj(name,"<#dbl>",chr(34))
print b

結果
// <span class=<#dbl>num js-count<#dbl>>     (\d{1,4})|<span class=<#dbl>num js-privateCount<#dbl>> .+;(\d{1,4})

希望の結果
// <span class="num js-count">     (\d{1,4})|<span class="num js-privateCount"> .+;(\d{1,4})

No.3959 2017/05/14(Sun) 21:27:05

Re: <#dbl>を”に変換する方法 / しろまさ
分ける。
b=chgmoj(name,"<#" +"dbl>",chr(34))

No.3962 2017/05/15(Mon) 09:05:28

Re: <#dbl>を”に変換する方法 / stuncloud
textblockの中では<#dbl>と書かずにそのまま " と書いたんでいいんですけどそういう話ではない?
No.3963 2017/05/15(Mon) 09:53:18

Re: <#dbl>を”に変換する方法 / NER
しろまさ様、回答ありがとうございます。
期待通りの処理ができました。

No.3964 2017/05/15(Mon) 12:23:02

Re: <#dbl>を”に変換する方法 / NER
stuncloud様、コピーした状態で<#dbl>を"に変換する処理です。
正規表現でエディターでパターン検索する場合とスクリプトで処理する際の変換が手動でするのが面倒だったのでこのスクリプトが欲しいと思いました。

No.3965 2017/05/15(Mon) 12:25:18
peekcolorで抽出される色情報 / uwsc勉強中
peekcolorで抽出される色情報はどのPCでも同じなのでしょうか?

例えば、モニタ違い、グラフィックボードの違い、PCの設定などによって色情報に違いがでるのでしょうか?

peekcolorで色情報を抽出すしてその情報に応じてアクションするソフトを作成しているのですが、私の環境以外で利用した場合に動かなくなることを心配しています。

環境に依らないのであればいいのですが、環境によるならば、どういったことをケアすべきなのか(uwsc側で対処すべきか、利用者側で対処すべきか)を知っておきたく、質問した次第です。

No.3905 2017/05/07(Sun) 18:20:18

Re: peekcolorで抽出される色情報 / 俄プログラマー
表示できる色数(16、24、32ビット)によって結果が変わるのは容易に想像できると思います。
なぜpeekcolorが必要なのかによりますが私は滅多に使いません。

No.3906 2017/05/07(Sun) 21:18:26

Re: peekcolorで抽出される色情報 / uwsc勉強中
有難うございます。

>表示できる色数(16、24、32ビット)によって結果が変わるのは容易に想像できると思います。
モニタの色あいを変更しても、抽出される色情報が同じだったため、どこで決まるのかと疑問になりました。
特に、私の環境以外で利用した時に、何によって色情報が決まるのか?表示できる色数(16、24、32ビット)が同じであれば、環境に依らず色情報は同じなのか?ご教授いただければと思います。
もしくは、何か参考になるURL等を教えてください。

>なぜpeekcolorが必要なのかによりますが私は滅多に使いません。
刻一刻と変化する場面を判定するために利用することを考えました。できるだけ高速にしかも環境に依存せず、判定したいという目的があり、chkimgより速かったためpeekcolorを選択しました。
目的を達成できれば手段は問いません、お勧めの手段があればご教授いただければありがたいです。

よろしくお願いします。

No.3922 2017/05/08(Mon) 22:38:53

Re: peekcolorで抽出される色情報 / 俄プログラマー
モニターの色合い変更は関係ありませんね。
PCが出力する色に関係します。
パソコンAが16ビットカラーの場合とパソコンBが32ビットカラーの場合では出力される色が違います。
その場合それぞれに合わせて対応しなければならないでしょう。peekcolorでの対策はそれですね。
両方の設定ができるパソコンであれば設定を変えてどのような結果になるかご自身でテストされれば分かり易いと思いますよ。但し単色の場合たまたま同じ色の場合もあるでしょう。

>刻一刻と変化する場面を判定するために利用することを考えました。できるだけ高速にしかも環境に依存せず、判定したいという目的があり、chkimgより速かったためpeekcolorを選択しました。

考えた結果それが一番であればそれで良いのではないですか?
具体的にどんな場面で使うか書かれていない以上こちらでは答えようがないですよね?

私がpeekcolorをあまり使わない理由はその座標1点の評価しか出来ないからです。
勿論使う場合はそれが最適である場合のみです。(当たり前ですが)

No.3923 2017/05/08(Mon) 23:43:00

Re: peekcolorで抽出される色情報 / uwsc勉強中
有難うございます。
色深度をキーワードに勉強してみます。

No.3924 2017/05/09(Tue) 00:30:22

Re: peekcolorで抽出される色情報 / 山ちゃん
過去ログ(〜2017/03/22)・検索ツールにてpeekcolor、chkimgで実行環境に関係してそうな過去ログを
ピックアップしました。
ログの見逃し、誤要約等があると思いますので、過去ログ検索ツール(掲示板の下にリンクがあります)を
ダウンロードした上でタイトルまたは書き込み日時を検索して実際の書き込みを確認してみてください。
膨大なログ量なので勉強にもなると思います。
(余談でpeekcolorとは離れますが過去ログ検索ツールのソースを読む(解析)と参考になったりします。)


検索ワード peekcolor
色判定 DATE:2007/4/3(Tue) 14:06
peekcolorはPCの何に依存しているものなのでしょうか?
→色数やビデオカードの設定によって違ったりします(作者umiumi様の回答)

Win7でpeekcolorが異様に遅い DATE:2010/8/18(Wed) 12:17
XPに比べWin7でpeekcolorが遅い
→ http://www.uwsc.info/faq.html#n32 デスクトップ コンポジションを無効にする(無事解決された模様)

色認識が正常にされない問題 No.129 2014/09/12(Fri) 19:22:44
peekcolor、CHKIMGが動作しない
→画面認識を妨げるソフトがあったとの事です(自己解決されました)


検索ワード chkimg
BMP DATE:2007/2/5(Mon) 15:11
デスクでやると判別するがにノートでやると判別できない
→画像作成環境と実行環境の画面の色数の違いではないでしょうか。
(色数(色深度)の問題では無いかと、過去の経験から実例を交えて回答されています)

モニタを変えたら画像認識が使えなくなった DATE:2010/5/24(Mon) 07:54
モニタ変更後、画像が認識されない
→色数の問題では無いかとアドバイス
→色数を16ビットと32ビットにしても解決しないとの事
→モニターを戻した場合に動くかどうかの結果、簡単な画像だと認識するかのテスト実施のアドバイス(未解決)

違うPCだと画像認識しないケース? DATE:2011/9/19(Mon) 09:14
所有している2台のPCで問題なく動いている物が、友人のPCでは動かない(CHKIMGで、認識している画像もあるものの、認識していない)
→色数の問題では無いかとアドバイス
→全環境において32ビットで同じとの事(未解決)

4.8d MOUSEORGについて DATE:2013/1/4(Fri) 01:56
PC環境やFireFoxの位置によっては動かない、MOUSEORG(id,2,MORG_BACK)使用時の挙動が違う
→FireFoxのハードウェアアクセラレーションを有効にしていたため、オフスクリーンバッファになっていたようでした。
無効にすると期待した通りの結果となりました。との事(自己解決されました)

chkimgについて DATE:2013/2/2(Sat) 03:32
ディスプレイ環境(マルチディスプレイ等)での画像認識について
→ディスプレイは関係なく、グラフィックの色数やアクセレーター機能しだいだと思います。多少の色の違いだけなら色幅を指定すれば吸収できますよ。とアドバイス
→認識しない部分は、単色に僅かなグラデーションがかかった部分が殆どでしたので、色幅を指定したほうが確かに認識しやすいと思います。
グラフィックボード毎に微妙に画像認識が違うのでしょうか。色幅を指定して頑張ってみます。との事で(疑問が残りつつ終了)

chkimg関数での判別について DATE:2013/3/1(Fri) 15:38
文字色が固定で白、背景が半透明の画像がPC環境により背景色が変わってしまうため、うまく判別させる方法を知りたい
→chkimgの透過指定、白文字以外は適当な色の画像を作って適当な色の部分を透過指定とアドバイス
→解決

画像認識 No.1399 2015/06/25(Thu) 18:03:25
パソコンを購入したら画像認識後、全然違う場所でクリックする
→コントロールパネルのディスプレイで「すべての項目のサイズを変更する」で100%以外にしているなら100%してみたらどうですか
→解決(UWSC Ver5.1.2で修正済み、画面のスケーリングが 100%以外だとフォアグラウンド画像(SAVEIMG,CHKIMG)がズレるのを修正)

ネット環境で、画像認識をしなくなる。 No.3169 2016/11/17(Thu) 20:44:50
別場所で画像認識しなくなる
→Wi-Fiのアクセスポイントを買い換えてみたら解決したとの事
(通信会社が通信の最適化のために画像の圧縮処理をする事があるようで、それが原因だった模様)

No.3927 2017/05/09(Tue) 16:37:49

Re: peekcolorで抽出される色情報 / uwsc勉強中
ありがとうございます。
灯台下暗しとはこのことでしょうか、、、
同じように考えられている方がたくさんいらっしゃるのですね。
これから確認していきたいと思います。

俄プログラマー様、 山ちゃん様有難うございました。

No.3960 2017/05/14(Sun) 23:50:34


 過去ログ(〜2017/03/22)・検索ツール


以下のフォームに記事No.と投稿時のパスワードを入力すれば
投稿後に記事の編集や削除が行えます。
199/200件 [ ページ : << 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 20 >> | 過去ログ ]