Programlama

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

Reklam

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.

Reklam

🐍 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.

Reklam
Bu yazı faydalı oldu mu?
Yazar

Kutay Utku

Denediğim, kurduğum ve öğrendiğim teknolojileri sade bir dille anlatıyorum. Sorularını yorumlarda bekliyorum.

Tüm yazıları (660)

Yorumlar

Henüz yorum yapılmamış Düşüncelerini paylaşan ilk kişi sen ol.

Yorum yaz

E-posta adresin yayınlanmaz. Zorunlu alanlar * ile işaretlidir.

Kod paylaşırken <code> etiketini kullanabilirsin.0

Yorumun onaylandıktan sonra yayınlanır.