【マクロ】 UWSC Part4 【シェアウェア化】at SOFTWARE
【マクロ】 UWSC Part4 【シェアウェア化】 - 暇つぶし2ch1:ミスターユーダブリューエスシー
08/01/14 14:47:14 VrXr82Zu0
公式サイト
URLリンク(www.uwsc.info)

1 スレリンク(software板)
2 スレリンク(software板)
3 スレリンク(software板)

「UWSC」を含む日記 - はてなダイアリー
URLリンク(d.hatena.ne.jp)
UWSCの落し物部屋
URLリンク(siromasa.xxxxxxxx.jp)
UWSCの誘惑
URLリンク(ochoja.web.fc2.com)

2:名無しさん@お腹いっぱい。
08/01/15 00:48:48 6WQevle80
キタ━━━m9( ゚∀゚)━━━!!

3:名無しさん@お腹いっぱい。
08/01/15 11:48:23 qSysXr2n0
同様の機能を持ったフリーソフト

AutoIt
URLリンク(www.autoitscript.com)

WindowController
URLリンク(chi.usamimi.info)<)
スレリンク(software板)


4:名無しさん@お腹いっぱい。
08/01/15 14:31:49 YTAr/5jI0
こんにちは、教えて君ですみません<(_ _)>
UWSCで作られたe.xeファイルのUWSCスクリプトのソースを見る方法って
ありますか?知ってらっしゃる方教えてください。

5:名無しさん@お腹いっぱい。
08/01/16 10:02:29 KDV0+Mn+0
先にこっち使おうよ・・・

スレリンク(software板)


6:名無しさん@お腹いっぱい。
08/01/20 07:29:39 mKnsvmOl0
荒らしに親身になって答えるのは親切でもなんでもない。
その荒らしを居つかせ、更なる同類の荒らしを呼び込む。
そのことに気付いてください。

7:名無しさん@お腹いっぱい。
08/01/20 15:36:22 HGvEXPwB0
新スレキタ━━━m9( ゚∀゚)━━━!!

8:名無しさん@お腹いっぱい。
08/01/20 17:31:03 /h9BPzq00
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<meta http-equiv="Content-Language" content="ja">
<title>IEGetSrcのテスト</title>
</head>
<body>
<form>
<p> タ グ <input type="checkbox" name="C1" disabled="disabled"><input type="text" name="T1" size="82" onclick="this.select()" value="body"> 
番号<input type="text" name="TNUM" size="7" onclick="this.select()" value="1"><br>

前方文字<input type="checkbox" ID="C2" name="C2" disabled="disabled"><input type="text" name="T2" size="53" onclick="this.select()"> 
後方文字<input type="text" name="T3" size="57" onclick="this.select()">
</p>
<p><input type="button" value="ソース取得" name="B1" onClick="C1.checked=true"> 
<input type="button" value="切り出し" name="B1" onClick="C2.checked=true">
<input type="reset" value="リセット" name="B2" onClick="C1.checked=false; C2.checked=false; T1.value=''; T2.value=''; T3.value=''; S1.value=''">
<input type="button" value="終了" name="B3" onClick="CEND.checked=true">
<input type="checkbox" ID="CEND" name="CEND" disabled="disabled" ></p>
<p><textarea name="S1" rows="13" cols="101" ></textarea></p>
</form>
</body>
</html>


9:名無しさん@お腹いっぱい。
08/01/20 17:43:05 /h9BPzq00
HTMLのフォームを利用するのを書いたけどその後投稿できない

10:名無しさん@お腹いっぱい。
08/01/20 17:46:30 /h9BPzq00
Form = CreateOLEObj("InternetExplorer.Application")
Form.visible = True
Form.navigate(GET_CUR_DIR+"/IEGetSourceTest.htm")
REPEAT; sleep(0.1); UNTIL !Form.busy AND Form.readystate = 4
FormID = HNDToID(Form.HWND)

IE = CreateOLEObj("InternetExplorer.Application")
IE.visible = True
IE.navigate("about:blank")
ID = HNDToID(IE.HWND)

// Formの監視
While 1
Ifb Form.document.forms[0].C1.checked Then
Form.document.forms[0].S1.value = IEGetSrc( IE, Form.document.forms[0].T1.value, Val(Form.document.forms[0].TNUM.value) )
Form.document.forms[0].C1.checked = false
Endif
Ifb Form.document.forms[0].CEND.checked Then
Form.Quit
IE.Quit
break
Endif
sleep(0.1)
Wend


11:名無しさん@お腹いっぱい。
08/01/20 17:55:07 /h9BPzq00
>>8をIEGetSourceTest.htmって名前で、UWSCのところに保存して、
>>10をUWSファイルとして保存。

blankを表示してる方の窓でソース取得したいページを表示して
タグ名指定してクリックすると、ソースが取得できる。

動的に挿入されるコードはIEの表示-ソースじゃ取れないんで便利かも。
オブジェクト無効のチェックまでした方がよかったけどどうすればいいんだか。
BetweenStrの行があると投稿できなかったんで削除してます。

出来損ないのHTMLだけど作るのに1日かかった。


