2010-11-26 180 views
1

WindowsレジストリキーHKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Connectionsには、ユーザーのプロキシ構成に関するすべての種類のデータを格納するDefaultConnectionSettingsというバイナリ値が含まれています。このデータの正確な形式は何ですか?WindowsレジストリのDefaultConnectionSettings値の形式は何ですか?

私が今までに見つけたのはthis forum postのものであり、これは決して完全ではなく、いくつかの点で間違っているようです。

答えて

4

レジストリ値を直接読み書きするのではなく、代わりにWinInetのInternetQueryOption()InternetSetOption()関数を使用する必要があります。そうは言って

は、これらを見て:

How to set 'automatic configuration script' for a dial-up connection programmatically?

http://www.visualbasicscript.com/fb.ashx?m=76412

+0

感謝を:(あなたがバッチで優れている場合、私はそれに非常に慣れていないと私はそれはおそらく、コードで表示されます考えるほど、より良いスクリプトを作成して自由に感じる)ここで見つけることができます

それらのリンクは、私の質問にリンクされたフォーラム投稿にはあまり追加していないようだが。私はJavaからWinInetを使用する方法が不明ですが、それは別の質問です。 –

+0

...今すぐ尋ねられるhttp://stackoverflow.com/q/4299481/10433 –

+0

ちょうどあなたに知らせるために、それは '' InternetGetOption''ではなく '' InternetQueryOption''です。私は、存在しない '' InternetGetOption''についての情報を検索するのに最後の10分間を費やしました!! – Kidburla

5

私は多分、それはあなたを助け、これを発見しました!

0. keep this value 
    1. "00" placeholder 
    2. "00" placeholder 
    3. "00" placeholder 
    4. "xx" increments if changed 
    5. "xx" increments if 4. is "FF" 
    6. "00" placeholder 
    7. "00" placeholder 
    8. "01"=proxy deaktivated; other value=proxy enabled 
    9. "00" placeholder 
    10. "00" placeholder 
    11. "00" placeholder 
    12. "xx" length of "proxyserver:port" 
    13. "00" placeholder 
    14. "00" placeholder 
    15. "00" placeholder 
    "proxyserver:port" 
if 'Bypass proxy for local addresses'::: 
    other stuff with unknown length 
    "<local>" 
    36 times "00" 
if no 'Bypass proxy for local addresses'::: 
    40 times "00" 
+0

あなたは私の日を救った - 私は#8を1に設定してプロキシを無効にした。私はWindows 2008 R2を使用しています。私はIE 11をインストールしてからアンインストールしました。インターネットオプションダイアログが機能しないので、レジストリを使ってプロキシを無効にする必要がありました。 – costa

0

ちょうど(私がコメントするのに十分な評判ポイントを持っていないので、答えとして)ザインアリの解答時に展開したい、そしてもちろん、それは私を助けたとして、彼らがした情報を掲載するためにザインに感謝私が残りの部分を把握しようとしていたとき、大きく。

数字8は、プロキシが無効になっているかどうかを示すだけではなく、少し複雑です。また、設定には2つのチェックボックスがあります。

数字8を "01"に設定すると、プロキシを有効にするボックスのチェックを外し、[設定を自動的に検出する]チェックボックスをオフにして、スクリプトを使用するボックスをオフにします。

ただし、数字8を "0f"に設定するとすべてが有効になります。

明らかに、この8番目のバイトは基本的にフラグを設定しています。バイトの最下位ビットは、私が知る限り、常に「1」です。 2番目の最下位ビットは、手動プロキシ設定チェックボックスにチェックが入っていれば "1"です。 3番目の最下位ビットは、スクリプトを使用するためのボックスがチェックされ、スクリプトのアドレスを指定すると "1"になります。 4番目の最下位ビットは、 "Automatically Detect Settings"チェックボックスをオンにすることです(基本的にこれらのビットを1に設定するとチェックボックスがオフになります)。

"03"に設定しました。手動プロキシ

また、「長さが不明なその他のもの」は長さがわかっていないため正しいとは思われません。それが参照された後の項目は、セミコロンで区切られたプロキシの例外リストです。このリストの長さは、 "proxyserver:port"の直後のバイトです。それは、あなたが他に何を持っていたかに応じて異なると言われた4バイトの違いを補うために、パディングの3 "00"を組み合わせたものです。

0. keep this value 
1. "00" placeholder 
2. "00" placeholder 
3. "00" placeholder 
4. "xx" increments if changed 
5. "xx" increments if 4. is "FF" 
6. "00" placeholder 
7. "00" placeholder 
8. "03"=enable proxy, enable auto detect settings, auto script etc 
9. "00" placeholder 
10. "00" placeholder 
11. "00" placeholder 
12. "xx" length of "proxyserver:port" 
13. "00" placeholder 
14. "00" placeholder 
15. "00" placeholder 
"proxyserver:port" 
    "xx" length of proxy exception list 
    "00" placeholder 
    "00" placeholder 
    "00" placeholder 
Proxy Exception list delimited by semi-colons (use "<local>" to exclude local addresses) 
36 times "00" 

私はこのすべてを理解しようとかなりの時間を費やしているので、何かを見逃していないことを願っています。

バッチスクリプトを作成して、例外リストと共にプロキシサーバーとポートを与えることができます。自動的にバイナリコードを作成し、必要なレジストリに貼り付けます。 8バイト目は "03")。

"reg add"行全体を "echo%data%"に置き換えるだけで、コードを変更してバイナリを出力するのは簡単です。

また、以下のスクリプトは、スクリプトを使用してGPOと組み合わせてマシン全体のプロキシを設定していたため、HKLMキーを変更しています。代わりにHKCUに変更してください。用https://gist.github.com/hallzy/b7dfba5f71c0251f1139f8c531cd7817

関連する問題