09/02/15 00:48:48 48UC/FQI0
>>908
if flag = true とかいう書き方をしてると
if POS() = true というバグを見落とすことになる。
flagにしたって、状態がOn/Offだけとは限らない。
ボタンは白黒が基本だけどグレーだってある。
拡張してグレーを入れるとき、
何も考えずに取得した状態を放り込んでるとバグが発生することになるが、
自分がいじってない場所に影響が出るとは考えにくいし。
なにより、取りうる値をいちいち調べないといけない if flag = true なんか使ってると手間が増えるだけ。
912:名無しさん@お腹いっぱい。
09/02/15 01:18:42 48UC/FQI0
>>910
<!-- △△△ -->と<!-- ◇◇◇ -->を除外ということならシンプルだけど
<!-- △△△ -->と<!-- ◇◇◇ -->の間を処理するというのは、その処理基準が不適切と思われる。
ほかに手がなければしょうがないけど。
① FOR A = 0 TO (KAISU - 1); start = A + 1; next // <!-- △△△ -->が出るまで空回り
② FOR A = start TO (KAISU - 1); 処理; next // <!-- ◇◇◇ -->が出るまで処理
①で空回りした回数をstart にセットして、②でstartから再開すればいい。
<!-- △△△ -->が一度も出てこなかった場合、startにKAISUが入るので、多分②は素通りする。
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("URLリンク(www.yahoo.co.jp)<)", IE.document.links[A].href) then // まだインデントつけてないしThen抜けてるよ。
IE2 = CREATEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
ENDIF
NEXT
IE.QUIT
913:名無しさん@お腹いっぱい。
09/02/15 01:38:43 h4gEwsYs0
ちなみにその考えじゃ永遠に無理。
914:名無しさん@お腹いっぱい。
09/02/15 01:53:42 MQRSTk0U0
こんなことができたらいけるかもと考えました。
1、三角から四角までの文字列をゲット。
2、1の中のアドレスだけゲット。
3、上記のやつでアドレスを一個ずつ巡回。
1は、HTMLで見ると表示されてるやつです。コメントというのかな?
915:名無しさん@お腹いっぱい。
09/02/15 04:44:36 ZJEnRiKf0
>>911
> if flag = true とかいう書き方をしてると
> if POS() = true というバグを見落とすことになる。
バグとか言う以前に、そんな書き方はしない。
思いつく時点でおかしい
なんで、IFの条件文でTrue/FalseのBoolean型をチェックするのに
その条件文の中でわざわざTrue/FalseのBoolean型と比較する必要があるのか
無意味な重複になってる
916:名無しさん@お腹いっぱい。
09/02/15 06:36:23 LdrnYZV60
flag = trueって書き方自体はおかしな事じゃないでしょ
ifの条件式の一部にあってもおかしくはない
ただ、単体で「if flag = true then」と書くと蛇足ということになる
UWSC的にあってるかどうかはわからないけど
「if (flagA = true) AND (flagB = true) then」なんて場合があるわけだし
「if POS() = true then」をPOS() > 0 のつもりで書いているなら
変数にどんな値が入っているか、型とかを考えてない。って話になるし
POS() = 1 のつもりで書いているなら、同じ値だからといって
関係ない定数を使い回すな。という話になる
「if POS() then」がC畑の人の流儀というのは理解してるけど
それを理解してない初心者が、何となく親切心かお節介で付け加えた結果が
「if POS() = true then」ということになってるじゃなかろうか
917:名無しさん@お腹いっぱい。
09/02/15 11:31:41 48UC/FQI0
>>916
>flag = trueって書き方自体はおかしな事じゃないでしょ
処理系にもよりますが、TRUEの値は保障されないので、比較で使うのはおかしい。
実際1という値を持っているしUWSCでは保障してるかもしれないけど、
一般的にそうなのでUWSCでもそういう癖はつけないほうがいいんじゃないかなと。
if (flagA = true) AND (flagB = true) then × // 成立するのはflagが1か0のときだけ
if (flagA <> false) AND (flagB <> false) then ○ // 全ての値で成立
918:名無しさん@お腹いっぱい。
09/02/15 20:05:10 LdrnYZV60
だから、flag = trueに違和感を感じる人は
boolean型がないC畑の人だけで
boolean型がある言語系の人は何の違和感もないんだって
flagって変数がboolean型なんだな。って思うだけだから
919:名無しさん@お腹いっぱい。
09/02/15 20:30:21 LdrnYZV60
> KAISU = IE.document.links.length
> flag = false
> FOR A = 0 TO (KAISU - 1)
> IF POS("<!-- △△△ -->", IE.document.links[A].href) THEN flag = ture
> IF POS("<!-- ◇◇◇ -->", IE.document.links[A].href) THEN flag = false
>
> IFB flag THEN
> IFB POS("URLリンク(dailynews.yahoo.co.jp)", IE.document.links[A].href)
> IE2 = CREATEOLEOBJ("InternetExplorer.Application")
> IE2.visible = True
> IE2.navigate(IE.document.links[A].href)
> ENDIF
> ENDIF
> NEXT
例えば>>910のサンプルで言ったらこういうことでしょ
flagにはtrueかfalseしか代入してないんだから
trueの値が保障されてないとか、trueかfalse、0か1以外が入ってることなんて考えなくていい
この場合は「IFB flag THEN」を「IFB flag = true THEN」と書いたところで
お節介と言うことにはならない
それをPOS()という戻り値がINTのものに対してPOS() = trueとか書いてしまうと
たまたま1の時だけtrueになってしまうということになる
920:名無しさん@お腹いっぱい。
09/02/15 20:56:45 48UC/FQI0
>>918-919
まあPos()のように0と0以外で判断するのはC言語系の考えとしても、
trueの定義がfalse以外のものとされてるのは、他の多くの言語で共通してるようだけど。
確かにtrueしか代入しないのなら確実に動作しそうだけど
なんかの拍子にごみが入ったとき、trueで比較するとどんな動作をするか分からない。
まあごみが入った時点ではじかれるべきだからむしろtrueと比較すべきかもしれん。
つまりelseなんか使うなって事だ・・・
921:名無しさん@お腹いっぱい。
09/02/15 21:21:15 o+fSWy2v0
型通りに書けばいいだけじゃ?、
flagはboolean型とみなしてコード書いてんだからtrueでいいし、
Pos()はint型だからtrueでの判定はナンセンスってだけ。
922:名無しさん@お腹いっぱい。
09/02/16 06:46:17 EmOr31T+0
For y = 0 to 250
~
Call ~
~
Next
POFF(P_SUSPEND2)
と言う感じで外部スクリプトを呼び出して繰り返し作業をさせているのですが
なぜか毎回209回で終わってスタンバイになってます
なにか制限でもあるのでしょうか?
923:名無しさん@お腹いっぱい。
09/02/16 09:09:28 Y25mNBPu0
>>922
変数がかぶっているとか? callをコメントアウトしたらどう?
924:名無しさん@お腹いっぱい。
09/02/16 23:09:04 QUmq6Zuh0
>>922
//主
public i
for i= 1 to 250
call call2.uws
next
//call2.uws
print i
でテストしてみたけど、制限などないようだよ…(アホだな自分もw)
925:名無しさん@お腹いっぱい。
09/02/16 23:19:50 +qFEC0Zh0
自作関数で戻り値を配列で返すにはどうすればよいのでしょうか?
普通に配列を指定すると怒られます。
926:名無しさん@お腹いっぱい。
09/02/17 01:13:40 shI/FnE+0
>>925
イマイチ質問の意味がわからんけど関数内でResizeしてないんとちゃう?
URLリンク(www.geocities.jp)
927:名無しさん@お腹いっぱい。
09/02/17 03:52:10 X+NUGRkd0
>>925
関数の戻り値に配列って指定できたっけ?
俺は配列変数を参照渡しして、配列の長さを返却するようにしてる
DIM ary[0]
DIM i
FOR i=0 TO hoge(ary, 3)-1
PRINT "ary["+i+"]: "+ary[i]
NEXT
FUNCTION hoge(VAR a[], n)
DIM i
FOR i=0 TO RESIZE(a, n-1)
a[i] = i
NEXT
RESULT = LENGTH(a)
FEND
928:名無しさん@お腹いっぱい。
09/02/17 06:36:49 hsq0Fe2s0
>>925
一言で言えば、無理
929:名無しさん@お腹いっぱい。
09/02/17 12:52:47 zwqJ4YAK0
>>925
俺もそれやろうとしたけどできなかったんで、配列のグローバル変数使ってやりとりしてるな
かっこ悪いけど
930:925
09/02/17 15:04:26 zlTNHss50
うーん、やっぱりできないっぽいですね
関数自体をループさせるか、グローバル変数使うしかないのかな…
ありがとうございました
931:名無しさん@お腹いっぱい。
09/02/17 15:42:00 gznT5Jkz0
>>930
いや、>>927は無視ですか。
関数の引数を定義するときに、var 変数名 と定義してやれば、値の受け渡しができます
同じ変数名ならグローバル変数みたいに使える。
2次元配列とかもできる。
ちょっと配列数と添え字がややこしいけど。
dim a[0]
hoge( a )
FUNCTION hoge( var a[] )
dim i
resize(a,10)
for i = 0 to 9
a[i] = "x"
next
FEND
>>927はfor文 でResizeしてるっぽいけどありなのか。
932:名無しさん@お腹いっぱい。
09/02/17 16:19:37 gQhLPPZu0
FOR文自体は、中がループしてるだけで
ループ毎にFOR文の行を処理してる訳じゃないからね。
2行に分けて書くか、1行にまとめて書くかだけの違いで。
933:名無しさん@お腹いっぱい。
09/02/17 16:52:39 gznT5Jkz0
いや、
for i=0 to Max
っていうのは、i とMaxを比較するんじゃないかなと。
そしたらMaxは毎回処理されるんじゃないかなと思ったんだけど
UWSCの場合はForが回数固定でカウンタとか保護されてるから大丈夫なんだろう。
いや、サイズが一緒だから変化がないだけかも。
C言語でいうと
for( i=0; i<Max; i++ )
iやMaxはループ中で変更できちゃうんだよね。
そんで初期化以外は毎回評価、実行されるんだよね。
初期化が入ったとき1回だけなのは当然だけど、終了条件の実行回数は分からない。
だからC言語でループ回数に関数を使うときは
for( i=sizeof(array); i>=0; i-- )
て言う風に初期化子として使う。
いや、そんなことしてなかったな。俺は。
どうせ最適化してくれるだろうと思って。
934:名無しさん@お腹いっぱい。
09/02/17 17:00:23 gznT5Jkz0
// forのテスト。終了条件を関数で指定するとどうなるか。
for i = 0 to test(i)
print "roop" + i
sleep(1)
next
Function test(i)
print "Func" + i
result = 2
FEND
実行結果。終了条件の関数は、カウンタの初期化の後1回だけ呼ばれる。
Func0
roop0
roop1
roop2
935:925
09/02/18 13:34:14 YzuvFpA90
恥ずかしながら>>927の意味がよくわかってませんでした(;´Д`)
>>931
わかりやすい説明ありがとうございます
これは便利ですね!
936:922
09/02/19 18:03:25 LQepcHmb0
ログが最大209行で終わっていたというあほな理由でした
吊ってきます
937:名無しさん@お腹いっぱい。
09/02/19 18:22:19 ac9y3F6q0
(´・ω・`)
938:名無しさん@お腹いっぱい。
09/02/19 20:54:42 UxnJe9qS0
複数行のテキストを入力できるようなインターフェースって作れる?
INPUTだと1行だけだよね
939:名無しさん@お腹いっぱい。
09/02/19 21:04:22 vC1/avge0
フォームでできるよ
940:名無しさん@お腹いっぱい。
09/02/19 21:19:52 UxnJe9qS0
>>939ありがとう
941:名無しさん@お腹いっぱい。
09/02/20 02:33:51 Zfo0EG+70
IEでの動作の途中に、別ウインドウのコマンドプロンプトに文字列を記入するマクロをつくっているのですが、
SENDSTR関数か、SCKEY関数か、どちらの方が安定するものでしょうか?
SENDSTR関数の方がいいような気もするし、
SCKEY関数の方が
コマンドプロンプトのウインドウをアクティブにしなくていい分、
有利な気もするし、、、
ちなみに、CPU負荷が高い状態での動作になります。
どちらがいいでしょうか?
942:名無しさん@お腹いっぱい。
09/02/20 06:24:43 cWHe1c0/0
IEの特定のアドレスが含まれている画像のクリックするスクリプトを組んでいます。
前に、指定の範囲のアドレスを・・・と書いたものです。
他に方法はないかとソースなどをみてみたのですが、画像のアドレスなら前回の
場合と違い数が少なくできそうだなと思いました。
<a href="○○" target="_blank" onClick="return top_ekiden_click_chance('top4', '○○')"><img src="●●"></a></p>
上のソースの●●の部分は、複数あるのですが、POSでゲットして巡回できたらと思っています。
ちなみにリンクの場合上記にも書きましたが下のようになります。
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("URLリンク(www.yahoo.co.jp)<)", IE.document.links[A].href) > 0
IE2 = CREATEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
ENDIF
NEXT
IE.QUIT
943:名無しさん@お腹いっぱい。
09/02/20 11:35:06 mn16sQrP0
>>941
SendSTR()は使えないよ。
ショートカットでのコピペもできない。
右クリックメニューを出して貼り付けは可能。
944:名無しさん@お腹いっぱい。
09/02/21 19:32:30 P+noKJtd0
uwscのエラーウィンドウを消すマクロってありませんか
945:名無しさん@お腹いっぱい。
09/02/21 19:49:38 OlRYAKfW0
>>944
まずはエラーメッセージを抑制するようにしたらいいよ。
OLEなら関連関数の例に書いてあるし、それ以外はUWSC本体の設定にあるか、INIファイル編集するとか。
946:名無しさん@お腹いっぱい。
09/02/21 20:01:51 P+noKJtd0
>>945
具体的にどうすればいいか教えていただけますか
947:名無しさん@お腹いっぱい。
09/02/21 20:10:20 P+noKJtd0
例外エラー対策ならマクロの
最初に
TRY
を入れて
マクロの末尾に
EXCEPT
endtry
あたりいれるのがもっとも簡単なんでしょうか
948:名無しさん@お腹いっぱい。
09/02/22 10:05:02 Rpahjq6x0
>>947
まぁ、UWSCで用意されてるものだしなぁ
例外処理でこれ以上簡単なのはないと思うよ。
…エラーを起こさせないという前提で作ればもっと簡単になるけどねw
あと、全体を無理やり囲うのはどうなん
949:名無しさん@お腹いっぱい。
09/02/22 17:59:07 a3nz7nXd0
特定の文字を判定してそこまでの文字を消すマクロはありますか?
例えば
「あいうえお」と入力してあって
「う」まで消したい、そうすると
「あい」となるようなマクロです。
950:名無しさん@お腹いっぱい。
09/02/22 18:28:16 DuKIHBzQ0
POS COPY CHGMOJ でいいじゃねーの
951:名無しさん@お腹いっぱい。
09/02/22 18:31:19 K0Xm20HXP
string = "あいうえお"
find = "う"
MsgBox(COPY(string, 1, POS(find,string)-1))
いや、違う?
この世界に「愛」だけを残す方法を我々に聞いているのか?
952:名無しさん@お腹いっぱい。
09/02/22 19:08:17 a3nz7nXd0
>>950
初心者なのでよくわかりません
>>951
できれば表計算ソフトで使用したいのですが・・・
953:名無しさん@お腹いっぱい。
09/02/22 19:14:53 mX0F8+M00
>>952
冗談じゃなく、ロジックを正しく説明してくれないとプログラムなんか書けませんから。
日本語から勉強してきてください。
954:名無しさん@お腹いっぱい。
09/02/22 19:16:18 lHLWjdVe0
>>952
その表計算ソフトのスレででも聞けよ…
955:名無しさん@お腹いっぱい。
09/02/22 21:10:11 a3nz7nXd0
>>953
セル内に
1戦1勝0負
10戦5勝5負
1000戦500勝500負
・
・
・
となっているものを負を消して
1戦1勝
10戦5勝
1000戦500勝
・
・
・
としたいのです。
よろしくお願いします。
956:名無しさん@お腹いっぱい。
09/02/22 21:21:24 feS5VAah0
丸投げしたいなら他行ってくれ
スレ違いだ
957:名無しさん@お腹いっぱい。
09/02/22 21:37:49 a3nz7nXd0
>>956
そうですか、自分で努力します。
失礼しました。
958:名無しさん@お腹いっぱい。
09/02/22 22:42:54 K0Xm20HXP
うむ
たとえばExcelの場合だとしよう
A1:A100(A1,A2,・・・A100のセル)にそのデータがあるとすればB1に
=LEFT(A1,FIND("勝",A1))
を入れる。次にB1選択した状態でメニューから
編集-コピーを選択、B2:B100選択した状態で
編集-貼り付けを選択。
さらにB1:B100を選択した状態で
編集-コピーを選択、
C1を選択した状態で、
編集-形式を選択して貼り付け(だったっけ?)-値を選択すると
C1:C100に目的のデータが入力される
UWSCでやれない訳ではないけれど結構大変になる
一般的な表計算ソフトの標準機能でこのような簡単な手段は
用意されているのでそちらを調べたほうがいい
959:名無しさん@お腹いっぱい。
09/02/22 23:27:25 q6eIkfWd0
>>958
反応するなよ。反応されるとそれに対して反応したくなる…
そんなに面倒なことせんでも(ry
960:名無しさん@お腹いっぱい。
09/02/22 23:54:16 a3nz7nXd0
>>958
ありがとうございます。参考になります。
961:名無しさん@お腹いっぱい。
09/02/23 04:11:08 S/nw+oX60
IEが複数開いてたとしてウインドウタイトルに特定の文字が含まれているもの
以外閉じるということはできますか?
例えばタイトルに「自動化ツール」というのがあるとして、その他タイトルに「自動化ツール」
が無かったら閉じるといった感じです。
962:名無しさん@お腹いっぱい。
09/02/23 08:00:29 7fqz0Mlm0
>>961
できます
963:名無しさん@お腹いっぱい。
09/02/23 10:33:55 S/nw+oX60
>>962
死にうせろ
964:名無しさん@お腹いっぱい。
09/02/23 11:15:39 H0niA5cQ0
>>961
簡単だよ
965:名無しさん@お腹いっぱい。
09/02/23 11:42:07 PyFhHQu70
>>961
できます。簡単だから頑張って
966:名無しさん@お腹いっぱい。
09/02/23 16:39:43 8oL82p7A0
>>961
タブブラウザ(FireFox3とか)を使うと、たくさんタブが増えても閉じるボタン一発で閉じれるよ。
ウィンドウをいっぱい開いちゃってもタスクバーで右クリックしてまとめて終了すればいい。
Alt+F4で連続終了させるのが簡単。Alt+TABやAlt+ESCと組み合わせてもいいし。
もしそういうスクリプトを作ったとして、たとえば銀行取引のページが別窓で表示されたときに
同じタイトルだからと言って閉じてしまうと取引が不完全なまま終了しちゃっておかしくなるかも。
あと、UWSCってタイトルでアプリを終了させようとすると、
UWSCってフォルダを開いてるエクスプローラーが閉じられたりUWSC自身が終了したり変なことになる。
そういうヘンなの作ってなにか意味あるの?
967:名無しさん@お腹いっぱい。
09/02/23 21:08:56 WFLH0UN70
それはお前だけじゃね?
968:名無しさん@お腹いっぱい。
09/02/24 00:04:30 3MTrBR1N0
>>961
ウィンドウタイトルに「自動化ツール」が含まれない IE6 を終了
DIM i
FOR i=0 TO GETALLWIN()-1
IF STATUS(ALL_WIN_ID[i], ST_CLASS) <> "IEFrame" THEN CONTINUE
IFB !POS("自動化ツール", STATUS(ALL_WIN_ID[i], ST_TITLE)) THEN
CTRLWIN(ALL_WIN_ID[i], CLOSE)
ENDIF
NEXT
969:名無しさん@お腹いっぱい。
09/02/24 00:47:30 rOG7rC/gP
私も考えてみたのですがIE7でタブを使っている場合は
どうすればいいんでしょうね
それさえ実現できれば>>961さんの要求を完全に満たせると思うのですが
970:名無しさん@お腹いっぱい。
09/02/24 11:56:45 1GbWnsrA0
chkimg()で透過色指定+形でチェックを同時にできるようにしてほしいのう
画像内の文字に対するgrepみたいなのを作ってるのだけどフォントカラーが変わったら使えなくなってしまう
フォントスタイル自体は固定なので問題ないんだけど
971:名無しさん@お腹いっぱい。
09/02/24 15:42:30 CGjnVP+X0
chkimgX() みたいな関数作って
内部で透過色&形の2重にチェックするぐらいしか思いつかないわー
972:名無しさん@お腹いっぱい。
09/02/24 17:02:53 Jl8nOyx+0
いやそれ画像2枚いりますやんw
973:名無しさん@お腹いっぱい。
09/02/24 20:21:28 7Fr+80aB0
単純な input() や slctbox() ではなく、
リストボックスをいくつか置き、さらにそのリストボックスの値で
ラベルが動的に変化するようなフォームを使いたいのですが、
同じようなことを試みられた方はいらっしゃいますか?
やはり外部DLLを自作するしかないでしょうか。
974:名無しさん@お腹いっぱい。
09/02/24 21:47:44 AV7g6HDD0
>>973
DLLで画面出す気?
プロパティみたいな感じで?
UWSCの有料版で画面作れるらしいけど、
無料がよければ、最近HTAていうの知ったんだけど、
DynamicHTMLで画面作って、結果をクリップボード経由で渡すようなのなら作れると思う。
リストボックスが変更されたら表示を変更。
OKボタンにOnClickイベントとしてクリップボードにセット。
というHTMLを作って拡張子をHTAに変更。
いや、別にHTMLのまんまでもいいんやけど画面まわりうざいし。
あ、いつどうやって終了を知らせるかが問題だな。
・・・
975:名無しさん@お腹いっぱい。
09/02/24 21:51:45 D2y5nC2+0
ajax使用webサイト超めんどー
なんとかなんない?
976:名無しさん@お腹いっぱい。
09/02/24 22:32:36 7Fr+80aB0
>>974
ありがとう、参考になりました。
977:名無しさん@お腹いっぱい。
09/02/25 13:22:51 dj7Ej2fH0
>>968
思うような動作ができました。m(_ _)m
978:名無しさん@お腹いっぱい。
09/02/26 18:52:26 NcOYiIHC0
多重起動禁止はiniファイルを弄ることで簡単にできるようになったのですが
ほかのスクリプトの実行が終わった後に、後のスクリプトを実行できるようにする方法はありませんか?
979:名無しさん@お腹いっぱい。
09/02/26 19:39:33 ncgoh4z50
callで呼び出せば良いんじゃない?
980:名無しさん@お腹いっぱい。
09/02/26 19:40:54 NcOYiIHC0
いや 先に実行したスクリプトが終わった判定はどうすればいいのかなと思いまして
981:名無しさん@お腹いっぱい。
09/02/26 19:41:18 NcOYiIHC0
ああ連続でやればいいんですね
982:名無しさん@お腹いっぱい。
09/02/27 16:52:50 fl1SuMSB0
>>975
FLASH,ActiveX,,JAVAappletなんかよりはよっぽど楽
983:名無しさん@お腹いっぱい。
09/02/28 21:17:11 hQtF23UU0
slctboxの戻値「slct_1」等は出力させると数字のみになるのはなぜなんでしょうか?
select ~selend文で
caseのあとは"slct_"+数字でも数字のみ指定でも正しく動いているようですが
984:名無しさん@お腹いっぱい。
09/02/28 23:33:07 lrDMYjZcP
>>983
一般的に定数は何かしらの数値に割り当てられるのが普通です。
数値にしておくと演算子=,<>等の処理をそのまま流用できるから設計上楽なのです。
それならば文字列として"SLCT_1"として持たせたほうが分かりやすいのでは?とも考えられますが、
小さい情報量にしたほうがexeサイズが小さくて済んだり、計算量が少なくて済むなど
メリットが大きいのです。
ただしSLCT_1が1と出力されるからといってバージョンアップ等で今後変更される可能性があるので
必ず比較する場合は
「IF ret=1 THEN・・・」ではなく
「IF ret=SLCT_1 THEN・・・」とすべきでしょう。
985:983
09/03/01 00:17:23 re5Hkvhc0
なるほどためになりました
サンクス
986:名無しさん@お腹いっぱい。
09/03/01 08:13:50 c3BdarSQ0
<img src="http://~~~/Apos/img/web/10174/106711_1.gif">
リンクに使われている上記のような画像が複数あったとします。
ページ内にある全ての途中まで共通しているURLの画像をゲット
してクリックすることはできますか?
http://~~~/Apos/img/web/10174ここまでが一緒で後は違うアドレスです。
987:名無しさん@お腹いっぱい。
09/03/01 12:17:03 jADlBu/J0
できますよ
988:名無しさん@お腹いっぱい。
09/03/01 17:53:19 b7uK3KHI0
// IEで表示中のページにリンクされているzipへのリンクを取得し、IEDownload()関数でダウンロードする。
while true
data = IEGetData( IE, "TAG=A", i )
Src = IEGetSrc( IE, "A", i )
if !length(Src) then break
Link = BetweenStr( Src, "href=<#DBL>", "<#DBL>" )
ifb "zip" = Copy( Link, Pos(".", Link, -1) + 1, Length(Link) - Pos(".", Link, -1) ) Then
IE.navigate( Link )
IEDownload( IE )
break
Endif
i = i + 1
wend
Function IEDownload( var IE )
Fend
989:名無しさん@お腹いっぱい。
09/03/01 19:53:07 c3BdarSQ0
>>987
死にうせろ2
990:名無しさん@お腹いっぱい。
09/03/01 20:33:14 q5FcoyWP0
>>989
簡単だよ 自分の頭蓋骨の中をたまには使えよ
991:名無しさん@お腹いっぱい。
09/03/01 21:14:20 b7uK3KHI0
data = IEGetData( IE, "TAG=A", i )
これってAタグならラベル部分、その他ではValueを取り出せるんだけど
ラベルを指定してクリックするのがIELINK()
この後に
IELINK(data)
って入れてもいいんだけど、ダウンロード用ページだと同じラベルでいっぱいファイルがある。
だからUWSCの関数では番号指定とかでもしないとクリックできない。
まあリンクは簡単に取り出せるからIE.Navigate()で開けばいいんだけど
「ファイルのダウンロード」窓がクリックできん・・・
ボタンが反応はしてるんだけどクリックできん。
CtrlWin()でアクティブにしてもアクティブにならない。
以前作ったときはちゃんと動いていたんだけどなあ・・・
画像の保存とかページの保存とかならIEの子ウィンドウとして拾えるけど
ダウンロードは親子関係がないっぽいし。
モーダルとモードレスで親子関係が違ってくるとかなのかな。
いや、つかんでもクリックできないんだよな。
親子両方クリックしたらアクティブになった。なんか裏のやつを子として処理してたのかな。
でもフォーカスが「保存」ボタンには移ってるんだけどなあ・・・
名前をつけて保存ならクリックできるのに。
戦車で野球のボールを投げたら時速327キロか。
992:名無しさん@お腹いっぱい。
09/03/02 00:20:27 OsLHIqg20
RecIE使ってみたけど、ダイアログのクリックは拾ってくれないな。
IELink(IE,"DL002")
BusyWait(IE)
本体で記録してみたけど
ACW(GETID("ファイルのダウンロード","#32770"),422,375,435,243,0)
ScKey()はだめだったけどMouseOrg()で窓に直接Kbd()でならもしかしていけるかも。
だめだった。
しかし、MouseOrg()してKbd()してClkItem()したらいけた。
Kbd()でアクティブ化に成功してるんだろう。
993:名無しさん@お腹いっぱい。
09/03/02 11:20:51 OsLHIqg20
「この種類のファイルであれば常に警告する」のチェックを外せばそのままダウンロードが開始されるんだな・・・
今までやらなかったけどもうこれが一番の解決法か・・・
と思ったけど保存ダイアログが出てこないと思ったら勝手に起動されちゃうんだな。
上書きの警告もないし、キャッシュにしか落ちてないんだろう。
これじゃダウンロードにならない。
URLToFileとかいうのが使えればいいんだけど今やってるところはパスワード制限かかっててアクセスエラーになるからできないし。
>MouseOrg()してKbd()してClkItem()したらいけた。
これについては親子両方に送ればうまくいったが、子だけに送ったらだめだった。
多分他の窓をクリックすることでアクティブ状態が切り替わってうまくいってたんだな。
トップレベルなのに非アクティブなあの状態は何とかならんのか・・・
もしかしたらあの二重の窓の二つ目が開く直前に裏の窓をクリックしてしまうのが問題なのかもしれん。
親窓の方拾ったらスルーして待つかな。
994:名無しさん@お腹いっぱい。
09/03/02 12:25:41 MGuj9EpHO
他人が役立つ日記ならここで大歓迎
環境に依存した再利用性の低い独り言はブログにでも貼ったら?
995:名無しさん@お腹いっぱい。
09/03/02 13:02:26 pSlHrzIi0
次スレたててこい>浪費したやつ
996:名無しさん@お腹いっぱい。
09/03/02 17:11:41 OsLHIqg20
【速報】 全鯖規制ISP一覧 VIPPERのせいですね、わかります
スレリンク(news板)
URLリンク(qb5.2ch.net)
なんか祭りになってたんでスレ立てしてみたんです。
ねws
スレリンク(sec2chd板)
そしたら全サーバーで規制されました。
997:名無しさん@お腹いっぱい。
09/03/02 19:50:06 rP5khwz50
自動化ツールuwsc使いよ集まれ4
スレリンク(software板)
998:名無しさん@お腹いっぱい。
09/03/02 21:30:58 9PDTuTrY0
おつおつ。
999:名無しさん@お腹いっぱい。
09/03/03 02:16:28 0ITm2xmn0
999
1000:名無しさん@お腹いっぱい。
09/03/03 02:27:23 6utcIoKu0
んじゃ1000
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。