12:名無しさん@お腹いっぱい。
08/01/21 11:44:51 U5tw6KbY0
>>8のHTMLをアップしました。
ローカルで開くとセキュリティの警告で引っかかるのが、Webサイトから開けば出なくなります。
もちろん普通に動作します。
UWSファイルのアドレスを↓に書き換えて使ってください。

URLリンク(scripts.web.fc2.com)


13:名無しさん@お腹いっぱい。
08/01/21 12:46:25 6v7U5uf70
ここはお前の日記帳じゃねーぞ

14:名無しさん@お腹いっぱい。
08/01/21 13:07:22 U5tw6KbY0
>>13
ああ、悪い。
しかし、俺が悪いんじゃないぞ。
ほかの人が書き込まないのが悪いんだ。
なんか俺が占有してるみたいに見えるのはそのせいだ。
・・・
まさか俺以外の誰も使ってないなんて事はないよな?


15:名無しさん@お腹いっぱい。
08/01/21 13:11:26 U5tw6KbY0
>>12のHTMLをForm代わりに使えないことはないけど
F5で再表示しただけでUWSCでエラーになる。
IEコンポーネント使わないと操作はできないとしても、
別アプリ使ったりしてほかのページに飛べないようにしないとまずいな。
.Navigaterをロックして更新できなくできればいいんだが。


16:名無しさん@お腹いっぱい。
08/01/21 17:52:23 PRrhEx8A0
WHILE TRUE
IFB GETKEYSTATE(VK_NUMPAD1) THEN
REPEAT
KBD(VK_2,DOWN,10)
KBD(VK_3,DOWN,10)
UNTIL GETKEYSTATE(VK_3)
SLEEP(0.1)
KBD(VK_4,DOWN,10)
ENDIF
WEND

のようなスクリプトがあるとして、Num1も何も押していないのに
再生した瞬間4キーが勝手に連打されるのですがドコに原因があるでしょうか?

17:名無しさん@お腹いっぱい。
08/01/21 17:55:08 U5tw6KbY0
ローカルのHTMLを開いて警告が出るのはIEが出してるのであってIEコンポーネントじゃないんだよな。
つまりIEコンポーネントを使うアプリケーションが警告を出さなければいい話なんだけど
CreateObjectとかするとアプリケーションはIEが起動するんだよな。
専用アプリを先に起動すれば実現できるけどやり方がスマートじゃない・・・
けどIE使うより普通のFormっぽいから出来れば使いたい。
あんまりがんばってもUWSCを使う意味がなくなりそうだから・・
けどスクリプトのForm・・・自分でWindowsAPIを呼べばいいのかな・・・


>>16
KBDが無条件に実行されて、自分で送信したキー情報をGETKEYSTATEで拾ってるんじゃね?


18:名無しさん@お腹いっぱい。
08/01/21 18:10:19 U5tw6KbY0
フォームをHTMLで作るのはプログラム組まなくても済むけど、
動作がわずかならActiveBasicで画面作れば済む。
有償版UWSCのフォームがどんなもんか知らないけど大差ないんじゃないかな。
まあスクリプトのデバッガはやっぱあればあるに越したことはないけど。
HTML版のフォームはWeb上のをそのまま開いて使い、
実行ファイル版はUWSと同じ場所に保存し、スクリプトから自動で起動します。

やっぱHTML版は使い勝手が悪い。
まあ僕が見栄えをコントロールしきらんだけかもしれんが。

と言うことで、UWSCを無料のままでフォームを使う場合はActiveBasicが手軽でお勧め。
けど実行ファイル作るんならチェックボックスじゃなくてトグルボタンくらい使えんと見た目悪いよな・・・

HTML版
フォーム:URLリンク(scripts.web.fc2.com)
スクリプト:URLリンク(scripts.web.fc2.com)

実行ファイル版
フォーム:URLリンク(scripts.web.fc2.com)
スクリプト:URLリンク(scripts.web.fc2.com)


19:名無しさん@お腹いっぱい。
08/01/21 19:18:10 KzLKIOdZO
既にIEで開いてるページに命令するのわかりません
どこか適当なサイトでF5クリックするさんぷる
お願いします
サンプルをいろいろと見てきましたがないみたいです
お願いします

20:名無しさん@お腹いっぱい。
08/01/21 19:40:45 U5tw6KbY0
>>19
while 1
KBD(VK_F5, CLICK, 1000)
wend

IEを手前に持ってくるのは、開始でsleep(5)とかで待たせてる間に自分でクリックするか、
IEオブジェクトを探してアクティブにする。


21:名無しさん@お腹いっぱい。
08/01/22 12:38:35 htPUwuSa0
「ほかの人が書き込まないのが悪いんだ。」

とか、ほざくガキが出てくる始末

22:名無しさん@お腹いっぱい。
08/01/22 12:45:24 UGnsuQEl0
>>21
まだ書き込んでない人いるのにその人たちを差し置いてなに書き込んでんだよと
レス番900過ぎるまで引っ込んでろと。

23:名無しさん@お腹いっぱい。
08/01/22 13:14:26 UGnsuQEl0
スクリプトに一時停止・終了ボタンをつけるサンプル。
実行ファイルは使いまわしでいろいろ使えると思います。

