UWSCでMOUSEORG関数が上手くいきません

ACW(GETID("無題 - メモ帳","Notepad"))
sleep(1)
KBD(VK_A,CLICK,40)

このコードだとメモ帳に入力出来ます。

しかしバックグラウンドでAと打たせるコードで
id=GETID("無題 - メモ帳","Notepad")
mouseorg(id,2)
sleep(1)
KBD(VK_A,CLICK,40)

これだと無反応です。

処理を画像認識に入れ替えたら画像は認識しますがクリック操作などは受け付けない感じです。

コードに問題ありますか?コードに問題がないとすれば環境に問題があって
それが弊害となるケースはあるのでしょうか?

【環境】
OS Windows7 sp1 64bit
使用しているツール UWSC フリーソフト 5.1.1の最新版
セキュリティーソフト ノートン360(試用版)

このQ&Aに関連する最新のQ&A

A 回答 (1件)

以下にそのままのコードがあります


http://fluxonix.asia/kannsuu/mouseorg/
    • good
    • 2

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QUWSCでメモ帳に書いてある数値を変数に代入

UWSCでメモ帳に書いてある数値を変数に代入

今回初質問です。宜しくお願いします。

UWSCを使っているのですが、ひとつ分からないことがありまして、質問させてください。

たとえば、メモ帳にある数値が下記のように書き込まれるとします。書き込みにはUWSCは使っていません。
3
5
6
10
2
50

数値は上から時系列順に、1時間ごとに書き込まれるとします。

3 ←3時に記載
5 ←4時に記載
6 ←5時に記載
10 ←6時に記載
2 ←7時に記載
50 ←8時に記載

IF文で数値が50以上の場合にある特定の行動をしてほしい、というUWSCのスクリプトを書きたいのですが、その場合のスクリプト記載方法が分かりません。
動的に書かれる数値をUWSCのスクリプトの中に取り入れる方法ご存知の方、ご教授下さい。

IF メモ帳に書かれている数値 >= 50
特定の行動
ENDIF

宜しくお願いいたします。

Aベストアンサー

メモ帳に書かれた値を引っ張ってくるだけなら、簡単です。まずは、以下の処理をスクリプトにしてください。(できますよね?)

1)メモ帳をアクティブにする
2)CTRL+ENDを押す
3)SHIFT+カーソル上を押す
4)CTRL+Cを押す
5)CTRL+ENDを押す

これでメモ帳に最後に記入された値がクリップボードに入りますから、すかさずfoo = GETSTR(0)とやれば、変数fooに所望の値が取り込めます。(この変数名は適当なので、名前は自由につけてください)

ここで問題となりそうなのは、一時間おきに値を書いてくる人と、監視する人が別なので、どうやって同期させようかという点です。運が悪いと値が書かれる前にチェックしてしまって空振りしますし、心配性に何度もチェックすると、もう処理済みなのにまた処理しちゃう…なんてことになりかねませんから。堅いのは、チェックしに行くのを若干遅らせることでしょうか。

Q【UWSC】アプリを閉じたのに、GETID(”アプリ”)が「-1」となってくれない。

いつもお世話になっております。
UWSC超超初心者です。

早速質問なのですが、アプリを閉じたのに、
GETID(”アプリ”)が「-1」という現象が出てきて悩んでいます。

Windowsタスクマネージャーで「アプリ」がないことを確認しました。
何がいけないか教えていただけませんでしょうか。
ちなみにアプリが立ち上がっていなければ、戻り値は「-1」であるという
認識は合っていますでしょうか。

よろしくお願いします。

Aベストアンサー

完全一致というのは案外厄介です。というのは、操作の対象となるアプリとよく似たタイトルの別アプリがいて、そちらの方が長いタイトルだと、そのままではチェックできないからです。例えば以下のようなタイトルの二つのアプリがいた場合、1.UWSをキーにしてウィンドウIDを取ってくると、どっちが引っかかるか解りません。

1.UWS -メモ帳
1.UWS -Microsoft Word

運が悪いと、自分が操作したい方じゃないアプリのIDを取ってきて、そっちに操作が行ってしまうことだってあり得ます。まさに今、それに近いことが起こっているわけですよね。

