3


皆さんこんにちは!

小さなpython3プロジェクトをコーディングしています。私のコードには、ユーザーが特定の DirectX バージョンをインストールしているかどうかを確認する関数があります。

その機能は以下の通りです。

def check_directx():
    try:
        reg_obj = OpenKey(HKEY_LOCAL_MACHINE, r'SOFTWARE\Microsoft\DirectX')
    except FileNotFoundError:
        return False

    dx_value_str = EnumValue(reg_obj, 1)[1][0:4]
    CloseKey(reg_obj)

    if dx_value_str != "4.09":
        return False

    return True

この機能をテストしたかったので、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectXの元のバージョン値 (4.09.00.0904) を 4.07.00.0904 に変更しました。しかし、うまくいきませんでした。変数 dx_value_str の値はまだ 4.09.00.0904 でした。

レジストリを検索したところ、HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\DirectXに同じキー、値があることがわかりました。ここのバージョン値を変更しました、変数 dx_value_str の値がついに変更されました。

ご覧のとおり、'SOFTWARE\Microsoft\DirectX' でキーを開きましたが、'SOFTWARE\Wow6432Node\Microsoft\DirectX' で値を取得しました。

この状況は大丈夫ですか?または私のコードに何か問題がありますか?

私を助けてください!

4

1 に答える 1