URLリンク(scripts.web.fc2.com)
URLリンク(scripts.web.fc2.com)


24:名無しさん@お腹いっぱい。
08/01/22 15:07:14 bb0NpIu80
>>23


25:名無しさん@お腹いっぱい。
08/01/22 16:28:16 YY7h1Q/JO
一時停止は必要だな
>>23

でも俺が試したら止まんなかったよ
何回も試したけどね
先にそれを起動させておくの?
それともUWSCが先に起動かね?

それと上のほうでクリック1000てなんだよ
ガキのいたずら小僧か
無茶苦茶するなよ
嵐認定
出入り禁止ね

26:名無しさん@お腹いっぱい。
08/01/22 16:31:00 YY7h1Q/JO
出入り禁止はひどいな
>>20は解答禁止ね

27:名無しさん@お腹いっぱい。
08/01/22 17:24:05 UGnsuQEl0
>>25
>クリック1000てなんだよ

クリック1回して1秒休憩。
まあ、CPU占有しちゃうから実際にはKBDでは時間は指定しない。

つまり↓になる
while 1
KBD(VK_F5)
sleep(1000)
wend

>でも俺が試したら止まんなかったよ

スクリプトファイル見れば分かると思うけど、UWSファイルの中で実行ファイルを呼び出してるから。
単独で実行ファイルを起動しても、ボタンがあるだけでなにもしないよ。
UWSC_Control.exeとControlSample.UWSは同じ場所に保存しないと呼び出せないよ。

WindowsXPではちゃんと動いたけどほかのだともしかしたら動作おかしいかもしれない。
だけどCreateWindow程度の基本的なAPIしか使ってないのに動かなかったらおかしいよ。


28:名無しさん@お腹いっぱい。
08/01/22 18:53:51 M+28Nez10
メモ帳に「テスト」って書き続けて止まんないぞ
結局「Alt」「F2」で強制終了
他のUWSファイルで操作していて一時停止させる場合には
このソースを書き足すって事なんだな
しかしボタンの押す順番間違えたら
永遠に「テスト」って書き続けてる・・・

29:名無しさん@お腹いっぱい。
08/01/22 19:46:16 UGnsuQEl0
>>28
>メモ帳に「テスト」って書き続けて止まんないぞ

それを止めるための停止ボタンなんですが。

ただ、停止したり終了したりはスクリプトで記述することで実現してるので、
それが書かれてないスクリプトはとまりませんね。

画面が表示されてないUWSC本体をコントロールすれば確実に止められるかもしれないけど・・・


>しかしボタンの押す順番間違えたら
>永遠に「テスト」って書き続けてる・・・

もしかして、一時停止中に終了を押しても終了しないとか?
一時停止を解除すれば終了するけど、
それがいやなら一時停止ループの脱出条件に、終了ボタンを押したときを入れればいいよ。
そう書いておくべきだったかな?


30:名無しさん@お腹いっぱい。
08/01/23 00:15:54 vayeXHsD0
IE7
XP
どうやったらUESCでHTMLファイル見れるんだ
普通にIE7からは見れてる
RECIEでHTML内のボタンクリックからはじめたかったのになー
RECIEはHTML読めないんかね

31:名無しさん@お腹いっぱい。
08/01/23 00:24:30 vayeXHsD0
30だけど自己解決した^^

32:名無しさん@お腹いっぱい。
08/01/23 12:34:58 vayeXHsD0
IE7で既に開いてるページをUWSCで操作したいんだ
アクティブウィンドーの取得だけでは動かないんか?
どこかサンプルソースないですか?

具体的には非同期通信するためのスクリプトが記載してあるHTMLからIE7を開く
その開いてあるページを操作したい

どなたかサンプルお願いします

33:名無しさん@お腹いっぱい。
08/01/23 12:46:13 iN7rdS2C0
>>32
IE = GetActiveOLEObj("InternetExplorer.Application", "")


34:名無しさん@お腹いっぱい。
08/01/23 12:56:29 vayeXHsD0
>>33
おお
早速のレスありがとう
今からテストしてみる
いつも悪いね
あなたもし関西に来れるなら一度メシ食いに行きますか
私は今、落ち目で大変なんだけど
ラーメンとカレーは食べ歩いたので美味しいとこ知ってるよ

>IE = GetActiveOLEObj("InternetExplorer.Application", "")
                                    ↑この最後の、””何かね?

35:名無しさん@お腹いっぱい。
08/01/23 13:21:26 vayeXHsD0
>>33
出来た!ありがとうおおおお!

最後の””付けたままでも動いたよ
こんな感じ

IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE = GetActiveOLEObj("InternetExplorer.Application", "")

このあとラジオボタンやセレクトメニューを選んで次のページへ飛んで
そこでも自動操作できた
マジでありがと

