2010-11-30 20 views
0

いくつかのアプリケーションをアンインストールして、レジストリからソフトウェアインストール列挙値を読み込みます。レジストリ値を更新する方法

問題がアンインストール後、画面またはregeditが更新されない限り、レジストリ値は変更されません。私は正しい値を得ているだけリフレッシュした後。

一部の人が、pythonコードでregeditを更新するのに手伝ってもらえますか?

よろしく、 upendra

答えて

1

私は「爽やか」で「画面、」あなたはコンピュータを再起動する意味と仮定?それにかかわらず、システムを再起動した後に変更したレジストリキーが正しく更新されることを確認できます。レジストリは遅延スレッドと書き込みスレッドで更新されますので、変更内容はすぐにレジストリにフラッシュされませんが、これらのレジストリ値の変更方法に関する十分な情報は得られません代替ソリューションを提案することができます

さらに重要なことは、ここで何をしようとしていますか?あなたのアンインストーラがあなたのアプリケーションがアンインストールされたことを確認するようにしていますか?なぜこれが必要ですか?私は、レジストリの編集がコミットされることを期待するよりも良い方法がなければならないように感じ、すぐにそれを読み返します。

0

レジストリキーを変更していて、システムを再起動せずにその値を読み取ろうとしています。

私は画面をリフレッシュすると手動で読むことができますが(F5ボタン)、これをPythonでキャプチャする方法を教えてください。

1

私は同じ問題を抱えています。私はPythonツールと環境を "インストール"し、レジストリにいくつかのシステム変数を作成します。私は次の操作を実行し、レジストリ更新するには:私は期待のよう

def RefreshEnv(): 
    HWND_BROADCAST = 0xFFFF 
    WM_SETTINGCHANGE = 0x1A 

    SMTO_ABORTIFHUNG = 0x0002 

    result = ctypes.c_long() 
    SendMessageTimeoutW = ctypes.windll.user32.SendMessageTimeoutW 
    SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, 0, u'Environment', 
         SMTO_ABORTIFHUNG, 5000, ctypes.byref(result)) 

をこの方法では、レジストリをリフレッシュされていません。私はまだWindowsのシステム変数を編集するためにウィンドウを開いて、それを更新するにはOKをクリックしなければなりません。さもなければ、私のインストールされたツールは、環境変数をキャッチしようとしている間に、KeyErrorでクラッシュしています。

上記のRefresh機能があなたに役立つかどうかはわかりませんが、少なくとも試してみてください。