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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0606
エイトnetproxyをIEコンポーネントで使いたい2解決


エイト

リンク

2012/6/6(Wed) 19:04:03|NO.47050


#include "hspinet.as" netinit netproxy "79.140.105.122",80,1 axobj IE,"Shell.Explorer.2",ginfo(12),300 IE->"Navigate" "http://checkip.dyndns.org/" stop

題名の通り、IEコンポーネントでの接続を、プロキシ経由にしたいです。
ソースを実行しても、IPは変わっていませんでした。



この記事に返信する


リンク

2012/6/6(Wed) 20:29:03|NO.47051

netproxyはhspinet内の設定です、IEコンポーネントの方には影響がありません。

本来ならばIEコンポーネントの方に設定用のメソッドがある筈なんですが、無いようなので少しズルをする必要があるようです。
(IEのCOMはhttp://msdn.microsoft.com/en-us/library/aa752127を参照。)

以下、http://www.jurabi.jp/blog/2011/02/1027を参考。


#module #uselib "wininet.dll" #func InternetSetOption "InternetSetOptionA" int,int,int,int #deffunc set_inet_proxy str proxy, str bypass dim ipi, 3// INTERNET_PROXY_INFO用 ipi(0) = 3// INTERNET_OPEN_TYPE_PROXY prxStr = proxy : ipi(1) = varptr( prxStr ) prxBypassStr = bypass : ipi(2) = varptr( prxBypassStr ) InternetSetOption NULL, 38, varptr( ipi ), 4*3// INTERNET_OPTION_PROXY = 38 return stat #global set_inet_proxy "<IP>:<Port>", "<省略>" axobj IE,"Shell.Explorer.2",ginfo(12),300 IE->"Navigate" "<URL>" stop

参考先で言及されていますが、リクエスト単位ではなくプロセス単位で管理されているのは厄介ですね…。

なお、上のように明示的に設定をしない場合、IEコンポーネントだったら「インターネットオプション」で設定されているプロキシが使われます。
独自にプロキシを設定できるようにするより、「インターネットオプション」の設定ダイアログを出す方がある意味自然かもしれませんね。



エイト

リンク

2012/6/6(Wed) 21:02:28|NO.47052

確かに動作しました。
実はいろいろ調べて(http://www.jurabi.jp/blog/2011/02/1027さんのも)、MSDNも読んだのですが
HSPコードに書き起こす方法がわからなくて困っていました。

本当にありがとうございました!
MSDNのコードをHSPに移植できる方はすごいです。



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