なぜか1箇所だけフォーカスあわせてたのがマウスであわせないとダメになってたけど
まあいいや合格!
そのフォーカスの後にこの前教えてもらった「Ctrl」ボタン押すまでスリープ0.01ループさせてたんだけど
あれが要因かな?
でもそのフォーカスにマウスであわせてテキスト入力後に「Ctrl」押したら
すぐに「次のページへ」を自動で押してくれた
昨日まで自分で色々やってたんだけど
「関数IEが指定されていません」とか「○○変数が・・・」まあエラーばっかりだったんだ
聞いてよかったよ
ありがとう
カレーライスでよかったらおごるよ
JR環状線の福島駅近くにある上等カレーって食券機でお金払うお店なんだけど
ここが美味しいよ!



36:名無しさん@お腹いっぱい。
08/01/23 13:57:18 iN7rdS2C0
>>35
そのコードだめです。
まず推奨コードから

>>10のがそれですが、余計なのもあるんで。
IE = CreateOLEObj("InternetExplorer.Application") // IEの起動
IE.visible = True // 表示?
IE.navigate("http:/www.yahoo.co.jp") // アドレス入力
REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4 // ページ表示完了待ち
ID = HNDToID(IE.HWND) // コントロールする名前がなかったりする場合に利用
input("") // どうしても入力待ちしたい場合。

※IEのソースを覗いたりすればIEオブジェクトだけでいろいろできるけど、
見た目だけで操作可能なIDは結構使える。


んで、>>23のを使うなら、一番最初に実行ファイルを起動し、
上記inputの位置に停止コードを挿入。
けどマウス位置を合わせないといけないなら>>23のとかinputは使えないね。


ちなみに僕は九州だしお金まったくないんで無理。
就職のために引っ越すつもりもないし、かといって地元企業には近寄りたくもないし。
ネットでの出会いには懲りてるからOFF会とかも出ませんから。
江戸川区でなんか売春サイトが摘発されてるけど、あそこに住んでたころは毎日小中学生にラブコールしてた。


37:名無しさん@お腹いっぱい。
08/01/23 14:00:52 iN7rdS2C0
>>35
-- だめな理由 --
1.CreateしたIEは放置して別のをGetしてる。タイミング的に同一のを拾ってくるかもしれないが意味がない。
2.起動直後のを拾ってきているから操作できない状態にある。
まあその後のコードは省略されてるだけでちゃんと待ってるかもしれないけど。

マウスをあわせないといけない場所ってどんなですか?
Webページは、ウィンドウを縮めるとレイアウトが変わるのでマウス座標では問題ありますよ。
よかったらアドレスとクリックしたい場所を教えてください。


