IEのプロパティの「接続」タブにあるLANの設定にある項目だけを変更するには?

解決


どら  2008-08-14 03:18:53  No: 68838

Windows XP SP2 + VS2005 Team + MS SDK最新版で開発しています。

Internet Explorerのプロパティにある「接続」タブの「LANの設定」ボタンで
開かれるダイアログの中身だけ(つまりはProxyの設定だけ)を変更したいので
すが・・・

はじめは、inetcpl.cplをShellExecuteなどから起動してIEのプロパティ画面
を開くように作ろうと思ったのですが・・・
これだと、余計な項目がありすぎてユーザには分かりにくいかなと・・・。

一言で言うと、Proxyの設定を保存し、場所によってそれを切り替えるツール
を作りたいんです。

inetcpl.cpl に、LANの設定だけを開かせるような起動オプションも内容です
し・・・

設定が保存されているのはレジストリなのですが、場所によってはバイナリの
値なので、それをIEの設定画面のようなものを独自で作り上げるのも難しそう
ですし・・・

何かよい方法をご存じの方いらっしゃいましたら、お願いいたします。
いつも変な質問で済みません>_<

よろしくお願いいたします。


tetrapod  2008-08-14 17:13:46  No: 68839

よくある「無線アシスタント」つまり接続先に対応して設定値を自動切換えするソフト
をつくろうということでよいのかな?

設定変更はレジストリ直接操作のほうが簡単だと思うよ
HKCU 以下を操作するようにすれば被害も少ないし問題ないと思う

バイナリ設定値は ProxyEnable とか ProxyHttp1.1 とかしかないわけで
それなら Radio/Check で実装できるわけでそんなに難しくないと思う
まずは無線アシスタントソフトの操作画面でも見てみるといい


どら  2008-08-14 20:14:28  No: 68840

terapodさん
おっしゃるような、無線ではないのですが、社内/社外でProxyの接続の設定を
制御させるソフトウェアを作りたいと思っています。
現在リリースされているIPアドレスなどを管理者権限でなくても変更できるよ
うにしたツールの中に実装させようかと・・・

ただ、Proxyの設定画面をいじりながらレジストリを変更すると、
HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ 以下
の・・・

AutoConfigURL
ProxyEnable
ProxyOverride
ProxyServer

およびHKCU\Microsoft\Windows\CurrentVersion\Internet Settings\Connections 
以下の・・・

DefaultConnectionSettings
SavedLegacySettings

が変わることがわかっているのですが、問題は後者の2項目(自動構成スクリプトなどの設定内容だと思われます)。
これは完全にバイナリの値が長々と記載されていて、独自で設定に盛り込むの
は難しいと思うんです。

で、IEの設定画面のうち、LANの設定のダイアログだけを、うまくツールから
起動させ

1.現在のProxyの設定を保存
2.LANの設定ダイアログを開く
3.変更した設定内容を保存
4.保存が終わった1で保存しておいた元の設定に戻す

と言う流れで動作させるしかないのかな・・・と。

IEプロパティ画面のこれ以外の項目の変更をこのツールに盛り込むつもりはな
いので、ユーザに混乱させないよう、うまくここの項目の設定だけを保存・切
換できるようにしたいんです。

それが無理なら、「現在のインターネットの設定からProxyの設定を保存する」
ようなチェックボックスをつくって、今使っている設定を保存するだけで割り
切ってしまおうかとも思っています。

本音でいてば、ここの項目を独自の設定画面にしたいのですが・・・
難しそうですね・・・


どら  2008-09-11 22:54:53  No: 68841

ご報告が遅れましたが、結局、
   1.IPアドレスの変更などの処理をクライアントアプリからサービスアプリ
     へパイプで渡す
   2.サービスアプリで受け取った設定に変更→結果をクライアントへ渡す
   3.2が成功したら、クライアントアプリ側でProxyの設定を変更
と言う流れにすることにし、RegQueryValueExで取得した値を、そのまま
   CreateFile → WriteFile
でまんま保存する形で逃げる方向で検討してみます。
コマンドラインregedit /e も考えたのですが、キーの保存はできるのです
が、値単体の保存ができなかったので・・・。

このプログラムの中でまた疑問点がでたのですが、それは別スレをたてること
にします。

terapodさん、いつもありがとうございます^^


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加