0

winreg.DeleteKey を使用して、レジストリからキーを削除しています。API の使用に問題はありません。ただし、HKEY_LOCAL_MACHINE\SOFTWARE からキーを削除すると、コードが正常に実行されて削除されるという奇妙な問題が発生します (もう一度実行すると、削除されたばかりなのでキーが見つからないと表示されます)。再起動後もRegeditに表示されます!

Regedit 内でキーの値を編集することもできます。しかし、もう一度キーを削除しようとすると、最初に機能したにもかかわらず、指定されたファイルが見つからないという WindowsError が発生します。

何が起こっているか知っている人はいますか?これは不可解であり、これに関する情報を見つけることができないようです。

編集: どうやら 32 ビット アプリケーションは、64 ビット キーではなく、32 ビット キーを開きます。次のようにキーを開こうとすると:

aKey = winreg.OpenKeyEx(akey, subkey_str, 0, winreg.KEY_WOW64_64KEY)

「アクセスが拒否されました」というエラー メッセージが表示されます。runas を使用してスクリプトを実行し、ターミナルを管理者として開いてみました。私のユーザーアカウントには管理者権限があり、キー自体の権限を確認するところまで行きました。管理者とすべてのユーザーは、キーへの完全なアクセス権を持っています。

なぜ私はそれを開くことができないのですか?

4

0 に答える 0