自動化ツールuwsc使いよ集まれ6at SOFTWARE
自動化ツールuwsc使いよ集まれ6 - 暇つぶし2ch900:名無しさん@お腹いっぱい。
11/06/29 15:56:24.05 rcowTlhM0
UWSCというマクロツールで ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラムを作りたいのですが
うまくいきません。
URLリンク(detail.chiebukuro.yahoo.co.jp)
私の作ったプログラムはランダム質問までいくのですがそこからがいきません。 何が悪いのでしょうか?
とりあえず私の未完成プログラムを書きますね^^

皆さんの回答をお待ちしております
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("detail.chiebukuro.yahoo.co.jp/qa/rand.php")

REPEAT
sleep(0.5)
UNTIL !IE.busy AND IE.readystate = 4
ret = IELINK(IE,"役に立った!")

901:名無しさん@お腹いっぱい。
11/06/29 18:03:44.63 duIKIGLv0
バックグラウンドで動作するプロセスの起動確認をUWSCでしたいのですが、
どうすれば出来ますか?

タスクマネージャのプロセス一覧には表示されるけど、タスクバーには表示されないので、
GETALLWINでは取得できません。

ちなみにVBSでは以下の記述で使っていました。

Set objProcList = GetObject("winmgmts:").InstancesOf("win32_process")

For Each objProcess In objProcList

if objProcess.name = "aaa.exe" then
msgbox "aaa.exe は起動しています"
Exit For
end if
Next


902:名無しさん@お腹いっぱい。
11/06/29 18:29:42.27 deNe4CIU0
>>901
.length 個の.item(i) があるようです。

URLリンク(www3.bigcosmic.com)
for i= 0 to col.length-1
  objITEM = col.item(i)
  ifb objITEM.Name = "kansou" And objITEM.Value = strRADIO1[nNO]
    objITEM.Checked = True
    break
  endif
next

GETOLEITEMもあるっぽい
// c:\windows下のディレクトリ表示
fs = CreateOLEObj("Scripting.FileSystemObject")
gf = fs.GetFolder("c:\windows")
for i = 0 to GETOLEITEM(gf.SubFolders)-1 // コレクション取得
  print ALL_OLE_ITEM[i].name
next

結果だけが欲しければコピペをPOWERSHELLで処理するとか
あ、書式だいぶ違った。

qprocess | find "iexp" をDOSCMNDで実行して戻り値を見るとか
ただし、最後に改行がつくから面倒な場合もある。


903:名無しさん@お腹いっぱい。
11/06/29 21:20:55.86 DrTJUpW80
uwscファイルの修正を行っていたらわけがわからなくなってしまったので
もしよければ教えていただきたいと思い書き込みしました。

elseif CHKIMG("A.bmp", 0) then
x1 = G_IMG_X; y1 = G_IMG_Y;

質問1:G_IMG_Xとは画像のX座標のどの位置を指すのですか?(中心とか右端とか)
質問2:例えばA.bmpの中心座標x1からbだけずれた位置をxと定義する場合
どのようにx1 = G_IMG_X; y1 = G_IMG_Y;以降に書き加えればよいのでしょうか?
色々と調べてみたのですがわからなかったのでお手数おかけしますがご指導お願いします。


904:名無しさん@お腹いっぱい。
11/06/29 21:35:31.02 LB4seq1X0
この程度の事なら調べたら絶対どこかに載ってるだろ

905:名無しさん@お腹いっぱい。
11/06/29 21:38:50.36 D8kMG3Lx0
FUKIDASIを使うと発見場所をピンポイントで指してくれていいんだけどね

906:名無しさん@お腹いっぱい。
11/06/29 22:33:33.68 wC2OHX7t0
>>903
左上
G_IMG_X+b

907:名無しさん@お腹いっぱい。
11/06/29 23:11:49.90 DrTJUpW80
>>904->>906
ご指導ありがとうございました!!
特に>>906さんのヒントで修正できました!
わざわざお忙しい中教えてくれてありがとうございます!

908:名無しさん@お腹いっぱい。
11/06/29 23:15:59.86 bZrINL020
釣りさげさんw

909:名無しさん@お腹いっぱい。
11/06/29 23:28:28.31 DrTJUpW80
>>908
そうなんですww
恥ずかしい--;

910:名無しさん@お腹いっぱい。
11/06/29 23:36:29.67 bZrINL020
聞くは一時の恥と言いますしクレクレ言ってるより全然いいです

911:名無しさん@お腹いっぱい。
11/06/30 04:26:45.68 jnOygYoc0
>>902
サンクス、ずいぶん短くなった
if doscmd("qprocess | find <#DBL>aaa.exe<#DBL>") <>"" then msgbox("aaa.exe は起動しています")