38:名無しさん@お腹いっぱい。
08/01/23 19:07:30 vayeXHsD0
>>36
よくわからんけど最初の2行を入れないとエラーになるんよ
既に開いてるページなので
>IE.navigate("http:/www.yahoo.co.jp") // アドレス入力
>REPEAT; sleep(0.1); UNTIL !IE.busy AND IE.readystate = 4 // ページ表示完了待ち
これは入れる必要ないと思うので書いていない
>ID = HNDToID(IE.HWND) // コントロールする名前がなかったりする場合に利用
>input("") // どうしても入力待ちしたい場合。
これは勉強になった!ありがとう
>>36はUWSCの解説本書いてみたらどうだ
UWSCのヘルプよりかなり理解できるぞUWSCの解説本って小林シンヤ氏のだけだろ
もうちょっと命令ひとつひとつを説明してくれたら嬉しい命令の解説に命令を引用してるんだからわかんないよ
本出したら、俺絶対に買うよ
マウスを合わせる場所は画像認証の入力だよ
IDとPASSの後に画像認証入力して次の画面へいくボタンを押すんだ
今はこんな感じでやってる(初めからUWSCで開いたIE画面ならフォーカスが合わせられたまま待機してるのにね

Assert(IESetData(IE,"123456789","loginId"),12) // ID入力
Assert(IESetData(IE,"abcdefghijk","passWd"),13) // PASSWORD入力
IE.document.forms(0).elements(5).focus()//画像認証にフォーカスあてる
REPEAT; sleep(0.1); UNTIL GetkeyState(VK_CTRL)//「Ctrl」押すまで待機
Sleep(0.1)
Assert(IESetData(IE,True,"","alt=ログイン"),19) // IMAGEログインボタン押す
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4

>>23は使うかどうかわかんない実際0.1秒を争うようなタイミングなのでマウスでボタンを押すより
目の前のキーボードで決められたボタン押すほうがわずかでも速いような希ガス
>>36
そうだと思ったよ多重ログインの警告画面が出るようになった処理するようにしておいたけど・・・そういうことか。なるほど。ありがと
もし大阪に来ることがあれば必ず声かけてみてくれ。んじゃ

39:名無しさん@お腹いっぱい。
08/01/23 19:51:05 vayeXHsD0
>>36
すまん
最初の2行なしでいけた
理由もわかった
何かと便利なので普段使うブラウザがFirefoxで
そのページを見るときだけアドオンツール使ってIE7にしてた
俺のエラーの理由は多分そうだわ

今、最初からIE7で起動して開いたページに対してやってみたら
>IE = CreateOLEObj("InternetExplorer.Application")
>IE.Visible = True
↑これなしでいけた

ちなみにFirefoxからIE7へ切り替えてそのページを開きながらテストしてみたら
上記の1行目を抜いてやってみたら

>Uスクリプト変数:IEが定義されていません
>5行目:IE.Visible = True
とエラーが出てた

でもやっぱり画像認証のフォーカスはされていなかったので
今もマウスで1クリックしてから手動でテキスト入力した

input試して見るわ
ありがと

40:名無しさん@お腹いっぱい。
08/01/23 21:29:17 vayeXHsD0
何回もすまん

IE.document.forms(0).elements(5).focus()//画像認証

input("")
に変更するにはどうすればいいですか?
取り合えずinputはまだ使わずにfocus()に0から順番に1.2.3て入れてみようか?
innputでの待機がわからないよ^^;
いつも悪いね

41:名無しさん@お腹いっぱい。
08/01/23 22:11:39 iN7rdS2C0
>>40
input("")は入力ダイアログが出るだけで、IEの操作はしませんが。

画像?にフォーカスするのがもし画像にOKボタンみたいな機能が割り当てられてるんなら、
フォームにSUBMITを送るだけでおkだったりしますよ。


42:名無しさん@お腹いっぱい。
08/01/23 22:30:35 vayeXHsD0
>>41
おお
いつも悪いなあ
ありがとう
IE.document.forms(0).elements(5).focus()//今これSUBMIT

IE.document.forms(SUBMIT).elements(5).focus()
IE.document.forms(0).elements(SUBMIT).focus()
IE.document.forms(0).elements(5).focus(SUBMIT)
こういう感じでテストしてみるわ
ちょっと風呂は入ってくるね
んじゃ

43:名無しさん@お腹いっぱい。
08/01/23 22:56:28 iN7rdS2C0
>>42
document.forms[0].submit()
です。

elementを特定しない分楽です。


44:名無しさん@お腹いっぱい。
08/01/24 01:33:06 /j+XTb4D0
疲れた~
今日はテスト終わり
結局フォーカス自動でフォーカスを合わせられなかった
右栗禁止なのでそのへんもあるのかも
マウスでどこかを1回でもクリックしたら
TABであわせられるけど
マウスクリックしないとTABボタン動かない
つまり自動ではあわせられないようなんだ

サブミットではないよ
画像の横にテキスト入力のボックスがあるから
タグネーム=キャプチャインプットになってた
とにかく疲れたわ
おやすみ~

45:名無しさん@お腹いっぱい。
08/01/25 17:20:59 GcGkQc0q0
ひょっとしてIESetDataってhttpsのページには動作しないの?

46:名無しさん@お腹いっぱい。
08/01/25 18:07:29 y4xJvkBL0
知らないけどSENDSTRなら関係なく送れる

47:名無しさん@お腹いっぱい。
08/01/25 23:27:42 683OcADH0
質問です。eTilTranという画像傾き補正ソフト用の自動読み込み→補正→保存のスクリプトを書いているのですが、ファイル数がすくない場合は問題なく動くのですが、
ファイル数が多いと読み込んでる間にUWSC上でCLICKITEM等の処理が終わってしまい、適切に処理できなくて困ってます。SLEEP関数以外に読み込みが終わるまで待機し続ける
ような命令・関数があったら教えてください。

48:名無しさん@お腹いっぱい。
08/01/25 23:44:46 QZuQLGj/0
そんな便利な関数はないよ。
「スキャンしています」「保存しています」とかいう作業中のダイアログが出るなら、getidでその作業中ダイアログが出ている間待機して、消えたら次の処理。
あるいは処理終了時に「変換が終了しました」というダイアログが出るなら、getidでそのダイアログが出るま待機。
ウインドウじゃなくstatic_txtのメッセージやウインドウのタイトルで作業中かどうかを判断する場合もある
つまり、各アプリによって、待機のタイミングを計る方法はそれぞれ違う。

49:名無しさん@お腹いっぱい。
08/01/25 23:55:46 683OcADH0
>48
なるほど、やっぱそれしかないですか。読み込み完了時にダイアログもウインドウのタイトルも変わらないんでタイミング計りようがないんですけど、
進捗状況を伝えるバーがビーーーと伸びていくんですが、これはGetITEMとかで取得できる情報なんでしょうか?

50:名無しさん@お腹いっぱい。
08/01/26 07:17:27 UAcIKHXR0
ボタンの状態みてあげるよろし

ID=GETID("eTilTran")
STATUS=-1
WHILE STATUS=-1
STATUS=CHKBTN(ID,"領域設定")
WEND


51:名無しさん@お腹いっぱい。
08/01/26 19:16:29 iQgREZVD0
>>39だけど
今更なんだけどね
アクティブウィンド取得に
>IE = CreateOLEObj("InternetExplorer.Application")
>IE.Visible = True
この2行がいる時となくても次へ進む原因がわかったので報告w

選ぶ商品によってはまるでカレンダーのような画像をクリックしては次へ
って感じなんだけど
IE7はタブ方式なので先に開けたページをきちんと閉じていないとおかしくなるみたい
IE6に戻そうとしたら「古いバージョンをインストールできませんって」戻せないよ^^;

先の2行をつけてスタートしたときは
一時停止でフォーカスがあわないままなんだ
もうIE7が悪いんだってことにしておこうw
IE6に戻すためのツールがあるらしいのでそれ使ってIE6に戻すわ

おー朝からメシ食わずにテストしてたから腹減った~
朝飯兼晩飯くってくるわ
んじゃ

52:名無しさん@お腹いっぱい。
08/01/26 19:58:31 a90vN8qC0
>>50
ありがとうございます。うまくいきました。”領域設定”とか書かれているのでわざわざeTilTranいれてもらったんだと思いますが、それをみこんでもうひとつ質問があります。
eTilTraで画像を読み込むと左側に画像のリストが表示され、これはITM_LSTVEWで取得できる情報だなと思い
URLリンク(blogs.yahoo.co.jp)
↑のスクリプト使って情報を取得しようと思ったんですが固まって取得できません。もし取得できるなら配列を使って挿絵の画像名を取得してDOSコマンドで別のフォルダに
そのファイルをコピーしたりできると思っているんですが、どうやったらアイテム情報を取得できるでしょうか?よろしくお願いします。

53:50
08/01/26 20:50:09 UAcIKHXR0
>>52
ITM_LSTVEWじゃ無理そうだね
別の方法で取得できるのかどうか、私にはわかりません


54:名無しさん@お腹いっぱい。
08/01/26 21:38:44 a90vN8qC0
>>53
そっかーやっぱITM_LSTVEWじゃだめなんですねー。とにもかくにもお手間おかけしました。ありがとうございました。

55:名無しさん@お腹いっぱい。
08/01/27 07:55:27 oz1/lB8h0
結局、寝ないでIE6をインストールしようと頑張ったけど
レジストリーまでいらってもダメだった
んでIE7を再インコ
IE7のオプションをよく見てたら「タブブラウザを使わない」ってチェックがあった
やったー
タブブラウザのお陰でこんなに酷い目にあってるんだ
これでやっと開放されるwww
さてテストして寝ようか・・・・・・
ん!?
画面上は普通のブラウザに見えるけど・・
まさか!
やっあぱりそうだ ガーーーン!!
なんと1枚目の画面がアクティブになっている画面にすっかり隠れていた
なんなんだよ!!
タブじゃなくても画面を2つ開けていたら「多重ログイン」扱いされてはじかれちゃうんだピョーン(;´д⊂ヽ

アクティブウィンドウ以外のウィンドウは全てを閉じる命令ありますか?
それを先に命令して最後に残ったアクティブ画面を操作したい

ウィンドウの名前はそのつど変わるので
アクティブウィンドウ以外をせべてウィンドウは閉じるって命令があればなー
はー昨日からなにやってんだか
疲れたおやすみー

56:名無しさん@お腹いっぱい。
08/01/27 11:51:38 A03LsX+d0
>>55
多重ログインは窓閉じても回避できないよ。
ログインしたらその窓でやらないと。
つまりログインした窓に対して確実に操作する必要がある。

もし窓が隠れてしまうなら、ACWでActiveにしないと。

ActiveWindow以外を閉じるには、
ActiveWindowを取得し、
全てのWindowを取得し、
全てのWindowからActiveWindowを除外した全てを閉じる。
↓がコード   >>56

IE = GETACTIVEOLEOBJ( "InternetExplorer.Application" )
ID = HNDToID(IE.HWND)
窓数 = GETALLWIN()
for i = 0 to 窓数 - 1
ifb "InternetExplorer.Application" = STATUS( ID, ST_CLASS ) Then
ifb ID <> STATUS(ALL_WIN_ID[i], ST_PROCESS) Then
CtrlWin(STATUS(ALL_WIN_ID[i], ST_PROCESS), CLOSE)
endif
endif
next
// ここで、最初に取得したアクティブウィンドウのオブジェクト(IE)と
// そのウィンドウID(ID)だけが残っている。


57:名無しさん@お腹いっぱい。
08/01/27 11:56:26 A03LsX+d0
>>52-54
ListViewとListBoxは見た目同じようで中身はダイブ違うけど勘違いしてない?


58:名無しさん@お腹いっぱい。
08/01/27 14:54:45 oz1/lB8h0
>>56おはよ^^
>>55だよん
早速サンプルありがとう。そのまま使わせて貰ったけど窓はとじなかったよ

んで前から出てたエラーが出た(アクティブ画面のボタンを押せないエラー)
全部窓をとじないでUWSCもそのまま(UWSを読み込ませたまま置いておいて)
手動でアクティブじゃないほうの窓を閉じて
再びUWSCの読み込ませていた命令(>>56の命令を最初に書いてあるUWSファイル)をそのまま再スタートさせたら上手くいけた

やっぱりアクティブ以外の窓は全部とじないとUWSCではエラーになるみたい
ちなみに
改めてログインしなおして手動で進めていき
UWSCではエラーになって押せないボタンを手動で押して進めてみると
先に開いていた窓はそのまま閉めなくてもいけた
手動だと進めるってことはサイト側の問題ではないね

もしかしたらUWSCは先に開いている状態の窓をアクティブと認識しているのかな?
でも実際には2枚目に開いた画面(UWSCで操作したい画面)がアクィブなんだ
なぜ2枚目がアクティブだと私が言い切れるのかといえばですね
2枚目が開いてから何もしない状態でもマウスのスクロールが効いていた

UWSCがアクティブだと認識してる窓と実際アクティブな窓とは違うと想定すれば
今回のようなエラーになると思う
だとすればUWSCへの命令は「アクティブウィンドウは閉じて次のウィンドウへ移動しなさい」って命令しなければいけない
しかし何度も言うようにそのサイトでは不正対策のために窓の名前は毎回違うんだよね
ん~悩むなあ・・・そのサイトのアドレスを教えれば状況が理解してもらえるんだろうけど
ここは色んな人が見るのでそれはちょっとこまる・・・^^;

2枚の画面が開いているとき・・・UWSCから見てのActiveWindowをCLOSEすると
UWSCは残りの画面は窓名がわからなくてもアクィブウィンドウと認識してくれるんだろうか?
ちょっと知事選の投票行って所用を済ませてまたテストしてみるわ。ありがとー


59:名無しさん@お腹いっぱい。
08/01/27 15:31:30 A03LsX+d0
>>56の> ifb "InternetExplorer.Application" = STATUS( ID, ST_CLASS ) Then
これは間違いだったかも
"InternetExplorer.Application"じゃなくて"IEFrame"だよね

↓は以前作ったやつだけど、自分でVid-DLを新しく開きまくりだから
あらかじめ全て閉じる処理した。
タイトルが固定だからやりやすかったけど・・・
IEオブジェクトには.navigateってのがあるから、開いてるページをそれで取得できるならタイトルは分からなくてもなんとかなるでしょ。

// 全てのIEを閉じる
ID = GetID("Vid-DL", "IEFrame", 0.1)
While -1 <> ID
CtrlWin(ID, CLOSE)
ID = GetID("Vid-DL", "IEFrame", 0.1)
Wend
sleep(1)

// IEを起動
ID = Exec("C:\Program Files\Internet Explorer\IEXPLORE.EXE " + url)
sleep(3)
IE = GetActiveOLEObj("InternetExplorer.Application", "Vid-DL" )


60:名無しさん@お腹いっぱい。
08/01/27 19:59:14 oz1/lB8h0
>>59
おお貴重な情報だありがとう
今、テストしていてわかったんだけど
そのサイトのページってIEに対して何か制限をかけているみたいなんだ

右栗禁止、「F5」で更新できないとかは前からだったんだけど
ブラウザをFirefoxに変えてテストしてみたら
右栗OK、F5Ok、「Ctrl」+「W」で私の言うアクティブウィンドーが閉じた
(IEではどちらの窓も閉じない)
多分どちらの窓もUWSC自身では取得していない
手動で適当なところをマウスクリックしたらUWSCが操作可能になる

UWSCがFirefoxにも対応していたらなー問題解決なのに・・・
IEのオプションで右栗突破すればどうにかなりそうな希ガス
他にもやらなければいけないこといぱーい
ふう疲れるIEの右栗禁止を突破するのが鍵棚
UWSCは多分どちらの窓も取得していないのでボタンクリックの命令でエラーになるような

IEのオプション研究からやり直しだわw
ありがとう
いつも悪いね^^

61:名無しさん@お腹いっぱい。
08/01/27 20:02:06 oz1/lB8h0
あーぁIE7にバージョンアップしたのが一生の不覚だよ
OSのインスコからやり直すくらいしないと
もうIE6に戻せないしー
まったく甘い言葉にご用心
IE6がいいよホント

62:名無しさん@お腹いっぱい。
08/01/28 02:21:08 f2jwJo210
WHILEやREPEATを使ったループ中に終了条件を満たさずとも100秒経過したら
強制的に次の処理へ移行、とするにはどうしたらいいでしょうか?

63:名無しさん@お腹いっぱい。
08/01/28 02:43:16 rGtBli6R0
100秒って時間を合わせるのは難しいけど、
for文で1秒スリープ×100回なら自動的に100秒以上で抜けるから、
もう一つの終了条件をIf文で追加ですね。

1回あたりの待ち時間が1秒くらいならほぼ期待通りの時間だけど、
0.01秒で指定してもだいたい0.1秒くらいはかかるしね。

時間を正確にするならGetTime使うかな。
けど、何かしたらそれだけ重くなるし、ループにはSleep必須。

StartTime = GetTime()
While 終了条件
If StartTime + 100 < GetTime() Then Break

// 処理 //

sleep(0.1)
Wend

条件を同時に判断してもいいけど、条件の指定を間違ったとき、
andの計算の優先順位が間違ってるとおかしくなる。

While 終了条件1 and (GetTime() < StartTime+100)

64:名無しさん@お腹いっぱい。
08/01/28 03:20:39 f2jwJo210
>>63
詳しく教えてくださってありがとうございます、助かりました。

65:名無しさん@お腹いっぱい。
08/01/29 03:09:04 00BHvaXU0
自分で>>56使って見たけどかなり間違ってるね
>ifb "InternetExplorer.Application" = STATUS( ID, ST_CLASS ) Then
これは
ifb "IEFrame" = STATUS( ALL_WIN_ID[i], ST_CLASS ) Then
だし

GETALLWIN()で取得した全IEの表示ページを
IE.document.URLみたいに簡単に取得したかったんだけどな。
GetStrでも取れるけどIEオブジェクトから直接取りたいけどオブジェクトがIDからじゃ取得できないんだよな・・・


66:名無しさん@お腹いっぱい。
08/01/30 00:15:15 aG+PMwK+0
URLリンク(scripts.web.fc2.com)

URLリンク(www.uploda.org)
URLリンク(www.vipper.net)
上記アップローダーで、サムネイルから画像を選んだ後、
時間帯によっては広告ページが表示されるのがめんどいので自動クリックする。

終了のために、終了ボタンを表示し、
処理対象のページアドレスをメモ帳に追加していく。

ページ構成が同様のサイトであれば使えるので、対象サイトに追加していけばほかのサイトにも使える。
ただし、アダルトサイトはダミーが多いので大変なことになるかも。


67:名無しさん@お腹いっぱい。
08/01/30 14:37:55 bDlCrFc60
いよー
諸君元気でやっとるかね
私は相変わらず多忙続きでへろへろ~w

IE7に変えたらアクティブウィンドーの取得がおかしくなったって前に私が発言したんだけど
取り消しだ
そのサイト最近リニュアルしたんだけど
ソースをひとつづつチェックしてたらなんと!
IEに対していろんな制御してたんだ
* ENTERキーを押したかのを検査する
*IEのショートカットキーおよび一部の機能を無効にする
* マウスのクリック(2重リクエスト)
*マルチサブミット防止処理
* ファンクションキーの無効化

これをジャバスクリプト命令にして先にヘッダ部分で読み込んでやがった
UWSCの操作でどうにかできる問題じゃなかったんだ
ここで相談に乗ってくれた九州男児ありがとう
きみのソースでかなり勉強できましたが
サイト側がIEに対して制御かけていることが判明しました
色々とありがとう
寒い日が続くけど風邪ひかないようにね

あ、UWSCに要望あるんだよね
・多重起動ありにしてください(もっかいお金払ってでもいいですのでバージョンアップということでお願いします)
・IEだけでなく他のブラウザにも対応して下さい特に便利なFirefoxに対応していないのは痛いです
以上
んじゃノシ

68:名無しさん@お腹いっぱい。
08/01/30 18:44:34 aG+PMwK+0
URLリンク(www.vid-dl.net)

↑を使ってダウンロードする場合はアドレスの貼り付けが手作業になる。
「URLリストを開く」でアドレスがまとめて取得できるが、ファイル名が正しくない。
表示されるファイル名を取得して自動的に保存するスクリプトをUWSCで書いてみた。
保存場所はデフォルトなので、あらかじめ1つめをダウンロードして場所を指定しておかないと場所が分からなくなる。

Vid-DLの窓を終了すればスクリプトも終了します。(アイドリング中)
最初に「保存」をクリックしてやらないと先に進まない場合があったのを修正。

URLリンク(scripts.web.fc2.com)

69:名無しさん@お腹いっぱい。
08/01/30 19:07:03 bDlCrFc60
やっぱりUWSCがいいな
Firefox用の自動ソフトを探してテストしてみたんだけど
どれも使えない
RECIEがいいよ
ってことで
右クリ禁止とF5禁止の突破を考えていたんだけど
UWSCでブックマークレットとか使える?
お気に入りにジャバスクリプトを登録しておいて
右クリ禁止のページになったらそのブックマークをクリックするだけで
ジャバスクリプトが発動するんだ

それかUWSCでジャバスクリプトの命令を実行できる?
まあスクリプトのことはよくわかんないので
その右クリ禁止ページになったらKey制御している.jsのソースがわかったので
falseをtrueに書き換えるだけ^^;
どうなることやらwww

・UWSCでブックマークレット使いたい
・UWSCでジャバスクリプトの命令を実行したい

毎度聞いてばかりで悪いね
よろしく
あ~腹減った~
今日も忙しくて朝飯も食ってないよ
メシ食ってくるね

70:名無しさん@お腹いっぱい。
08/01/30 19:43:53 ts57POVO0
RECIEてIE専用だしCOM使ってるだけだろ。
ブラウザがらみ邪魔九歳から別スレ建てろよ。

71:名無しさん@お腹いっぱい。
08/01/30 20:17:03 aG+PMwK+0
>>69
無理だと思う。返事は期待できないよ。


>>71
// JaneDoe Viewの操作を補助する。
// スレを切り替えると自動更新し、最終取得で並び替える。

ID = GetID("JaneDoe View", "TMainWnd")
prev = GetSTR(ID, 1)
while 1
sleep(0.1)
// アプリが終了された場合は連動して終了
if !IDToHND(ID) Then break
url = GetSTR(ID, 1)
ifb prev <> url Then
prev = url
cnt = 0
REPEAT; cnt = cnt + 1; UNTIL "" = token("/", url, true)
if 4 = cnt Then CLKITEM( ID, "《更新", CLK_MENU or CLK_SHORT )
endif
wend



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