

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は残る
.



コメント