912:名無しさん@お腹いっぱい。
11/06/30 12:59:42.54 KNK9iezw0
WebFlash上で該当画像が見つかったらクリック、見つからなかったらもう一度探す
ように動作させたいのですがどこを変えれば良いでしょうか

while True

if GETKEYSTATE(VK_ESC) then exit     // ESCキーを押すと終了させる


ifb CHKIMG("該当画像.bmp")      // 画面上に画像があった場合以下へ

x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入

BTN(LEFT, CLICK, x, y, 80)   // 画像の場所を左クリック
endif

wend

913:名無しさん@お腹いっぱい。
11/06/30 14:18:35.54 w5XXpq2P0
見つかった場合ループ抜けるなら
endifの前にBREAKでいいんじゃないかな

もしくは

REPEAT
SLEEP(0.5)
UNTIL CHKIMG("画像.bmp")
BTN(LEFT, CLICK, G_IMG_X, G_MIG_Y,)

こんな感じでも行けるかな。


914:名無しさん@お腹いっぱい。
11/06/30 14:36:22.38 KNK9iezw0
>>913
ありがとうございます
やってみます

915:名無しさん@お腹いっぱい。
11/07/01 09:13:55.67 2szK5Hhq0
>>914
どうなった?

916:名無しさん@お腹いっぱい。
11/07/01 12:50:57.23 qr4mdfQW0
XPでは普通に動くのにwin7だとsleepの待ち時間が異常に長くなったりします。
何が原因なんでしょうか?毎回なるのではなくちょっとした変更をしたときなどに
起こります。

917:名無しさん@お腹いっぱい。
11/07/01 13:27:42.49 Ah/UJqwu0
>>916
内容も判らんのに答えれるかよ
何をどう変更した時になるか
どういった処理途中なのかぐらい書けば?


918:名無しさん@お腹いっぱい。
11/07/01 14:04:37.82 3xGHvoC70
>>916
XPでもCPU100%使っていれば1.5倍くらい長くなったりするよ。

919:名無しさん@お腹いっぱい。
11/07/02 01:06:04.52 s+nlN2GB0
>>915
最終的に座標をY軸方向に-1移動することで期待していた動きを命令できました
指導ありがとうございました

920:名無しさん@お腹いっぱい。
11/07/02 19:16:53.00 qXbEMK4g0
質問させてください。

指定する色の大きさ(領域)を取得することは可能でしょうか?

921:名無しさん@お腹いっぱい。
11/07/02 19:47:14.95 eecfVZFN0
>>920
色の領域じゃちょっと意味が分からないな。

ファイル名からサイズを取得するのを調べてたんだけど
UWSCで使えるのはまだ見つかってない。

そう言えばUWSCは比較する時に画像のサイズを持ってるんだから
真ん中とか指定できてもよさそうなもんだが


922:名無しさん@お腹いっぱい。
11/07/02 20:25:17.72 RUSRgWY+0
>>920
1ピクセルの色取得が出来るんだから、出来るに決まってるだろ。
塗りつぶしのアルゴリズムが使える…まぁ、スクリプトとしての速度の問題があるとは思うが。
それは自分で判断するしかあるまい。

>>921
UWSCに頼らず、自分でBMP用意してるんだし。
BMPのヘッダとか自前で読めばいいんじゃない?

923:名無しさん@お腹いっぱい。
11/07/02 23:50:17.27 eecfVZFN0
>>922
>>776前後で書いたけどUWSCはバイナリ読めないので、どの道他のツールを使うことになる。
ならUWSCから既存のOLEなりを呼んでもいいだろと。


924:名無しさん@お腹いっぱい。
11/07/03 00:43:08.39 TB/Oc13V0
>>923
URLリンク(d.hatena.ne.jp)
UWSC系でfsoを使わないのもおかしいからな。ADODB.Streamを使うのもUWSCとして普通だと思うがなぁ。

ADODB.Streamを
呼び出したのはUWSCから直接なので自前とするか
UWSCの基本構文にそういうのが無いから他のツールとするか

…単なる呼び方のもんだいであって、微妙なラインだ。

925:sage
11/07/04 16:33:50.58 OnV/XTnZ0
UWSCで5番目のAタグをクリックするコードを教えてください



926:名無しさん@お腹いっぱい。
11/07/04 16:39:44.94 nOTb+LoZ0
日本語でおk

927:名無しさん@お腹いっぱい。
11/07/04 20:01:40.63 iaw/LOoo0
>>925
TABキーを、何回か押して、エンターキーを、押すと、いいよ!

928:名無しさん@お腹いっぱい。
11/07/05 17:30:21.83 0iSOD3+10
UWSCで、

