import winreg
# プログラム一覧を取得する関数
def get_installed_programs():
# レジストリを検索
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')