スポンサーリンク

UWSCで「F12 IE開発者ツール」を自動操作し,ブラウザに任意のユーザエージェント文字列を設定するサンプルコード

UWSCマクロでIEを自動操作する際に,「開発者ツール」を自動操作し,

自由にユーザエージェント文字列を設定してみよう。

UWSCサンプルコード

//
//  UWSCマクロでIEを自動操作するサンプルコード
//


// ----- 設定項目 -----


// アクセス先のURL
target_url = "http://www.ugtop.com/spill.shtml";

// セットしたいUserAgent文字列
my_user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 9_0_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13A404 Safari/601.1"


// ----- IE初期化 -----


// IEを起動
ie = createOLEobj("InternetExplorer.Application")

// 起動中のIEを見えるように
ie.visible = True

// 初期ページへ
ie.Navigate( "https://www.google.co.jp/webhp?hl=ja" )
ie_wait( ie )

// 位置調整(左上)
window_id = HNDtoID( ie.hwnd )
ACW( window_id, 0, 0 )

// ブラウザの画面を最大化
CtrlWin( window_id, MAX )


// ----- UAをセット -----


// 開発者ツールを起動
kbd( VK_F12 )
sleep( 10 ) // 起動完了まで待つ

// 「エミュレーション」タブを開く
sckey( window_id, VK_CTRL, VK_8 ) // ctrl + 8
sleep( 6 )

// Shift + TABを何度も押して
// ユーザエージェント文字列のプルダウンにフォーカス
for i = 1 to 17
	sckey( window_id, VK_SHIFT, VK_TAB )
	sleep( 0.8 )
next
	// TABのみを押す方法だと
	// 回数が4回または5回で変動してしまうので

// プルダウンを開く
kbd( VK_SPACE )
sleep( 1 )

// ENDキーを押して,プルダウンの末尾にある
// 「カスタム」を選択状態にする
kbd( VK_END )
sleep( 1 )
	// プルダウンの中身の個数は変わるので
	// したキーを繰り返し押すという方法は使えない

// カスタムで決定
kbd( VK_ENTER )
sleep( 1 )

// カスタム文字列にフォーカスして, 独自のUAを入力
kbd( VK_TAB )
sleep( 1 )
sendstr( window_id, my_user_agent )
sleep( 1 )
kbd( VK_ENTER )
sleep( 1 )

// UA設定終わり


// ----- UAが変わっていることを確認 -----


// URLにジャンプ
ie.Navigate( target_url )
ie_wait( ie )


// UA検査用のページにアクセスすれば
// アクセスしたページ上にUAが表示される。


msgbox( "処理が終了" )


// ----- ルーチン -----


// IEがビジー状態の間待ちます
procedure ie_wait( ie )
  repeat
    sleep( 0.1 )
  until ( ! ie.busy ) and ( ie.readystate = 4 )
  
  sleep( 0.2 )
fend

※うまく動作しない場合は,Sleepの待ち時間を延ばしてみよう。

実行結果

上記のコードを実行すると,IEが立ち上がり,開発者ツールが操作される。

UAとしてiPhoneのユーザエージェント文字列を設定している。


そこから,ブラウザ情報を確認できる「確認くん」のページへ遷移。

UA偽装に成功したので,OSは「iOS」と認識されている。


動作結果の証拠画像:

f:id:TipsMemo:20151213180523p:plain

確認くん
http://www.ugtop.com/spill.shtml


参考資料

IEの開発者ツールからUAを変える手順:

歌うキツネ : Internet Explorer 11/10/9のユーザーエージェントを変更(偽装)する
http://utaukitune.ldblog.jp/archives/...

  • 任意のユーザーエージェントを設定する場合
  • ユーザーエージェント文字列 > [カスタム] をクリックする
  • カスタム文字列 にユーザーエージェントを入力し, [Enter]キー を押す。Webページが再読み込みされる


How to Change Your Browser’s User Agent Without Installing Any Extensions
http://www.howtogeek.com/113439/how-t...

  • Internet Explorer also has a user agent option in its developer tools.
  • To open them, press F12 or select the F12 developer tools option from Internet Explorer’s Tools menu.


IEのUAは,Windowsのレジストリに格納されている。

しかしレジストリの値を改変するのはとても危険なのでできない。


そのため,ブラウザにアドオンをインストールしてUAを設定するという手段もある。

開発者ツールを使わなくて済ませるためにはアドオンが役立つだろう。

hidden - Internet Explorer の User agent の話
http://nostalgia.xii.jp/hidden.vc/201...

  • IE の UA はレジストリに保存されています。
    • しかし、UA の文字列がそのまま一部分にあるわけではなく、バラバラになっているので, 直接編集するのは困難で危険
  • そこで、私は IE7Pro を使って UA を偽装する形にしています。


Internet Explorerブラウザのユーザーエージェントを変更する方法 《UA偽装》 - Let's Emu!
http://www.geocities.co.jp/Playtown-Y...

  • F12 開発ツールはWindows XP対応のIE8(バージョン8)にも用意されてるけれど、ユーザーエージェントの切り替え機能は実装されてない
    • Windowsのレジストリをいじらないといけない
  • なので,IE9やIE10でも利用できる無料アドオンを導入する方法もあります


UWSCのコーディングの参考にしたページ:

文字列の送信 | UWSC コバヤシ式
http://canal22.org/gyaku/sendstr-2/

  • SENDSTR( ウィンドウID, 文字列, [番号, 送信モードフラグ, ACC指定] )


仮想キーコード
http://www.comrade.co.jp/ftp/pg1/manu...

  • 各種キー操作を自動化するための,シンボリック変数名の一覧表


このエントリは,下記の質問への回答として執筆しました。

UWSCにてIELINK関数でクリックする際にUAをセットする方法を教え…
http://q.hatena.ne.jp/1449831863