UWSC >> Autoitに変換 (1): リンク先をIEで開く

Autoitに変換

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

.

コメント

タイトルとURLをコピーしました