Python ile Windows Registry’den Kurulu Programların Listesini Çıkarma

Kutay Utku
3 dk okuma

Windows bilgisayarımızda hangi programların kurulu olduğunu öğrenmenin pek çok yolu vardır. Çoğu kullanıcı Denetim Masası > Programlar ve Özellikler kısmından bakar. Ancak geliştiriciler ve sistem yöneticileri için daha esnek bir yol vardır: Windows Registry üzerinden bu bilgileri almak.

🔎 Registry Nedir?

Registry, Windows işletim sisteminde ayarların, program bilgilerinin ve sistem yapılandırmalarının saklandığı bir veritabanıdır.
Her program kurulduğunda Registry’ye bazı bilgiler ekler:

  • Program adı (DisplayName)
  • Versiyon numarası (DisplayVersion)
  • Yayımcı bilgisi
  • Kurulum tarihi (InstallDate)

Bu bilgilere Python ile erişerek bilgisayardaki tüm programların listesini alabiliriz.

🐍 Python ile Kurulu Programları Listeleme

Aşağıdaki Python kodu, Registry’den gerekli bilgileri okuyarak kurulu programların adını, sürümünü ve kurulum tarihini ekrana yazdırır:

import winreg
from datetime import datetime

def get_installed_programs():
    programs = []
    registry_paths = [
        r"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall",
        r"SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall"
    ]
    
    for path in registry_paths:
        try:
            key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, path)
            for i in range(0, winreg.QueryInfoKey(key)[0]):
                subkey_name = winreg.EnumKey(key, i)
                subkey = winreg.OpenKey(key, subkey_name)
                try:
                    name = winreg.QueryValueEx(subkey, "DisplayName")[0]
                    
                    # Versiyon bilgisi
                    version = ""
                    try:
                        version = winreg.QueryValueEx(subkey, "DisplayVersion")[0]
                    except FileNotFoundError:
                        pass
                    
                    # Kurulum tarihi
                    install_date = ""
                    try:
                        raw_date = winreg.QueryValueEx(subkey, "InstallDate")[0]
                        if raw_date.isdigit() and len(raw_date) == 8:  # YYYYMMDD formatı
                            install_date = datetime.strptime(raw_date, "%Y%m%d").strftime("%d.%m.%Y")
                        else:
                            install_date = raw_date
                    except FileNotFoundError:
                        pass
                    
                    programs.append((name, version, install_date))
                except FileNotFoundError:
                    continue
        except FileNotFoundError:
            continue
    return programs

if __name__ == "__main__":
    for prog, ver, date in get_installed_programs():
        print(f"{prog} - {ver} - {date}")

📌 Örnek Çıktı

Programı çalıştırdığınızda terminal ekranında şu tarz bir liste görürsünüz:

Google Chrome - 126.0.6478.127 - 15.07.2025
Microsoft Edge - 127.0.2651.98 - 03.08.2025
VLC Media Player - 3.0.20 - 
WinRAR - 6.24 - 21.07.2025

Görüldüğü üzere bazı yazılımların kurulum tarihi boş kalabilir. Bunun nedeni, her programın Registry’ye kurulum tarihi yazmamasıdır.

🎯 Program Ne İşe Yarar?

  • Bilgisayarda hangi programların kurulu olduğunu hızlıca öğrenebilirsiniz.
  • Program versiyonlarını kontrol ederek güncel olmayan yazılımları tespit edebilirsiniz.
  • Sistem yöneticileri bu bilgiyi raporlama veya güvenlik denetimleri için kullanabilir.
  • Kullanıcılar kendi bilgisayarındaki yazılımları listelemek, belgelemek veya yedeklemek amacıyla kullanabilir.

⚡ Nasıl Çalıştırılır?

  1. Yukarıdaki kodu ProgramlarınListesi.py adıyla masaüstüne kaydedin.
  2. Windows’ta Terminal (veya Komut İstemi) açın.
  3. Şu komutu çalıştırın:
cd %USERPROFILE%\Desktop
python ProgramlarınListesi.py
  1. Ekranda kurulu programların listesi görünecektir ✅

🔹 Bu yöntem, Windows Registry’den bilgi alarak çalıştığı için WMIC veya harici araçlara gerek duymaz.

💬 Yorum Bırak