HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
1014
ますユーザーエージェントの変更について2未解決


ます

リンク

2007/10/14(Sun) 20:15:46|NO.11644


#uselib "urlmon.dll" #func UrlMkSetSessionOption "UrlMkSetSessionOption" int, sptr, int, int #uselib "user32" #cfunc CreateMenu "CreateMenu" #cfunc CreatePopupMenu "CreatePopupMenu" #func AppendMenu "AppendMenuA" int, int, int, str #func SetMenu "SetMenu" int, int #cfunc EnableMenuItem "EnableMenuItem" int, int, int #func DrawMenuBar "DrawMenuBar" int #func CheckMenuItem "CheckMenuItem" int, int, int #func CheckMenuRadioItem "CheckMenuRadioItem" int, int, int, int, int gsel 0,-1 screen 2 #define URLMON_OPTION_USERAGENT 0x10000001 #define URLMON_OPTION_USERAGENT_REFRESH 0x10000002 #define setUs(%1) szAgent=%1:UrlMkSetSessionOption URLMON_OPTION_USERAGENT, szAgent, strlen(szAgent), 1 szAgent = "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)" //ユーザーエージェント文字列 #enum FILE_QUIT = 1 #enum SEL_ST = $FF #enum SEL_IE7 #enum SEL_TO_OS #enum OS_WIN95 #enum OS_WIN98 #enum OS_WIN20 #enum OS_WINXP #enum OS_WINVS #enum OS_MAC #enum OS_END dim Menu,6 Menu.5 = CreatePopupMenu() AppendMenu Menu.5,$1,0,"---Windows---" AppendMenu Menu.5,0,OS_WIN95,"Windows 95" AppendMenu Menu.5,0,OS_WIN98,"Windows 98" AppendMenu Menu.5,0,OS_WIN20,"Windows 2000" AppendMenu Menu.5,0,OS_WINXP,"Windows XP" AppendMenu Menu.5,0,OS_WINVS,"Windows Vista" AppendMenu Menu.5,$1,0,"---Macintosh---" AppendMenu Menu.5,0,OS_MAC,"&Macintosh" Menu.2 = CreatePopupMenu() AppendMenu Menu.2,$1,0,"---ブラウザ---" AppendMenu Menu.2,0,SEL_IE7,"Internet Explorer &7" Menu.4 = CreatePopupMenu() AppendMenu Menu.4,$10,Menu.2,"ブラウザ" AppendMenu Menu.4,$10,Menu.5,"OS" Menu.1 = CreatePopupMenu() AppendMenu Menu.1,0,FILE_QUIT,"終了(&Q)" Menu.0 = CreateMenu() AppendMenu Menu.0,$10,Menu.1,"ファイル(&F)" ;「ファイル」 AppendMenu Menu.0,$10,Menu.4,"選択" CheckMenuRadioItem Menu.2, SEL_ST+1, SEL_TO_OS-1, SEL_IE6, $100 SetMenu hwnd,Menu.0 DrawMenuBar hwnd ; メニュー項目を選択したとき (WM_COMMANDメッセージ) oncmd gosub *jump, $111 axobj ie, "Shell.Explorer.2" ;IEコンポネート設置 UrlMkSetSessionOption URLMON_OPTION_USERAGENT, szAgent, strlen(szAgent), 0 os = OS_WINXP url = "http://taruo.net/e/?" // 診断君 ie->"Navigate" url ;変更しない title "Windows XP" stop *jump if lparam!0:return wid=wparam&$FFFF if wid=FILE_QUIT:end if wid>SEL_TO_OS and wid<OS_END{ switch wid case OS_WIN95:title "Windows 95":swbreak case OS_WIN98:title "Windows 98":swbreak case OS_WIN20:title "Windows 2000":swbreak case OS_WINXP:title "Windows XP":swbreak case OS_WINVS:title "Windows Vista":swbreak case OS_MAC :title "Macintosh":swbreak swend os = wid } if wid>SEL_ST and wid<SEL_TO_OS{ CheckMenuRadioItem Menu.2, SEL_ST+1, SEL_TO_OS-1, wid, $100 switch wid case SEL_IE7 switch os case OS_MAC :setUS "Mozilla/4.0 (compatible; MSIE 7.0; Mac_PowerPC)":swbreak case OS_WIN95:setUs "Mozilla/4.0 (compatible; MSIE 7.0; Windows 95)":swbreak case OS_WIN98:setUs "Mozilla/4.0 (compatible; MSIE 7.0; Windows 98)":swbreak case OS_WIN20:setUs "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.0)":swbreak case OS_WINXP:setUs "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1)":swbreak case OS_WINVS:setUs "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SV1)":swbreak default:setUS "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT)":swbreak swend swbreak swend } return
上記は、過去ログを参考にして作った上のメニューでブラウザの種類を選択すれば
ユーザーエージェントをそれに対応したものに変えるスクリプトです(一部省略してあります)。
しかし、メニューで選択してから右クリックメニューで更新してもユーザーエージェントに変化がありません。
どうすれば正しく機能するようになるのでしょうか?
よろしくお願いします。



この記事に返信する


pizza

リンク

2007/10/16(Tue) 01:57:22|NO.11672

INI等のファイルにユーザーエージェントを保存して、
ブラウザの再起動後に反映させる方法をお勧めします。



プロセスを一度終了させずに反映させるには↓


IEを埋め込むためのCOMオブジェクト(コンテナ?ホスト?)内の
IDispatchの実装でInvokeメソッドにDISPID_AMBIENT_USERAGENT(-5513)が来た時に
pVarResultにBSTR(VT_BSTR)でユーザーエージェントを返すようにしておいて、
pVarResultに返す文字列を変更後にIEのオブジェクトの
IOleControl::OnAmbientPropertyChangeの引数にDISPID_AMBIENT_USERAGENTを
指定して使ってください。

Cで試したら出来たので一応書いておきますが、
HSPでの方法はわかりません。



Juan

リンク

2008/2/16(Sat) 19:16:34|NO.13586




ONION software Copyright 1997-2023(c) All rights reserved.