3

_winreg を使用して、Windows でプロキシ設定を有効または無効にできる簡単なプログラムを作成しようとしています。これを行うには、レジストリに 2 つの設定を変更する必要があります。1つ目ProxyEnableREG_DWORD、2つ目はDefaultConnectionSettingsですREG_BINARY。両方のキーにアクセスでき、dword への変更は問題ありませんでした。私が問題を抱えているのは 2 番目のキーです。それを開いてクエリを実行できますが、変更方法がわかりません。これは文字列なので、スライスして必要なビットを追加するだけでよいと思いましたが、元の値は'\x03''\x09' に変更する必要があり、Python に入力すると '\t' になると思いますエスケープされた「水平タブ」です。私はPythonにかなり慣れていないので、これを完全に間違った方法で行っている可能性があることに気付きました.

key = wreg.OpenKey(wreg.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Connections",0, wreg.KEY_ALL_ACCESS)

これは助けが必要なキーです。開いて読むことはできますが、正しく操作する方法がわかりません。基本的に、9 番目のバイトを 03 から 09 に変更し、プロキシを再度有効にするときに 03 に戻す必要があります。

4

1 に答える 1

3

DefaultConnectionSettingsレジストリ キーを開いているので、次はレジストリ値を取得する必要があります。

(value, regtype) = wreg.QueryValueEx(key, "DefaultConnectionSettings")

ここで、値の 1 バイトを変更する必要があります。残念ながら、値は Python 文字列として表され、Python 文字列は不変です。そのため、その 1 バイトを変更して新しい文字列を作成する必要があります。

if regtype == wreg.REG_BINARY:
    value = value[:8] + chr(0x09) + value[9:]

最後に、新しい値をレジストリに書き戻します。

    wreg.SetValueEx(key, "DefaultConnectionSettings", None, regtype, value)
于 2014-07-20T16:10:39.017 に答える