自動化ツールuwsc使いよ集まれ6at SOFTWARE
自動化ツールuwsc使いよ集まれ6 - 暇つぶし2ch876:名無しさん@お腹いっぱい。
11/06/16 18:33:49.37 VwsA5JPn0
RecIEで記録していって、うまくいっていたのですが、ある一箇所で動かなくなってしまいました。
その部分の書かれている物を抽出してみたら、下記のように書かれている部分でした。

<a onclick="javascript:loadpage('/job/start.jsp');" href="javascript:void(0)"><span>スタート</span></a>

これはjavascriptと呼ばれるものでしょうか?
こういうものをマウスクリック以外で自動で押下して先のページに進むにはどうしたらいいでしょうか?
ググって、見よう見まねで応用してみたのですが、うまく機能するサンプルがありませんでした。
どうかお願いしますm(_ _)m。


877:名無しさん@お腹いっぱい。
11/06/16 19:19:53.71 nEU2InOi0
>>876
なんかのセキュリティ制限に引っかかってるんじゃない?
OSとIE何よ

878:名無しさん@お腹いっぱい。
11/06/16 20:06:08.70 VwsA5JPn0
>>877
ありがとうございます。
IEは8.0.7600と書かれています。
OSはWindows7 Professional です。
お願いします。


879:名無しさん@お腹いっぱい。
11/06/16 20:35:29.24 K8S7LB6t0
>>876
onclickだから多分、そのボタンのIDを探して
IE.Document.all.BUTTONID.Click()
ってやったらクリックできるかも。

allでだめな場合はFormのIDか番号も必要かも。