次回起動時刻○時○分を取得

UWSCのスケジュール機能に○時○分をセット

スタンバイ

という動作をしたいんですが、UWSC.INIファイルの「M1=」に時刻を書いても無理でした。
一度UWSCで読み直させる必要があるんですかね?
どなたか簡単に時間セットをする方法をご存知でしたら教えてください。

929:名無しさん@お腹いっぱい。
11/07/05 17:56:42.80 OsCcD/6l0
> 一度UWSCで読み直させる必要があるんですかね?

普通はそうじゃないですかね。
UWSCを再起動すればいいんじゃないですかね。

930:名無しさん@お腹いっぱい。
11/07/07 10:13:43.29 z0Ayilpv0
>>925

IElink(IE, IE.document.getElementsByTagName("a").item(4).innerText)

931:名無しさん@お腹いっぱい。
11/07/07 17:40:54.38 r3rIFyQd0
複数のウィンドウ(①と②とします)
にPostMessageAで同時にマウス操作はできませんか?

①のウィンドウのハンドルを入れた画面1.uws
②のウィンドウのハンドルを入れた画面2.uws

画面1.uwsと画面2.uwsの二つのファイルには
マウス操作の記述やifchkimgなどを記述しています。

画面1.uwsと画面2.uwsファイルを二つ起動すると、
最初に起動したウィンドウにしか正常動作せず、次に起動したウィンドウは
マウスクリックやifchkimgなどが正常に動作せず、困っています。

二つのウィンドウを同時にマウス操作を行う場合は、
PostMessageAではできないのでしょうか?


932:名無しさん@お腹いっぱい。
11/07/07 18:03:36.49 r3rIFyQd0
>>931
追記です。
すごくわかりにくいのでやりたいことを明記します。
ウィンドウ①・・・どこかに赤丸が表示される(場所、時間ランダム)
ウィンドウ②・・・どこかに赤丸が表示される(場所、時間ランダム)

このウィンドウ①とウィンドウ②に赤丸が出現したら、
その赤丸をクリックしたい場合はどうすれば良いか教えて下さい。

複数ウィンドウではなく単体ウィンドウ(たとえばウィンドウ①のみ)の
場合の.uwsファイルはできています。

試したこととしては、931に書いた通り、単体用のuwsファイルを二つ用意
してウィンドウ①とウィンドウ②のハンドルを画面1.uwsと画面2.uwsに
与えて同時に実行しました。
結果は、最初に起動したウィンドウしか正常動作がしませんでした。
ウィンドウ①起動 → ウィンドウ②起動の場合
ウィンドウ①は正常動作
ウィンドウ②は座標取得等がうまくいっていないのか赤丸クリックせず

933:名無しさん@お腹いっぱい。
11/07/07 19:00:30.76 pB1S5/Gi0
>>複数ウィンドウではなく単体ウィンドウ(たとえばウィンドウ①のみ)の場合の.uwsファイルはできています。
コレが出来たなら、どうしないとダメなんだかも解りそうなもんだけどなぁ…
なんか裏技ネタの釣り?

934:名無しさん@お腹いっぱい。
11/07/07 21:10:19.86 ryTFc5l/0
> 二つのウィンドウを同時にマウス操作を行う場合は、

ウィンドウが二つとか関係なく、同時に複数のキー入力は出来ないでしょ。

935:名無しさん@お腹いっぱい。
11/07/07 21:20:28.19 r3rIFyQd0
>>934
UWSCとWindowsAPIは、手動でできないことは自動では
できないってことですか?


936:名無しさん@お腹いっぱい。
11/07/07 22:39:59.80 ryTFc5l/0
>>935
PostMessageAの方はうまくいってもおかしくないけど
キー入力は操作性の問題で短時間の入力はアプリケーション側でキャンセルにされるでしょ。ゲームとか特に。

メッセージを処理するか無視するかはアプリケーションが判断できるんでね。
ちゃんと届いているならあとはアプリケーションの問題です。


非アクティブだから動かないとかそんなんでもなくて?


937:名無しさん@お腹いっぱい。
11/07/07 23:27:18.01 r3rIFyQd0
>>936
postmessageaのキー入力かマウス操作か何が無視されているか
調べてみます。

非アクティブだと届いたり届かなかったりするのかな?

938:名無しさん@お腹いっぱい。
11/07/09 11:33:05.22 /DWpg5Q30
exe化されたuwsファイルをソースにすることは出来ませんか?

939:名無しさん@お腹いっぱい。
11/07/09 12:08:59.56 nqq7Vzob0
パーサがノードに畳みこんだ後のバイトコードでも格納してんだろうから
ソースコードは残ってないんじゃね


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch