Windowsのプログラムと機能で表示されている内容を取得する

 

 

import winreg

# プログラム一覧を取得する関数
def get_installed_programs():

    # レジストリを検索
    uninstall_key = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
    programs = []
   
    try:
        with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, uninstall_key) as key:
            i = 0
            while True:
                subkey_name = winreg.EnumKey(key, i)
                subkey_path = f"{uninstall_key}\\{subkey_name}"

                with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, subkey_path) as subkey:
                    try:
                        program_name = winreg.QueryValueEx(subkey, "DisplayName")[0]
                        programs.append(program_name)
                    except FileNotFoundError:
                        pass  # DisplayNameが存在しない場合はスキップ

                i += 1

    except OSError:
        pass  # キーが見つからない場合はスキップ
   
    return programs

# プログラム一覧を書き出す関数
def write_to_file(programs, file_path):
    with open(file_path, 'w') as file:
        for program in programs:
            file.write(program + '\n')

# メイン処理
if __name__ == "__main__":

    # プログラム一覧を取得する関数呼び出し
    programs = get_installed_programs()
   
    # プログラム一覧をテキストに書き出す関数呼び出し (パスは自分の環境に書き換えること)
    write_to_file(programs, 'D:\lab\installed_programs.txt')