2011-12-14 12 views
4

これを理解するのが難しいです。私が正しいとすれば、32ビットPythonは64ビットでコードを実行してレジストリ値を変更することはできません。それは正しいのですか?または、この機能を有効にするためのスイッチがありますか?32bit Pythonから64bitレジストリを変更する

これがある: http://msdn.microsoft.com/en-us/library/aa384129%28v=VS.85%29.aspx

しかし、どのように、私は次のコードでそれを使うのですか? http://www.blog.pythonlibrary.org/2010/03/20/pythons-_winreg-editing-the-windows-registry/

おかげで、 あなたが説明にリンクされているMSDNの記事としてオズ

答えて

6

は、64ビット版Windowsは2つのレジストリビュー、32ビット用と64ビットのための1つを持っています。デフォルトでは、32ビットアプリケーション(たとえば、Pythonスクリプトが32ビットPythonインタープリタによって実行されている)が32ビットビューにアクセスします。 MSDNの記事に記載されているフラグを使用して、64ビットビューへのアクセスを強制することができます。これらのフラグを使用できるようにするには、​​、_winreg.CreateKeyExまたは_winreg.DeleteKeyExに正しいパラメータ(例:

handle = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER, "your_sub_key", 0, _winreg.KEY_READ | _winreg.KEY_WOW64_64KEY) 

詳細については、_winreg documentationを参照してください。

+0

_winreg.KEY_WOW64_64KEYエラーが発生しました: 'module'objectに' KEY_WOW64_WOW '属性がありません – Oz123

+0

どのPythonバージョンを使用していますか? [_winreg 2.7 docs](http://docs.python.org/library/_winreg.html)では[KEY_WOW64_64KEY]を見つけることができますが、[_winreg 2.6 docs](http://docs.python.org/リリース2.6.2 /ライブラリ/ _winreg.html)。多分それは問題ですか? –

+0

こんにちは、私はPython 2.4を使用しています。おそらくそれは問題です... – Oz123

関連する問題