880:名無しさん@お腹いっぱい。
11/06/17 10:12:51.09 HostJxq00
flash上でドラッグ&ドロップを行いたいのですが、
BTN(LEFT,DOWN,~
BTN(LEFT,UP,~
では出来ませんでした。
実現可能な方法がありましたら教えてください

881:880
11/06/17 10:22:59.10 HostJxq00
ドロップ側の受け取りイベントが上手く発生しなかっただけみたいです
失礼しました

882:名無しさん@お腹いっぱい。
11/06/17 10:30:21.47 RK2DsXbm0
>>879
ありがとうございます。
IDといいますと、html上でのIDでしょうか?
このアンカー自体にはIDはふられてませんが、2階層上のLOGINという名前のIDのふられたDIVの中にある唯一のアンカ-なので、特定は可能だと思います。

いちおう、
IE.Document.all.LOGIN.Click()
で走らせましたが、当該の行で、
COM:error 例外が発生しました
と表示されて終了してしまいました。

ボタン自体にIDがない場合の書式はどうすればいいのでしょうか?
どうかお願いしますm(_ _)m

883:名無しさん@お腹いっぱい。
11/06/17 11:50:51.82 BQ8MrwPV0
>>882
DIVのIDは直接扱えないっぽいですよね。
単独では使えますけど。

GetElementByID()でDIVのIDからオブジェクトを取得し、
そのオブジェクトを元に
getchildnodesやGetNextElementなどでたどっていって<a>タグのオブジェクトを取得できれば、
aタグ.click() が実行できるかも。

ちなみにUWSCの標準関数ではタグを指定してソースを取得は出来ますけど
オブジェクトを取らないとClickできないので。


UWSC的にはブラウザのアクセス方法はやめてClkItemが早いかも。
ClkItem( HNDToID(IE.HWND), "スタート", CLK_ACC, , 番号1から )


884:名無しさん@お腹いっぱい。
11/06/17 18:44:23.49 lxZwA0Pt0
>>875
AutoHotKeyでもダメでした
ドライバレベルでフックしないとだめっぽさそうです

885:名無しさん@お腹いっぱい。
11/06/19 22:59:16.65 eQCK3OW/0
PowerShellの実行が複数行行けるから、EVALで同様に出来るかなと思ったけど無理だった。
関数として記述すればいいんだけどね。
それかファイルに吐き出してExec()か。


他アプリの操縦は別としてだけど
UWSCに変わるスクリプト言語としてBooってのもいいかも。

文法は6割がPythonと共通で、.net またはLinuxのMonoのアプリケーションだけど、
ランタイム自体はUWSC並に小さくてエディタで書いていけるらしい。

実行形態は対話形式スクリプト、スクリプトファイルの実行、コンパイルしてexe単体実行ができる。


最初のうちはHTMLをローカルで実行できるHTAがいいかなと思ったけど
JScriptかVBScriptなんだよね。どっちもあんまり・・
もちろん汎用的ではあるんだけどUWSC覚えたらUWSCの範囲でやってしまう。


886:名無しさん@お腹いっぱい。
11/06/20 02:36:37.81 DEpdX2Q90
「らしい」とか「みたいだけど」とかって言うヤツは信用しちゃならねってばっちゃが言ってた。

887:名無しさん@お腹いっぱい。
11/06/20 02:48:08.49 UtQuLi1d0
新規で覚えるなら
.netが必要ならば.net環境で作るよ…

888:名無しさん@お腹いっぱい。
11/06/20 23:27:44.43 z7NNg7kU0
タスクトレイのVolumeを右クリック後の再生デバイスを選択するにはどうしたらいいですか?



889:名無しさん@お腹いっぱい。
11/06/21 00:12:23.80 oVTX5Fts0
>>888
オーディオプロパティの調整とか表示されてるメニュー?

基本的にトップレベルにないと消えるメニューだから (A)とかで指定されたキーを KBD()で送信でもいいけど、
めくら操作したくないならウィンドウクラス"#32768"でGetIDすればいい。

メニュー Class:"#32768"
ダイアログ Class:"#32770"
ツールチップ Class:"tooltips_class32"


890:名無しさん@お腹いっぱい。
11/06/21 00:37:51.47 S+8VIifV0
>>889
有り難う御座います!
書き込んでからKBD()で行ける事に気が付きました…
タイトルないので指定出来ないと思って居ましたが
クラス名#32768でもそうやって指定すれば行けるんですね
一つ勉強になりました。


891:名無しさん@お腹いっぱい。
11/06/21 13:04:45.37 u0jvZuWG0
>>883
どうもありがとうございました。
ClkItemで代用し、一応動きはするのですが、
バックグラウンドでの動作はできないようでした。
どうしてもクリックと同時に最前面に出てきてしまいます。

IDの指定と、オブジェクトの取得は、スキルが必要なようです。
もしそれについての解説サイトがあれば、お教えいただければ幸いです。


892:名無しさん@お腹いっぱい。
11/06/22 08:27:35.93 wz2XRv7P0
1ステップ1ステップ小出しにしてねーで
そもそも何をやろうとしてんだよ。 糞が。

893:名無しさん@お腹いっぱい。
11/06/22 09:44:40.57 o+QMX4X/0
そんな事書いたら、オンラインゲーム必死だな( ´,_ゝ`)プッって笑われるだろーが!!

894:名無しさん@お腹いっぱい。
11/06/22 10:29:12.69 wz2XRv7P0
あー、そっかーーーーー。
そうだったんだーーー
そっかーーーーー ごーめーんーーーー >>891

895:名無しさん@お腹いっぱい。
11/06/22 10:40:02.94 Qo85tCH30
オンラインゲームでRMTして儲けたいからマクロ書いてください
ってこと?

896:名無しさん@お腹いっぱい。
11/06/25 15:22:20.33 e2nGd7v50
マウスやキーボード入力が一定時間なかったことを確認する方法はないですか?
スクリプト起動直後に今アイドリング状態なのか判定したい


897:名無しさん@お腹いっぱい。
11/06/25 16:22:27.74 dircKt8/0
>>896
getkeystate

898:名無しさん@お腹いっぱい。
11/06/28 04:11:54.59 kXJni/fc0
CHKIMG関数で質問です

検索範囲未指定時は画面全体が対象との認識であってますか?
また最小化時にチェックすることは可能ですか?

899:名無しさん@お腹いっぱい。
11/06/28 07:51:27.17 oMsiC+dA0
>>898に質問です

どうして試さないんですか?

900:名無しさん@お腹いっぱい。
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