自動化ツールuwsc使い ..
754:名無しさん@お腹いっぱい。
09/01/18 06:09:29 7B/GQZFQ0
>>751
仕事面:決まりきった作業、繰り返し作業の効率化
Web製作面:ランダムな操作で想定外行動のチェック漏れ発見(意味あるかは知らない
セキュリティ面:泥棒が侵入してきたとき、クイックメニューから一発でメールで連絡できる。
ある程度相手が分かってる時便利。
DOSコマンドでメール送信するのを使ってたけど、コマンドラインにパスワード入れなきゃいけなかったので削除されてしまった。
うpろだのJpeg画像とか、一回ペイントで開いて上書き保存すると、サイズが半分近くになる場合が多い。
だからダウンロードした画像のリストをエクスプローラーで出して、ドラッグとCtrl+Sで更新を繰り返すのとか作った。
あとは、性能は低いけどパスワードクラックとか2Getスクリプトとか
たくさんのID作りたいときに自動登録マクロとか。
755:名無しさん@お腹いっぱい。
09/01/18 06:10:50 7B/GQZFQ0
STOPFORM(true)
ID = Exec("C:\WINDOWS\system32\mspaint.exe")
while ID = (-1) // 負荷が高いとID拾えないので
sleep(0.1)
ID = GetID("無題 - ペイント")
wend
Repeat; sleep(0.1); Until GetKeyState(VK_CONTROL)
StartX = G_MOUSE_X
StartY = G_MOUSE_Y
sleep(1)
While !GetKeyState(VK_CONTROL)
CLKITEM( ID, "ファイル\新規", CLK_MENU )
sleep( 0.1 )
// Ctrlキーで中断・再開
ifb GetKeyState(VK_CONTROL) then
sleep(5)
Repeat; sleep(0.2); Until GetKeyState(VK_CONTROL)
sleep(1)
endif
MMV( StartX, StartY )
BTN( LEFT, DOWN, StartX, StartY )
EndX = Status(ID, ST_X) + 30
EndY = Status(ID, ST_Y) + 10
MMV( EndX, EndY )
BTN( LEFT, UP, EndX, EndY )
If DlgWait(ID, EndX , EndY) Then Continue
If Status(ID, ST_TITLE) = "無題 - ペイント" Then break
CLKITEM( ID, "ファイル\上書き保存", CLK_MENU )
DlgWait(ID, EndX , EndY)
wend
CtrlWin(ID, Close)
MsgBox("処理が終了しました。")
756:名無しさん@お腹いっぱい。
09/01/18 06:12:23 7B/GQZFQ0
// マウス形状が通常の状態が1秒ほどあればタイムアウト。
// その間にダイアログが表示されるかどうかで戻り値が変わる。
// ダイアログが出た場合、OKをクリックする。
// True: 窓出現 False: 窓出ず
Function DlgWait(ID, EndX , EndY)
Result = False
cnt = 0
while cnt < 6
sleep(0.1)
MMV( EndX , EndY )
if MUSCUR() = CUR_ARROW Then cnt = cnt + 1
CID = GetChldID(ID)
Ifb CID Then
sleep(1)
ClkItem(CID, "OK")
Result = True
break
endif
wend
Fend
// 子ウィンドウを探す
// 戻り値:子ウィンドウのID。見つからなければ0。
// PID:親ウィンドウID
// CID:子ウィンドウIDの候補
// GW_ENABLEDPOPUPはWindows2000以降のみでサポート
//
// GetWindowによる子ウィンドウ取得を、GetChldIDに使ってみたが、
// Zオーダーで手前のウィンドウを全て取得するので選別する必要がある。
// メニュー Class:"#32768"
// ダイアログ Class:"#32770"
// ツールチップ Class:"tooltips_class32"
757:名無しさん@お腹いっぱい。
09/01/18 06:17:23 7B/GQZFQ0
Function GetChldID( PID, CID = 0 )
Ifb CID Then
Ifb PID = STATUS( CID, ST_PARENT ) Then
result = CID
exit
endif
endif
h = GetWindow( IDToHnd(PID), GW_ENABLEDPOPUP )
Ifb h Then
S = Status(HndToID(h), ST_CLASS)
Select S
case "#32768"
Result = 0
case "tooltips_class32"
Result = 0
default
Result = HndToID(h)
Selend
Else
Result = 0
Endif
Fend
// エクスプローラーとペイントを使った、Jpeg画像ファイルダイエットスクリプト 2008/10/21
// 使用方法:対象ファイルをエクスプローラーで表示し、ペイントが起動したら、エクスプローラーの
// ファイル一覧画面の一番下のファイルにマウスカーソルを合わせ、Ctrlキーをクリックする。
// Ctrlキーで中断。
ソースは >>755-757
※エクスプローラーで、ファイルを詳細表示し、表示中ファイルの一番下のやつをクリックすると勝手に一つスクロールする。
これを使うと簡単に順番に処理することができる。スクロールしない場合は窓の高さを変更する。
758:名無しさん@お腹いっぱい。
09/01/18 06:25:01 7B/GQZFQ0
>>753
VBSかな。これもスクリプト言語だけど・・・
次はVB.netかな。
>>750
sleepが0.5秒だから反応は遅いね。
759:名無しさん@お腹いっぱい。
09/01/18 09:12:15 BRvZ2wPi0
>>733
とりあえず、最低限
URLリンク(big.tm.land.to)
の内容くらいは自分で理解してから質問してくれぃ。
760:733
09/01/18 11:55:00 V1b5lGQF0
>>759
一応読んでみたのですが
取得した値と新しく取った値を比較
さらに新しく取った値と比較みたいなことは
どこにも書いてないのではないでしょうか?
>>758
これって最初に取得した色と比較してMSGBOXが出るようになってますよね?
ある地点の色を取得して現在の色と比較
さらに取得して新しく取得した色と比較と
これを繰り返していきたいんです。
761:名無しさん@お腹いっぱい。
09/01/18 12:41:56 O40sJXqz0
>>760
あなたは日本語言語でちゃんと処理を記述してるじゃないか。
あなたがセンテンスを分割して2行で書いたとおり
uwscで2回比較処理をすればいいじゃないか。
これ以上はちょっと俺は関与することに面白みを見出せないわ
別にアルゴリズム的に難題というワケでもなし。
単なる知識不足のサポートは自助努力で補うといいよ。
…書いたものに駄目だしをされるだけなのは疲れるからね。
自分で書きなさい。想定がつけば駄目だしをしてあげるから。
762:名無しさん@お腹いっぱい。
09/01/18 12:45:57 Xm1Xcjw/0
自分でやろうって気が少しも感じられないもんな
763:名無しさん@お腹いっぱい。
09/01/18 13:15:24 I+l/Qm3w0
>>760
自分のやりたいことがそっくりそのまま1から10まで書いてあるわけ無いだろ。
基本的なことは書いてあるんだからそれを理解したなら自分で作れ
764:名無しさん@お腹いっぱい。
09/01/18 15:31:11 xwkw1ib70
>>754
真面目にレスありがとうございます
UWSCで画像を対象にした条件分岐や色々作成した事はあるのですが
(今ではすっかり文法忘れてます)
ルーターにアクセスしてある設定を切り替える、等も
UWSCで可能でしょうか?
PHP等のスクリプトですると難しそうなので・・・
765:名無しさん@お腹いっぱい。
09/01/18 18:34:11 o9RUmICX0
可能です
766:733
09/01/19 15:25:59 V9clvX4k0
みなさんのヒントを元になんとか完成しました。
またつまづいたらよろしくお願いします。
767:名無しさん@お腹いっぱい。
09/01/19 20:54:27 qcrdC3FS0
ハハ お断りします
(゚ω゚)
_(_つ/ ̄ ̄ ̄/_
\/___/
768:名無しさん@お腹いっぱい。
09/01/20 00:58:10 CMylmmuM0
[Ver4.5]
769:名無しさん@お腹いっぱい。
09/01/20 01:37:12 0N/gC0gi0
高レベル記録…
なんというお手軽システム。
770:名無しさん@お腹いっぱい。
09/01/20 10:17:34 Rt1OsezX0
うう、まだcall文で変数が使えんのか・・・
771:名無しさん@お腹いっぱい。
09/01/20 11:22:31 mivuHGw40
IE_Subってもう入手できないの?
772:名無しさん@お腹いっぱい。
09/01/20 16:02:13 6xnO4udb0
一昨日からスクリプト組始めたんですが、どうにも配列変数の使い方(定義を含めて)がわからないので
詳しい方ご教示願います。
例えば変数ABC(x、y)に10*10=100個の変数にX軸Y軸共に1を格納していく場合、
BASICで書くと(うろ覚えですけど。)
FOR Y=0 to 9
FOR X=0 to 9
ABC(X,Y)=1
X=X+1
NEXT X
Y=Y+1
NEXT Y
と、したい所をuwscでは最初にどう定義して配列変数を使っていけばいいですか?
ヘルプ見たんですけど、イマイチイメージがつかめません
お願いします。
773:名無しさん@お腹いっぱい。
09/01/20 16:09:22 6xnO4udb0
あ、FOR〜NEXTってX=X+1とかいらないんだっけ?・・・orz
774:名無しさん@お腹いっぱい。
09/01/20 17:49:05 LpFWL/UM0
どうって、
DIM ABC[10][10]って定義して
> ABC(X,Y)=1
ABC[X][Y]=1
っていれてくだけでしょ…
775:名無しさん@お腹いっぱい。
09/01/20 18:03:13 6xnO4udb0
ああ、(x,y)じゃなくて[x,y]じゃないといけないのね・・・helpそういう意味かorz
とんだ勘違いしてました。どうもです
776:名無しさん@お腹いっぱい。
09/01/23 08:39:26 n0Gk8YsY0
複数のスクリプトを連続で起動させるにはどうすればよいですか?
1のスクリプトがおわったら自動的に2をのスクリプト起動、2→3、3→4...という感じです。
777:名無しさん@お腹いっぱい。
09/01/23 10:36:35 E4bxtYk+0
>>776
各スクリプトの最後でcall。
もしくは
exec("フルパス\uwsc.exe フルパス\hoge.uws")
こちらは多重起動禁止だとダメかもしれん。
778:名無しさん@お腹いっぱい。
09/01/23 12:19:14 v1eHViqS0
>>776
1の頭で2,3,4をcallして
1でprocedureやFunctionを順に呼び出してもいいよ
779:名無しさん@お腹いっぱい。
09/01/23 12:30:51 n0Gk8YsY0
>>777
>>778
ありがとうございました。とても参考になりました。
780:名無しさん@お腹いっぱい。
09/01/23 14:55:53 uyPNdhnC0
>>705さんの
>IEを操作するのならCOM使うとフォーカス奪われないよ
これについて理解を深めたいのですがどのあたりを具具れ場良いのでしょうか?
781:705
09/01/23 20:41:40 CkpYM4hA0
>>780
これに関してはググってないからわかんない
ヘルプのじゃ難しい?
スクリプト > スクリプト関数 > COMオブジェクト, IE操作関連
あとはページソースと睨めっこ
782:780
09/01/23 22:39:18 aJMC8HA30
>>781 ありがとうございます。よく読んでみます。
783:名無しさん@お腹いっぱい。
09/01/24 16:24:29 T53k2DPg0
かなり、基本的なことで恥ずかしいことなのですがどうしても解決できず…
HAZU = GETID("URLリンク(www.***)")
ClkItem(HAZU, "事件", CLK_BTN)
上記では、webウィンドウ上のアイテムをくりっくすることができません。
エラーは起きないのですが。。
原因としてはなにが考えられるでしょうか?
784:名無しさん@お腹いっぱい。
09/01/24 16:35:10 jFu+yqaK0
left clickではないだろうか。
785:名無しさん@お腹いっぱい。
09/01/24 17:06:55 JOvNHrQj0
>>781=>>783?
786:名無しさん@お腹いっぱい。
09/01/24 19:22:15 nTyZ62iO0
早速のへんしんあり
Left Clickということは、そのあとに座標指定ですよね?
web上だとずれてしまいませんか??
>>785
違いますよ〜
787:名無しさん@お腹いっぱい。
09/01/25 02:35:43 XdmZStkM0
>>782
わからなかったからここできくといいよ
その時はURL晒すように!
↓のようなレベルの質問しなければだけどw
ID:5VRwikzI0
ID:V1b5lGQF0
>>783
IE上のはCOMで書かないとだめ
ウィンドウ関連はWindowsフォームを扱うもの
788:名無しさん@お腹いっぱい。
09/01/25 12:17:04 mUdf+86S0
COMで書くと言うことは、C++や、java言語で組め
ということですか?
789:名無しさん@お腹いっぱい。
09/01/25 12:29:17 KXHTzu1o0
座標(720,100)の赤要素が200〜255の時はAキーを押し、
赤要素が199以下の時はBキーを押す。
というように動かすにはどう記述すればいいですか?
----------------------------------------------
IFB (PEEKCOLOR(720,100) and $0000FF) 55 then
KBD(VK_A,CLICK,40)
ELSE
KBD(VK_B,CLICK,40)
ENDIF
----------------------------------------------
上記のように書きましたがうまくいきません。
ご教授お願いします。
790:名無しさん@お腹いっぱい。
09/01/25 13:03:24 mUdf+86S0
IE上の、どのラジオボタンをクリックするのかを指定するにはどのようにすればよいのでしょうか?
IESetData(IE,True,"lr","lang_ja") // ラジオボタン選択:日本語のページを検索
IESetData(IE,"UWSC","q") // 文字設定:検索単語
IESetData(IE,True,"btnG","Google 検索") // SUBMIT
ヘルプではこのように載っていますが1行目のlrというのは、ラジオボタンということを示しているのでしょうか?
よくわかりません><
791:名無しさん@お腹いっぱい。
09/01/25 13:17:12 yFPEYg0l0
教授じゃなく教示だと何度言ったら
792:名無しさん@お腹いっぱい。
09/01/25 14:10:16 XdmZStkM0
>>790
IESETDATA( IE, 値, Name, [Value, 番号] )
google.co.jpのソースを見ると
<input id=all type=radio name=lr value="" checked><label for=all> ウェブ全体から検索 </label>
つまり Name=lr, value= ""
<input id=il type=radio name=lr value="lang_ja"><label for=il> 日本語のページを検索 </label>
同様に Name=lr, value= "lang_ja"
値がtrueということは,選択もしくはクリックするということ
793:名無しさん@お腹いっぱい。
09/01/25 14:11:57 XdmZStkM0
>>790
//以下コード
IE = CreateOLEObj("InternetExplorer.Application")
IE.Visible = True
IE.Navigate("URLリンク(www.google.co.jp)")
BusyWait(IE)
IESetData(IE,True,"lr","lang_ja") // RADIO: 日本語のページを検索
MSGBOX( "日本語のページを検索 のラジオボタンをオンにしました." )
IESetData(IE,True,"lr") // RADIO:ウェブ全体から検索
MSGBOX( "ウェブ全体から検索 のラジオボタンをオンにしました." )
Procedure BusyWait(ie)
Sleep(0.5) // Wait
Const TIME_OUT = 90
tm = Gettime()
repeat
Sleep(0.2)
ifb Gettime() - tm > TIME_OUT
MsgBox("Time Out:BusyWait")
ExitExit
endif
until (! ie.busy) and (ie.readyState=4)
Sleep(0.5)
Fend
794:名無しさん@お腹いっぱい。
09/01/25 14:34:02 XdmZStkM0
>>789
IFB ( PEEKCOLOR( 720, 100 ) and $FF ) >= 200 then
andってどういうこと?教えて!
795:名無しさん@お腹いっぱい。
09/01/25 14:44:55 od339K0v0
>>794
ビット積
URLリンク(www3.bigcosmic.com)
オイラも前に同じこと聞いたw
796:名無しさん@お腹いっぱい。
09/01/25 14:48:20 XdmZStkM0
>>795
ありw
797:789
09/01/25 18:08:13 KXHTzu1o0
>>794
ありがとうございます。うまく動きました。
798:名無しさん@お腹いっぱい。
09/01/25 23:25:00 mUdf+86S0
>>792
なるほど。ソースを調べるわけですね
骨が折れますね
大事なことを教えて頂き、ありがとうございます^^
しかし、右クリックでソースを調べることが出来ない場合はどうすればよいでしょうか?
799:名無しさん@お腹いっぱい。
09/01/26 00:00:03 o/KQMVrn0
>>798
opera使うといいよ
右クリック禁止抑制とかフレームのソースも簡単に拾える
俺も解析用に使った
今ではメイン
800:名無しさん@お腹いっぱい。
09/01/26 19:12:01 +wQJsntF0
なにからなにまでありがとうございます
試してみます
801:名無しさん@お腹いっぱい。
09/01/26 21:28:55 +wQJsntF0
InternetExplorer上で、操作したいページを表示した状態で、
IE = GETACTIVEOLEOBJ("InternetExplorer.Application", "Web航海時代" )
IESetData(IE,True,"point","3")
↑のようなコードを実行しても、なにも起きません
エラーは起きていないし、nameやvalueも間違っていないと思うのですが…
802:名無しさん@お腹いっぱい。
09/01/26 21:58:38 lqCZORip0
nameかvalueが間違ってるんだと思う
IESetDataの戻値を見て正常かエラーか見てみればいかが?
803:名無しさん@お腹いっぱい。
09/01/26 22:40:25 +wQJsntF0
<input type=radio name=point value="3">
↑ソースコードですが、name,value共にあっているかと…
804:名無しさん@お腹いっぱい。
09/01/27 03:31:42 i4vBvxWB0
志村ー!、ダブルクォーテーション!ダブルクォーテーション!
805:名無しさん@お腹いっぱい。
09/01/27 21:41:22 ko0WGgzz0
うぅ、、、ダブルクォーテーションまーくをつけたりとったりしてみましたが、エラーになりました><
806:名無しさん@お腹いっぱい。
09/01/27 21:51:17 i4vBvxWB0
<input type="radio" name="point" value="3">
これで行けるはずだけど、行けなかったらごめん、その時は他が間違ってると思う。
807:名無しさん@お腹いっぱい。
09/01/28 14:39:28 Di5rN0Wd0
色の判定をしてるのですが全然認識をしてくれません・・・
自分の環境に合わせてるつもりなのですが、どうすればBRG値をうまく範囲化できるのでしょうか><?
808:名無しさん@お腹いっぱい。
09/01/28 20:10:56 aP03qKyG0
>>806
わざわざありがとうございました^^
しかし、なにもかわらず…
色々やってみます。
809:名無しさん@お腹いっぱい。
09/01/28 20:42:55 aP03qKyG0
普段のIEの操作では実行できないページってあり得ますか?
例えば、私が操作しようとしているページは、そこのURLを直接打ち込んでもまっすぐ行けず
必ずホームに戻って、ホームから行きたいページのリンクをクリックしなければならないんですよ
ホーム→URLリンク(www9.plala.or.jp)
操作したいページ→URLリンク(www9.plala.or.jp)
※Operaだと、直接飛ぶことが出来ました
810:名無しさん@お腹いっぱい。
09/01/28 23:52:01 NvkvtEFN0
オンラインゲーム?
ならこのスレの上の方で散々書いてあると思うよ。
(それに当てはまるかどうかは知らない)
811:名無しさん@お腹いっぱい。
09/01/29 21:45:54 3VYUuVlD0
私は、ゲームの操作を自動化したいなとは考えていますが、特別なページ
殊に、上記のように、なぜURL直接入力では希望のページに飛べないの
か疑問に思った
だけです。
812:名無しさん@お腹いっぱい。
09/01/29 22:44:04 7CcxhBvcP
>>811
ソースを見ればすぐ分かると思うのですが・・・
Windows Script Encoderはもちろん知っていますよね?
IEでのみlocation.replaceがdecodeされるので別ページに遷移するのです。
これがuwscと一体どう関係あるのでしょうか?
813:名無しさん@お腹いっぱい。
09/01/30 03:55:44 OeBnpuaS0
>>812
横レスだが
おまいは常に人を馬鹿にしてないと生きていけない奴だなw 哀れw
814:名無しさん@お腹いっぱい。
09/01/30 04:18:35 SPXRBmP00
>>813
横レスとか言いつつ本人乙
815:名無しさん@お腹いっぱい。
09/01/30 04:25:19 OeBnpuaS0
>>814
横レスだといったろ?w
恥ずかしい奴だな おまいはw
816:名無しさん@お腹いっぱい。
09/01/30 05:00:06 3mlQ1XKW0
ここまで俺の自演
817:名無しさん@お腹いっぱい。
09/01/30 05:17:44 SPXRBmP00
>>815
単芝厨きもいです
818:名無しさん@お腹いっぱい。
09/01/30 21:23:01 AuYpJb6K0
と、ここまで俺の自演。
819:名無しさん@お腹いっぱい。
09/01/31 00:13:38 vsuJT7Qv0
集まってるおまえらよ、そろそろ散れよ。
820:811
09/02/01 06:29:15 KLbW2NFD0
すいません><よく知りません
821:名無しさん@お腹いっぱい。
09/02/01 12:52:27 w5ujQ7MM0
UWSCのスケジュールの設定で質問があります。
インターバルの設定が、1〜5分の設定と10分毎の設定などがあるのですが
7分や8分でのインターバルの設定は、どのようにしたら良いのでしょうか?
式による設定で式を入れれば良いのでしょうが
どんな式を入れればインターバルが7分や8分になるのか
わかりません。
ご教授頂ければと思います。
822:名無しさん@お腹いっぱい。
09/02/01 13:07:22 VbDhycHQ0
>>821
インターバルだけでよかったら
Interval_7min.uws かなんか作ってそこに
Call Main.uws
while true
main() //関数呼び出し
sleep(420) //7分
wend
これでいいんじゃない?
823:名無しさん@お腹いっぱい。
09/02/01 16:14:17 ZukW/kKt0
それだと、
7分 + main()処理
じゃん?
GETTIME使えばピッタシ!!
> 式による設定
> 自分で式を記述する事により細かな時間設定が決められます
> 使える変数
> YY (年)、MM (月)、DD (日)、HH (時)、NN (分)、YMDNN (2000年からの経過分)、WW (曜日:日曜=0,.....土曜=6)
> 注意:チェックは分単位でされます、分単位の設定(NN, YMDNN)を忘れずに
> 例)
> (WW=2) AND (HH=0 OR HH=12) AND (NN=0) // 火曜日の0時と12時
> (YMDNN mod 18)=0 // 18分間隔
7分 : (YMDNN mod 7)=0
8分 : (YMDNN mod 8)=0
1、YMDNN (2000年からの経過分)
2、modは割り算した余り
3、割り算して余りがゼロ
じゃまいのか?
824:名無しさん@お腹いっぱい。
09/02/01 16:17:37 ZukW/kKt0
4、式を希望する日時で”真”になるようにすればいい
たぶん・
825:名無しさん@お腹いっぱい。
09/02/01 16:59:54 v32FCtQy0
>>823
Gettimeの戻り値が秒だからそれ使うだけでいいよ
分とか見たら割り切れないし。
ニュースの記憶見るかガンダム見るか悩むが
やっぱりガンダム見る
826:名無しさん@お腹いっぱい。
09/02/01 19:06:26 ZukW/kKt0
???
SLEEPと、
Gettimeと、
スケジュール設定の式による設定
の3つのメリットデメリットを書いたんだけど。
>>分とか見たら割り切れないし。
って意味わかんないんだが、
何を意味した書き込みなんだ?
827:名無しさん@お腹いっぱい。
09/02/02 04:55:33 cpjbDFRd0
>>826
ああ、ごめん。
>YMDNN (2000年からの経過分)
これ知らんかった
828:名無しさん@お腹いっぱい。
09/02/02 13:10:24 yH09tKlS0
質問です
.vbsファイルをuwscで開くにはどのように記述すれば出来ますか?
exe以外のファイルの開き方が分からず、
今はクイック起動にショートカットを作成し、クリックして開くように記述しているので
直接開く方法があればご教授頂きたいです。
829:名無しさん@お腹いっぱい。
09/02/02 14:08:30 pdMh/tE90
doscmd("???.vbs")
830:名無しさん@お腹いっぱい。
09/02/02 14:30:06 yH09tKlS0
>>829
有り難う御座います。
ですが実行されませんでした
フルパスで""も付けたんですが…
OSはvistaなんですが関係無いですよね…
831:名無しさん@お腹いっぱい。
09/02/02 14:49:49 cpjbDFRd0
>>830
ショートカットのプロパティにリンク先っていうのがあるでしょ。
それをコマンドラインに入力したらいいんだけど。
コマンドプロンプトを開いて実行するか、
ファイル名を指定して実行(Vistaにあるかは知らないが)で、実行できるか試してみて。
832:名無しさん@お腹いっぱい。
09/02/02 15:05:20 yH09tKlS0
>>831
有り難う御座います。
先ほどuwscで動かなかったので、
コマンドプロントからも直接やってみましたが、
vbsは実行されてませんでした orz
833:rpaawnaw
09/02/02 15:07:51 2TLMPBOD0
qFqgve <a href="URLリンク(lycvakiqmpbn.com)">lycvakiqmpbn</a>, [url=URLリンク(gxsxjoosngmt.com) [link=URLリンク(ifsiyjjscezd.com) URLリンク(piuboesbpern.com)
834:名無しさん@お腹いっぱい。
09/02/02 15:11:57 pdMh/tE90
>>832
Vistaでも問題なくできるぞ
どんなエラーメッセージが出る?
835:名無しさん@お腹いっぱい。
09/02/02 15:21:46 yH09tKlS0
>>834
いえエラーは出ないんですが、
コマンドプロンプトに(フルパス).vbsをペーストしてEnterを押しても
動いた形跡が無いんですよね・・・
ただbatファイルをウインドウ非表示で実行させるだけの簡単な物なんですが
それとも何か必要な物が欠けているんでしょうか
普通にクリックしたときは動くんですが・・・
836:名無しさん@お腹いっぱい。
09/02/02 15:28:21 PVHBkFFR0
>>835
vbsのほうにメッセージボックスを1行入れてみたら?
837:名無しさん@お腹いっぱい。
09/02/02 15:49:30 yH09tKlS0
>>836
有り難う御座います。
色々調べてみて今、解決出来ました。
お騒がせしました。
838:名無しさん@お腹いっぱい。
09/02/02 19:05:09 Os9uDG+70
できれば、何が原因だったか教えてくれると有り難いとか思ってるのは俺だけかな?
初心者だからどういう時にそうなるのか気になる。
839:名無しさん@お腹いっぱい。
09/02/02 20:36:43 bbkYkSZI0
ブラウザを起動するときに最小化できませんか?
検索では、UWSC.exeのあるフォルダのUWSC.INIをメモ帳で開き、
StopForm=0 を StopForm=1 に変更して保存します。
とあったのですが、iniファイルがなく設定できませんでした。
キーボードからオルトとスペース、Nキーで最小化できるので
キー操作のスクリプトからできることはできるみたいですが
一回、表示されてからの対応になるのでできれば起動時から
できたらいいのですが。
840:名無しさん@お腹いっぱい。
09/02/02 21:07:48 yMTVVraI0
comでxmlhttpを使え。解決する。
他にも色々あるが、まぁ、とりあえず使ってみろ。
841:名無しさん@お腹いっぱい。
09/02/03 03:38:57 eeztqI130
>>839
UWSC.INI の StopForm キーの値は
スクリプト再生中に現れるフォームウィンドウを
表示するかしないかってやつじゃなかった?
最小化でアプリ起動ってのは API 関数の ShellExecute() を使う
HINSTANCE ShellExecute(
HWND hwnd, // 親ウィンドウのハンドル
LPCTSTR lpVerb, // 操作
LPCTSTR lpFile, // 操作対象のファイル
LPCTSTR lpParameters, // 操作のパラメータ
LPCTSTR lpDirectory, // 既定のディレクトリ
INT nShowCmd // 表示状態
);
ブラウザのパスは適宜変更してください
DEF_DLL ShellExecuteA(hwnd, string, string, string, string, int): dword: shell32.dll
CONST SW_SHOWMINIMIZED = 2
IFB ShellExecuteA(NULL, "open", "C:\Program Files\Internet Explorer\iexplore.exe", NULL, NULL, SW_SHOWMINIMIZED) < 32 THEN
MSGBOX("実行に失敗しました")
ENDIF
842:名無しさん@お腹いっぱい。
09/02/03 03:52:05 eeztqI130
>>841
すみません、比較式を間違えました
失敗時は 32 以下の値を返すので、正しくは以下です
IFB ShellExecuteA(NULL, "open", "C:\Program Files\Internet Explorer\iexplore.exe", NULL, NULL, SW_SHOWMINIMIZED) <= 32 THEN
MSGBOX("実行に失敗しました")
ENDIF
843:名無しさん@お腹いっぱい。
09/02/03 09:29:53 9ClBsfHO0
API 関数とかしりませんでした。
実際やってみたらブラウザは機動できました。
しかし、そこからの動作がされません。
指定のアドレスに移動するにはどうしたらいいのでしょうか?
DEF_DLL ShellExecuteA(hwnd, string, string, string, string, int): dword: shell32.dll
CONST SW_SHOWMINIMIZED = 2
IFB ShellExecuteA(NULL, "open", "C:\Program Files\Internet Explorer\iexplore.exe", NULL, NULL,
SW_SHOWMINIMIZED) <= 32 THEN
MSGBOX("実行に失敗しました")
ENDIF
IE = getactiveoleobj("internetexplorer.application")
IE.Visible = True
IE.Navigate("URL")
上記のような感じでやっています。アドバイスお願いします。
844:名無しさん@お腹いっぱい。
09/02/03 21:49:12 eeztqI130
>>843
起動と同時に URL に移動するには
ShellExecute() の第 4 引数に URL を渡します
なお、ProgID は大文字小文字を区別するので
正しくは『InternetExplorer.Application』です
また、以下のコードでも同じことができます
OPTION EXPLICIT
DIM url = "URLリンク(www.2ch.net)"
DIM ie = CREATEOLEOBJ("InternetExplorer.Application")
CTRLWIN(HNDTOID(ie.HWND), MIN)
ie.Visible = True
ie.Navigate(url)
845:名無しさん@お腹いっぱい。
09/02/04 12:53:58 m6en7Q5I0
uwscでIEを開いた後、そのIEで開いたHP内の文字データなどを
EXCELのセルに代入することはできますでしょうか?
846:名無しさん@お腹いっぱい。
09/02/04 13:05:01 tXqKlnWn0
できます
847:名無しさん@お腹いっぱい。
09/02/04 13:20:25 m6en7Q5I0
ありがとうございます
なんとかやってみます
848:名無しさん@お腹いっぱい。
09/02/04 19:46:29 MfK5WOxL0
>>844
勉強になります。ヘルプみたり過去の質問検索してみましたが、
あまり、APIとかのことが載ってないのね・・・
849:名無しさん@お腹いっぱい。
09/02/04 23:12:09 N1AZKeZ50
>>848
MSDN見たほうが手っ取り早い事が多いからなぁ?
850:名無しさん@お腹いっぱい。
09/02/06 12:59:57 hPEtxwon0
A = "●●"と言った感じのものを20ぐらいあるとしてそれを順に
送信しようと頑張っています。ちなみに一個だけならなんとかなる
のですが、複数だとどうしてもコードがいっぱいになってしまします。
IESetData(IE,A,"kakikaki")
id = getid("internet explorer")
clkitem(id,"ボタン",CLK_ACC,CLK_BACK)
sleep(15)
これが、そのコードなのですが、Aのところに複数の文字を順に設定
できたらと思っています。よろしくおねがいします。
851:名無しさん@お腹いっぱい。
09/02/06 15:36:29 q6mgGLtH0
A[0] = "●●"
A[1] = "○○"
FOR i = 0 TO 20 - 1
IESetData(IE,A[i],"kakikaki")
id = getid("internet explorer")
clkitem(id,"ボタン",CLK_ACC,CLK_BACK)
sleep(15)
NEXT
これでいいじゃん
852:名無しさん@お腹いっぱい。
09/02/06 16:05:23 BBz1+Wne0
レスどうも。m(_ _)m
実際に実行してみたら下記のようなエラーがでました。
Uスクリプト: 変数: A 配列をオーバーしてます
8行目:A[1] = "●●"
こんなエラーがでます。A[0]は、大丈夫みたいです。
なんでだろう?なにかわかりましたら詳細お願いします。
853:名無しさん@お腹いっぱい。
09/02/06 16:32:11 1eXzPAIO0
dim a[19]= "●●","○○","△△","▲▲",・・・・・(20個記述)
"とりあえず1から10まで聞いとけ"という性格が羨ましいと思うようになったこの頃。('A`)
854:名無しさん@お腹いっぱい。
09/02/06 17:44:09 BBz1+Wne0
うまくいきました。m(_ _)m
なぜ、前にやつはエラーがでたのかしら?
原因が分からない。
855:名無しさん@お腹いっぱい。
09/02/06 18:42:36 q6mgGLtH0
変数の定義、宣言と
変数への値の代入という
二つの違いを理解してないから
856:名無しさん@お腹いっぱい。
09/02/07 03:18:07 vXpPMDOu0
前から疑問だったけど、聞けなかったこと。
>>841のshellexecuteのnShowCmd。msdn等を見ると記述順番は
SW_HIDE, SW_MAXIMIZE, SW_MINIMIZE, SW_SHOW ・・・
で順番違うじゃない? この定数はどこで判別するんでしょ?
どなたか解説してくれないかな…
857:名無しさん@お腹いっぱい。
09/02/07 09:37:19 xlfhJ7RV0
>>856
Windows Platform SDK の WinUser.h で定義されてます
ドキュメントの値は、記号定数名でソートされてるようです
CONST SW_HIDE = 0
CONST SW_MAXIMIZE = 3
CONST SW_MINIMIZE = 6
CONST SW_RESTORE = 9
CONST SW_SHOW = 5
CONST SW_SHOWDEFAULT = 10
CONST SW_SHOWMAXIMIZED = 3
CONST SW_SHOWMINIMIZED = 2
CONST SW_SHOWMINNOACTIVE = 7
CONST SW_SHOWNA = 8
CONST SW_SHOWNOACTIVATE = 4
CONST SW_SHOWNORMAL = 1
858:名無しさん@お腹いっぱい。
09/02/07 11:36:45 l5adthQH0
>>857
回答ありがとう!見つけられました。
これ、目的の記述部分を捜すのは適当な属性値をGrepで捜すくらい
しか思いつかなかったのですが、(ちゃんと順を追ってじゃなく、
あくまでdef_dllのためだけという意味)他に良い方法ありますでしょうか?
重ね重ねで恐縮ですが、もし知恵があれば教えてくださいませ。
859:名無しさん@お腹いっぱい。
09/02/07 20:34:24 TsGY9ahZ0
BMP画像(100x100)からUWSCを使ってRGB値をテキスト出力するにはどうすればよろしいでしょうか?
860:名無しさん@お腹いっぱい。
09/02/08 00:47:32 fB3ojcA60
色情報を取得してそれをファイルに書き出せばいいのではないでしょうか
861:名無しさん@お腹いっぱい。
09/02/08 07:22:53 QoTANPZk0
>>858
大抵の IDE はシンボルの定義部にジャンプする機能があるけど
確認のためだけに起動するのは避けたいので
俺は grep してます
862:858
09/02/08 18:05:42 iaalqOSe0
>>861
ナルホド〜。
ひとつ賢くなりました。多謝。
863:名無しさん@お腹いっぱい。
09/02/08 22:31:33 dNKbKAR9O
いくつかの画像のサンプルがあって、指定したウィンドウ内からその画像を書いた順番で探す。
合ったら処理抜け、なかったら次の画像探し
最終的にどれもなかったらまた処理抜けってのをがんばってやろうとしてるんだけどどーすりゃいいのかな
いちいちifbで探してなかったらbreakみたいにやらんとダメ?
もーちょいスマートにやれないかな
864:名無しさん@お腹いっぱい。
09/02/08 23:45:58 vASK790PO
日本語でおk
865:名無しさん@お腹いっぱい。
09/02/08 23:51:13 SXOT3GUb0
例えば test test1 test2 って画像があって
どれかがヒットしたらその画像をクリックってことやらせたい場合
ifb chkimg (test.bmp) = true then
mmv(g_img_x, g_img_y)
sleep(1)
endif
ifb chkimg (test1.bmp) = true then
mmv(g_img_x, g_img_y)
sleep(1)
endif
ifb chkimg (test2.bmp) = true then
mmv(g_img_x, g_img_y)
sleep(1)
else
break
endif
↑よりもスマートってか効率的な書き方があるのかなってこと
866:名無しさん@お腹いっぱい。
09/02/08 23:55:43 3bfozRlh0
ifb chkimg (test.bmp) OR chkimg (test1.bmp) OR chkimg (test2.bmp) then
mmv(g_img_x, g_img_y)
sleep(1)
endif
867:名無しさん@お腹いっぱい。
09/02/09 00:20:04 wdWGM0TOP
日本語でおk
こういう意味?私はスマートという日本語を知りません
DIM bmp[]="test","test1","test2"
for n=0 to length(bmp)-1
ifb chkimg(bmp[n]+".bmp") = true then
mmv(g_img_x, g_img_y)
sleep(1)
break
endif
next
868:名無しさん@お腹いっぱい。
09/02/09 00:34:17 fwfzfodA0
867のをかきかえてみると
DIM bmp[5]="Garnet","Star sapphire","Topaz","Spinel","Emerald"
for n=0 to length(bmp)-1
ifb chkimg(".\image\"bmp[n]+".bmp") = true then
mmv(g_img_x, g_img_y)
sleep(1)
break
endif
next
こうなったんだけど式違うって怒鳴られました・・・
869:名無しさん@お腹いっぱい。
09/02/09 12:18:39 wdWGM0TOP
パソコンに同情するわ
870:名無しさん@お腹いっぱい。
09/02/09 16:18:53 5wLvS0Ft0
".\image\"bmp[n]+".bmp" ×
".\image\" + bmp[n] + ".bmp" ○
ちゃんとスペース入れないから間違うんだ
871:名無しさん@お腹いっぱい。
09/02/10 14:57:33 ldVPkdsr0
特定の文字を含むアドレスを抽出しそれを順々に周っていくという
のを作っています。
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("URLリンク(www.yahoo.co.jp)<)●●[A]", IE.document.links[A].href) > 0
IE2 = GETACTIVEOLEOBJ("InternetExplorer.Application")
IE2.visible = True
IE2.navigate(IE.document.links[A].href)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
ENDIF
NEXT
IE.QUIT
[A]のところは毎回違います。これでやると順々に周ってくれません。
フリーズさえしないもののページを読み込むのが終了せずそのままに
なります。
実行したときには、"URLリンク(www.)●●[A]"←この部分はちゃんとしたアドレス
になっています。
872:名無しさん@お腹いっぱい。
09/02/10 16:02:10 HCMc1CKn0
>>871
>IE2 = GETACTIVEOLEOBJ(
これってIEを起動していないと、オブジェクトIEとオブジェクトIE2は同じものになるよね。
で、元のIEで他のページ開いちゃったら、IE.document.linksが無効になっちゃうんじゃないかな。
というか最初にとったIE.document.links.lengthとページが切り替わったあとのやつとでつじつまが合わなくなってちゃんと動かないはず。
特にUWSCのFOR分は、ループに入ったら回数固定だから、その辺が変動しないようにきっちりやらないと。
873:名無しさん@お腹いっぱい。
09/02/10 16:11:49 ldVPkdsr0
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
これが参考にしたソースなのですが、871は私が色々やってるやつです。
上記のソースだとそれぞれブラウザで開くということになってしまいます。
表示されたページで特定の語句が含まれるアドレスをゲットして
それをもう一つ起動したブラウザで順に巡回するというのでもいいのですが。
874:名無しさん@お腹いっぱい。
09/02/10 16:54:12 HCMc1CKn0
>>873
2つ目をCreateしてれば問題ないけど、
1つ目に上書きするとだめなんですよ。
Getするということは、確率的に1つ目を取得することになります。
他の窓がない場合は100%1つ目の窓を取得します。
どうしても1つ目の窓でやりたければ、
Navigateする前にlinksを全部配列にコピーしておかないと駄目です。
ループすると次々に窓を起動するのでいやだということなら、
ループに入る前にあらかじめ2つ目をCreateしておけばいいんです。
そもそも参考にしたソースは実用的な動作じゃありません。
ただ、Navigateした後に待ちを入れていないので、スクリプトの動作は快適で安定するでしょう。
875:名無しさん@お腹いっぱい。
09/02/10 17:15:37 ldVPkdsr0
とりあえず
>ループに入る前にあらかじめ2つ目をCreateしておけばいいんです。
この手法をお願いします。できれば配列にコピーというのもお願いします。
876:名無しさん@お腹いっぱい。
09/02/10 17:54:36 HCMc1CKn0
>>875
まずは2つ起動
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("URLリンク(www.yahoo.co.jp)<)●●[A]", IE.document.links[A].href) > 0 Then
IE2.navigate(IE.document.links[A].href)
REPEAT
SLEEP(0.1)
UNTIL !IE2.BUSY AND IE2.READYSTATE = 4
ENDIF
NEXT
IE.QUIT
IE2.QUIT
if 〜 Then
REPEAT 〜 UNTIL
ThenとREPEATが抜けてました
あと、IE2でNavigateしたのに待ちループではIEになってました。
インデント(頭の空白)入れないとそういうところのミスが発見できません。
877:名無しさん@お腹いっぱい。
09/02/10 18:23:31 ldVPkdsr0
正直、わからないです。
質問が悪かったのかしら・・・
1、指定ページに移動
2、特定の文字を含むアドレスをゲット
3、ゲットしたアドレスを順に表示(IE2でも可)
この動作なんだけどなー。うーむ。
878:名無しさん@お腹いっぱい。
09/02/10 18:43:10 HCMc1CKn0
>>875
配列を使うやつ
DIM リンク[]="ダミーデータ"
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("URLリンク(www.yahoo.co.jp)<)●●[A]", IE.document.links[A].href) > 0 Then
リンク[length(リンク) - 1] = IE.document.links[A].href
resize(リンク, length(リンク))
ENDIF
NEXT
KAISU = length(リンク) - 1 // 配列の最後尾は空欄
FOR A = 0 TO (KAISU - 1)
IE.navigate(リンク[A])
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
NEXT
IE.QUIT
879:名無しさん@お腹いっぱい。
09/02/10 18:51:38 HCMc1CKn0
>>878の補足
リンクの選別を最初のループでやってるので、2回目のループは無条件に処理できる。
ループ回数が違っているのも要チェック。
配列がちょっとややこしいやり方だけど、カウンタが2つ以上になってもややこしいのでこういうやり方してます。
リンク[length(リンク) - 1]は、リンクっていう配列の最後尾を意味します。
resize(リンク, length(リンク))は、配列を一つ増やします。
上記2行により、最後尾にデータを追加するたびに配列を増やし、常に最後尾をあけておきます。
ちなみに、最初に配列数を0にしておけばごみがでないように思われますが、
最小配列サイズが1なので、どうしてもごみが入ります。
また、最初の1回で隙間をなくそうとすると、ループの処理がおかしくなります。
>>877
おいおい
1、指定ページに移動 は、IE.Navigateだし
2、特定の文字を含むアドレスをゲット は、
POS("URLリンク(www.)●●", IE.document.links[A].href) > 0
の条件を満たすときの IE.document.links[A].href だし
3、ゲットしたアドレスを順に表示(IE2でも可) は、
ループの中でIE.Navigateですよ
これ以上丁寧に教えるのは無理。
ヘルプとサンプルをじっくり見てください。
1行ずつ実行してみるのもいい手。
僕は実験のファイルが70くらいたまってる。
880:名無しさん@お腹いっぱい。
09/02/10 20:47:55 ldVPkdsr0
お手間をかけます。m(_ _)m
実際に実行してみたのですが、両方駄目でした。
エラーは出ませんが、最初のヤフーページが読み込み中になりそれ以後が進みません。
難しいわぁ〜('A`)
881:名無しさん@お腹いっぱい。
09/02/10 21:20:46 HCMc1CKn0
>>880
とりあえずそのままuwsファイルに書き込んで起動したら、IEは自動的に終了した。
読み込み中で止まるって?
IEの設定の問題かな?
>>876のやつの POS("URLリンク(www.)●●", IE.document.links[A].href) を
POS(".html", IE.document.links[A].href) に書き換えたらばんばん開くんですけど。
POS(”www”, IE.document.links[A].href) で試したらファイルのダウンロードが動いてCOMエラーになったけどさ。
IEのバージョンでも違うのかもしれないけど、IE6ではしっかり動きました。
ちなみに僕が使ってるのはちょっと古いバージョン。
4.4.2.4のやつ
882:名無しさん@お腹いっぱい。
09/02/10 23:15:08 d1Cz2CKr0
ちと教えてくれい。
JscriptのSort関数ってUWSCで扱えるかしら?
連想配列のソートを使って凌いでしまったんだけど、
もし使えるようなら、そのうち、ちゃんとw悩んでみようかと思って…。
883:名無しさん@お腹いっぱい。
09/02/11 00:17:02 HuYbgfa/0
>>882
無理じゃね?
そういうCOMオブジェクトがあるとも思えない。
DLLの場合は配列を渡せればいけるかもしれない。
と思ったけど、データベース使えばSortできるっぽいね。
テーブル作るのめんどくさそうだけど。
884:名無しさん@お腹いっぱい。
09/02/11 01:07:21 kWARHqJn0
>>883
レスサンクス。
時間掛けずにヨカッタw
885:名無しさん@お腹いっぱい。
09/02/13 14:30:03 3ZWIkmUk0
com操作から指定の同じ画像が2枚以上あるかどうかのチェックを
するスクリプトを作っています。
<img alt="画像" src="/img/member/status_01.gif?1234414294" />
これがそのソースなのですが、altの画像の個数でもおkです。とにかく2個以上
あったらメッセージボックスで知らせてくれるみたいなのができたらと思っています。
886:名無しさん@お腹いっぱい。
09/02/13 15:36:56 yfzZRrrS0
そうですか
887:名無しさん@お腹いっぱい。
09/02/13 16:29:22 mUOb2ZH60
>>885
一致するやつの個数を数えるだけですよね
888:名無しさん@お腹いっぱい。
09/02/13 16:31:07 3ZWIkmUk0
>>887
画像があるかどうかというのはできると思うのですが、同じ画像が2枚あるかどうか
となるとちょっと私のスキルでは難しいので訊いて見ました。
数を数えなおかつメッセージボックスなどで同じ画像が2つ以上あると知らせてくれる
というものです。
889:名無しさん@お腹いっぱい。
09/02/13 16:39:01 mUOb2ZH60
>>888
cnt = 0
while 全部処理
ifb 画像一致 then
cnt = cnt + 1
eneif
wend
ifb 2 <= cnt then
MsgBox()
endif
890:名無しさん@お腹いっぱい。
09/02/13 17:35:13 3ZWIkmUk0
メモリが・・・というエラーがでる。
今、他の手法でやってますが、IE.document.body.innerHTMLで
画像で使われてる文字の数というので判断しようとしています。
一つだけの場合、ちゃんとうまくいきました。しかし上記のやつをすこし
変えてやってみましたが駄目でした。
891:名無しさん@お腹いっぱい。
09/02/13 17:43:52 Ro94SGUQ0
情報を小出しにするのはやめてください。
チャットじゃないので整理してまとめてから書き込んでください
892:名無しさん@お腹いっぱい。
09/02/13 18:00:45 3ZWIkmUk0
str = "UWSC"
ifb pos(str, IE.document.body.innerHTML) then
MsgBox("あるよ")
endif
画像でエラーが出るので上記のやつで挑戦してます。
HTMLにUWSCという語句が2つ以上あればメッセージ
ボックスにあるよと表示されるというものです。
ひとつでは成功しています。
893:名無しさん@お腹いっぱい。
09/02/13 18:30:14 mUOb2ZH60
>>892
だから>>889のとおりにやれよと。
str = "UWSC"
cnt = 0
while 全部処理
ifb pos(str, IE.document.body.innerHTML) then
cnt = cnt + 1
eneif
wend
ifb 2 <= cnt then
MsgBox("あるよ")
else
MsgBox("ないよ")
endif
894:名無しさん@お腹いっぱい。
09/02/13 18:34:04 3ZWIkmUk0
全部処理についてkwskm(_ _)m
895:名無しさん@お腹いっぱい。
09/02/13 18:40:58 mUOb2ZH60
>>893はミス
str = "UWSC"
ifb pos(str, IE.document.body.innerHTML, 2) then
MsgBox("あるよ")
eneif
posは個数指定があるからループしなくてよかった。
ループする必要があるのは、前から順に1こずつ検索する場合。
>>894
全部とは、IE.document.body.innerHTMLの1文字目から最後まで処理する条件ってこと。
つまり、ループに入る前に
src = IE.document.body.innerHTML
として文字列を取得し、見つかるたびに読み進めていく。
tokn() を使って1行ずつ処理する場合とか
IEGetSrc( IE, タグ名, [番号] ) で、番号を順に指定して取得する場合とか。
BodyのHTML全部取得してPosで個数まで数えるならループはいらない。
896:名無しさん@お腹いっぱい。
09/02/13 18:44:29 mUOb2ZH60
見落とすかもしれないからもう一度書くけど、
pos()の3番目に2って指定すれば、2個目の位置を調べてくれる。
つまり、2個目があるかないかはPos()一回でわかる。
だからこれだけで完成
str = "UWSC"
ifb pos(str, IE.document.body.innerHTML, 2) then
MsgBox("あるよ")
eneif
897:名無しさん@お腹いっぱい。
09/02/13 18:45:01 3ZWIkmUk0
詳しい説明どうも。
しかし、みんなどこで勉強してるんですか?
とりあえず、UWSCの掲示板とマクロテクニックという本、
検索などでやってますが、なかなか目的の回答にたどり
つけないことも多く、時間ばかりがかかってしまいます。
このスクリプトだってもう何時間も費やしていますからね・・・
898:名無しさん@お腹いっぱい。
09/02/13 19:03:33 mUOb2ZH60
大事なのは情報の探し方。
探すためのキーワードはマニュアルを順番に読んで探し出す。
UWSCは覚えることは少ないほうだし、ヘルプにまとまっているからヘルプを見る。
基本の使い方はサンプルコードを探す。
で、一つ一つの細かい使い方は、それを確認するためのサンプルコードを自分で書く。
公開されたツールを使うのも手。
あとはテクニックを覚えて応用していく。
if Pos() then で、存在チェックするというのもテクニックのひとつ。
Pos() は文字列の位置を返すだけだけど、取りうる値が1以上になるのでそういう使い方ができる。
if 文が、0か0以外という判断基準だからできることだけど、
それを知ってればほかの関数でもそういう使い方ができるかどうか判断できるわけ。
899:名無しさん@お腹いっぱい。
09/02/13 19:14:00 6zXjaVj00
俺個人の意見だと、そういう書き方は好きじゃないし人にも勧めないな…
900:名無しさん@お腹いっぱい。
09/02/14 03:00:48 lbAzgdO20
>>897
とりあえずnotepad以外のエディタを用意して文字列ハイライト&F1key(大体のエディタがそうだと思う)
でHelpファイルの項目にジャンプできるようにする。
その後、Helpファイルのサンプル、ネットに挙がっている短目のサンプルをコピペ。
エディタのショートカットKeyからサンプルを実行して結果を見たうえで、関数等を理解。
自分はこんな感じかな?
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4860日前に更新/335 KB
担当:undef