UWSCのスクリプトをAutoitに書き換えてみます。
UWSCサンプルコード参考サイト:
UWSC : 少し修正 SAMPLE10:リンク先をすべて別ウィンドウで開く
コードの説明:IEでYahooを開きリンクの数を調べます。その中から「https://news.yahoo.co.jp」で始まるNewsリンクを5個自動で開きます。
元のコードだと170近くWindowが立ち上がってしまいます、ウィルスと間違えてしまいます。
//SAMPLE10:リンク先をすべて別ウィンドウで開く //http://class.2kki.com/uwsc/#sample10 maxOpen=5 //リンク最大表示数 172も開いたら、大変 IE = CREATEOLEOBJ("InternetExplorer.Application") IE.visible = True IE.navigate("http://www.yahoo.co.jp") REPEAT SLEEP(0.1) UNTIL !IE.BUSY AND IE.READYSTATE = 4 KAISU = IE.document.links.length //Linkの総数 cnt = 0 FOR A = 0 TO (KAISU - 1) IFB POS("https://news.yahoo.co.jp", IE.document.links[A].href) > 0 IE2 = CREATEOLEOBJ("InternetExplorer.Application") IE2.visible = True IE2.navigate(IE.document.links[A].href) cnt = cnt + 1 If cnt=maxOpen then break //For から出る ENDIF NEXT msgbox(KAISU) IE.QUIT // IE 終了 IE2は残る
Autoitに変換
(1)変数の前に$をつける(Autoitの変数は$で始まります)
(2)コメント行は//から;に変える
(3)If文には必ずThenが必要
(4)POS() >> StringInStr() 文字列の順序逆
(5)break >> ExitLoop
(6)その他細かいこといろいろ
#include <IE.au3> $maxOpen=5 ;リンク最大表示数 172も開いたら、大変 $IE = _IECreate("http://www.yahoo.co.jp") ;IE でYahoo開く _IELoadWait($IE);IE load待つ $oLinks = _IELinkGetCollection($IE) ;Linkの総数 $kaisu = @extended $cnt = 0 For $oLink In $oLinks If StringInStr ($oLink.href, "https://news.yahoo.co.jp") > 0 Then $IE2 = _IECreate($oLink.href) ;IE2 でリンク開く $cnt = $cnt + 1 If $cnt=$maxOpen then ExitLoop ;For から出る EndIf EndIf NEXT msgbox("","",$kaisu) _IEQuit($IE) ; $IE 終了 $IE2は残る
.
コメント