なので、今開いている全部のウィンドウIDをGETALLWIN関数で取ってきて、片っ端からタイトルを比較し、自分の正体をはっきりさせ、覚えておくといった工夫が必要かと思います。一度取得したウィンドウIDはアプリを閉じるまでずっと有効なため、変数に書いておけばいちいち調べ直す必要もありません。

QUWSC 用のマクロコードを教えてください

UWSC を使ったプログラムを作成しています。

黄色い部分の push ボタンを左クリックすると
赤いラインが上昇します。

それを決められた色のところまで自動で動くようにしたいのです。
今ある赤色ラインで止めたいのです。

黄色いpushは 10種類ほどあり 色が多数あります。
画像を習得してどの画像にも対応できるようにしたい。

赤いラインを止める場所を 色を指定して止める
RGB値を設定して 毎回ここでクリックが外れるような設定



現在設定している状況は 1組のみの設定なのでこれを多数に対応できるように組み替えたいのです。


************************************************

RGBcolor(x2+17,y4+40)
ifb R >255 and G < 255 and B < 51 then
u = true
elseif R > 100 and G < 100 and B > 177 then
u = true
endif
RGBcolor(x2-17,y4+40)
ifb R >255 and G < 255 and B < 51 then
u = true
elseif R > 100 and G < 100 and B > 177 then
u = true
endif

ifb peekcolor(x2,y4-100) = 0 then
ifb chkimg("push1.bmp",-1,0,0,yoko-10,tate-10,1) then
elseif chkimg("push01",1,0,0,yoko-10,tate-10,1,IMG_MSK_BGR2) then
elseif chkimg("push02.bmp",1,0,0,yoko-10,tate-10,1,IMG_MSK_BGR2) then
endif
x4 = G_IMG_X + 6//押すの上端
y4 = G_IMG_Y - 1//押すの上端
RGBcolor(x4,y4)
ifb R>255 and G>200 and G<255 and B>30 and B<70 then
turiage()
endif
endif



***************************************************



この部分を変更したいのですが よくわからなくて。

どうかお力をお貸しください。

UWSC を使ったプログラムを作成しています。

黄色い部分の push ボタンを左クリックすると
赤いラインが上昇します。

それを決められた色のところまで自動で動くようにしたいのです。
今ある赤色ラインで止めたいのです。

黄色いpushは 10種類ほどあり 色が多数あります。
画像を習得してどの画像にも対応できるようにしたい。

赤いラインを止める場所を 色を指定して止める
RGB値を設定して 毎回ここでクリックが外れるような設定



現在設定している状況は 1組のみの設定なのでこれを...続きを読む

Aベストアンサー

ここまで作ってあるのに、どうして解らないかの方が謎に思えますが、要するにこの処理全体をFunctionかProcedureに入れてしまって、10個分のボタンの画像とクリックしたい座標、止めたい色のRGB値を変数にして渡せばできるでしょう。見たところ、座標はすでにx2,y4みたいな変数で受けているので、この値を変えていくだけです。

ところでこのスクリプト、関数RGBcolorやturiageの定義内容が消されていたり、変数の説明が書かれていないなど、非常に読みづらいです。これで全てではなくて、抜粋したものですね。elseifの後の処理も消されているっぽいですし。長すぎるので編集した場合は、ある程度コメントを書き足しておかないと、意味不明になりますよ。

あと、一つ疑問があります。PeekColorの戻り値をR,G,Bに分解すると、それぞれの値は最大で255にしかならないので、ところどころにあるIf文で「R>255」みたいな判定をしている部分は全て偽になり、意味がない気がします。(これも関数RGBcolorの定義内容がわからないため、正否が判断できない)

ここまで作ってあるのに、どうして解らないかの方が謎に思えますが、要するにこの処理全体をFunctionかProcedureに入れてしまって、10個分のボタンの画像とクリックしたい座標、止めたい色のRGB値を変数にして渡せばできるでしょう。見たところ、座標はすでにx2,y4みたいな変数で受けているので、この値を変えていくだけです。

ところでこのスクリプト、関数RGBcolorやturiageの定義内容が消されていたり、変数の説明が書かれていないなど、非常に読みづらいです。これで全てではなくて、抜粋したものですね。els...続きを読む

