0

c#プログラムを使用してプロキシサーバーアドレスを変更しようとしています。

    [DllImport("wininet.dll")]
    public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
    public const int INTERNET_OPTION_SETTINGS_CHANGED = 39;
    public const int INTERNET_OPTION_REFRESH = 37;
    bool settingsReturn, refreshReturn;

    void SetProxy()
    {
        RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);
        RegKey.SetValue("ProxyServer", "192.168.1.1:8082");
        RegKey.SetValue("ProxyEnable", 1);

        settingsReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
        refreshReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
    }

まずProxyServer、レジストリでキーが見つからないのですが、作成したときに問題が解決しません。また、PCに手動で入力しようとすると、まだプロキシサーバーがInternetExplorerで使用されていないことがわかりました。そしてそれはwhatismyip.comで私自身のIPを示しています

OSを再インストールしようとしても、なぜそれが起こっているのかわかりません。問題はまだ存在します。解決策はありますか?

4

3 に答える 3

0

msdn から...

Regedit4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
"MigrateProxy"=dword:00000001
"ProxyEnable"=dword:00000001
"ProxyHttp1.1"=dword:00000000
"ProxyServer"="http://ProxyServername:80"
"ProxyOverride"=""

しかし、プロキシサーバーの値を次のように設定しています。RegKey.SetValue("ProxyServer", "192.168.1.1:8082");

「http://」なし...それで試しましたか?

また、Internet Explorer exe が既に閉じられていることを確認してください (タスクバーの実行中のアプリ リストを確認してください)。

最後にもう 1 つ。別のブラウザからプロキシ オプションを設定しましたか? 正しく動作しますか?

于 2012-07-08T23:53:01.953 に答える
0

どのOSを使用していますか?32ビットまたは64ビット?

64 ビットの Windows を使用しているのに、レジストリを変更するために 32 ビットのプログラムを実行しているということはありませんか? その場合、Windows が部分的に別々の 32 ビット レジストリと 64 ビット レジストリを持っているために問題が発生する可能性があります。

于 2012-07-09T00:12:32.613 に答える