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