QUWSCの画像認識でのコードがよくわかりません。

UWSCについて質問があります。
画像認識での簡単なマクロを組めるようになったので
同じ進行で平行処理をやってみたいのですがどのようにコードを組めばいいのかわかりません。

やってみたいことは
ACW(GETID(&quot;テキスト1.txt - メモ帳&quot;,&quot;Notepad&quot;),4,2,640,683,0)
ACW(GETID(&quot;テキスト2 ドキュメント (4).txt - メモ帳&quot;,&quot;Notepad&quot;),641,0,637,680,0)

この二つのファイル(サイズや座標を変えず)にtestAと1回打ち(testAの画像をキャプした画像A)次にtestB(testBをキャプした画像はB.bmp)と打ってみたいです。
一つのコードは組みあがったのですが画像2個認識したら次の構文に移るみたいにしてみたいのですがサンプルとしてのコードをお教えください

一応サンプルコードみながらマクロは組みあがって一つの窓でゲームを動作させるのには問題ないのですが
WHILE (CHKIMG(&quot;初期の画面.bmp&quot;)=FALSE)//開始画面
IFB CHKIMG( &quot;A.bmp&quot;)
y=G_IMG_Y //
BTN(LEFT, CLICK, x+2, y+2, 80)
sleep(0.2)
endif
ELSEIF (CHKIMG(&quot;B.bmp&quot;)=TRUE) THEN
x=G_IMG_X
y=G_IMG_Y
BTN(LEFT, CLICK, x+2, y+2, 80)
sleep(1)
endif
WEND
WHILE (CHKIMG(&quot;B.bmp&quot;)=FALSE)~WEND//次の戦闘画面
のような構文で数珠繋ぎにして進行させているので片方の窓が置いてけぼりで止まっちゃうので同時進行させたいので、初心者でも分かるようなご教示お願いします。

UWSCについて質問があります。
画像認識での簡単なマクロを組めるようになったので
同じ進行で平行処理をやってみたいのですがどのようにコードを組めばいいのかわかりません。

やってみたいことは
ACW(GETID(&quot;テキスト1.txt - メモ帳&quot;,&quot;Notepad&quot;),4,2,640,683,0)
ACW(GETID(&quot;テキスト2 ドキュメント (4).txt - メモ帳&quot;,&quot;Notepad&quot;),641,0,637,680,0)

この二つのファイル(サイズや座標を変えず)にtestAと1回打ち(testAの画像をキャプした画像A)次にtestB...続きを読む

Aベストアンサー

コピーしすぎて間違えてました
 >WHILE (CHKIMG(”A.bmp")=FALSE)//開始画面   ここから流れ2
 WHILE (CHKIMG(”B.bmp")=FALSE)//開始画面   ここから流れ2
です

Qダウンロードしたテキストを 「メモ帳」 で改行表示するには?

例えば style.css をアップロードして、
それをまたオンラインからセーブし 「メモ帳」 で開くと
改行が無視され、続けて表示されてしまいます。

つまりこれが

body {
font-size: 10px;
}
td {
font-size: 16px;
}

こうなります。

body { font-size: 10px;}td { font-size: 16px;}


しかし WordPad で開けばうまく表示されるのですが、
メモ帳でも表示させる方法をご存知でしょうか?

Aベストアンサー

既に書かれているとおり、おそらくFTPでのアップ時に変換されてしまっているものと思われます。
おそらく、テキストでWin->UNIXな転送をすると親切に改行が変換される設定になってるわけです。
つまり、サーバにあるファイルはすでにLFだけになっている。

サーバからの取得がFTPなら、
 取得時の転送モードをテキストにすればCR-LFに再変換されて取得できるでしょうが(取るときに再変換)、

HTTPで取得してもCR-LFにしたいということであれば、
 サーバへの格納自体をCR-LFにする必要があります。

つまり、FTPのアップロードをバイナリ転送にする
(もしくは改行を変換しないオプションに変える)。
こうしてしまえば、FTPの場合でもきちんと改行して見えるはずです。
# 具体的な設定方法はお使いのFTPクライアントソフトによります。

# いずれにせよ、メモ帳で書くのはお勧めできませんけど。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報