Detaylı Sistem Bilgisi Görüntüleyici

pip install psutil pyperclip
import platform
import psutil
import wmi
import tkinter as tk
from tkinter import messagebox
import pyperclip
import subprocess

def get_detailed_system_info():
    info = []
    c = wmi.WMI()

    # Temel Bilgiler
    info.append(f"İşletim Sistemi: {platform.system()} {platform.release()}")
    info.append(f"OS Sürümü: {platform.version()}")
    info.append(f"Mimari: {platform.architecture()[0]}")
    info.append(f"İşlemci: {platform.processor()}")

    # CPU Bilgileri
    cpu_freq = psutil.cpu_freq()
    if cpu_freq:
        info.append(f"CPU Frekansı: {cpu_freq.max:.2f} MHz")
    info.append(f"CPU Çekirdekleri (Mantıksal): {psutil.cpu_count(logical=True)}")
    info.append(f"CPU Çekirdekleri (Fiziksel): {psutil.cpu_count(logical=False)}")

    # RAM Bilgileri
    virtual_memory = psutil.virtual_memory()
    info.append(f"RAM: {round(virtual_memory.total / (1024**3), 2)} GB")
    
    # Anakart Bilgileri
    for board in c.Win32_BaseBoard():
        info.append(f"Anakart: {board.Manufacturer} {board.Product}")
    
    # GPU Bilgileri
    for gpu in c.Win32_VideoController():
        memory = get_gpu_info_wmic()
        info.append(f"Ekran Kartı: {gpu.Name} ({memory} MB)")

    # Disk Bilgileri
    for disk in c.Win32_DiskDrive():
        size = int(disk.Size) / (1024**3) if disk.Size else 'Bilinmiyor'
        info.append(f"Disk: {disk.Model} ({size:.2f} GB)")

    # RAM Detayları
    for memory in c.Win32_PhysicalMemory():
        capacity = int(memory.Capacity) / (1024**3) if memory.Capacity else 'Bilinmiyor'
        speed = memory.Speed if memory.Speed else 'Bilinmiyor'
        info.append(f"RAM Slotu: {memory.Manufacturer} {capacity:.2f} GB {speed} MHz")

    return "\n".join(info)


def get_gpu_info_wmic():
    try:
        # wmic komutunu çalıştırarak ekran kartı belleğini al
        result = subprocess.run(
            ['wmic', 'path', 'Win32_VideoController', 'get', 'AdapterRAM'],
            capture_output=True,
            text=True
        )
        # Çıktıyı işleyerek bellek boyutunu MB cinsinden hesapla
        lines = result.stdout.strip().split('\n')
        if len(lines) > 1:
            memory_str = lines[2].strip()
            if memory_str:
                memory_bytes = int(memory_str)
                memory_mb = memory_bytes / (1024**2)
                return f"{memory_mb:.2f}"
            else:
                return "Ekran Kartı Belleği: Bilinmiyor"
        else:
            return "Ekran Kartı: Bilinmiyor"
    except Exception as e:
        return f"Ekran Kartı: Hata ({str(e)})"



def display_info():
    info = get_detailed_system_info()
    text_box.delete("1.0", "end")
    text_box.insert("end", info)

def save_to_file():
    info = get_detailed_system_info()
    with open("detaylı_sistem_raporu.txt", "w", encoding="utf-8") as file:
        file.write(info)
    messagebox.showinfo("Kaydedildi", "Sistem raporu 'detaylı_sistem_raporu.txt' dosyasına kaydedildi.")

def copy_to_clipboard():
    info = get_detailed_system_info()
    pyperclip.copy(info)
    messagebox.showinfo("Kopyalandı", "Sistem raporu panoya kopyalandı.")

# GUI Ayarları
root = tk.Tk()
root.title("Detaylı Sistem Bilgisi Görüntüleyici")

text_box = tk.Text(root, wrap="word", width=80, height=30)
text_box.pack(pady=10, padx=10)

btn_display = tk.Button(root, text="Bilgileri Göster", command=display_info, width=20)
btn_display.pack(pady=5)

btn_save = tk.Button(root, text="Dosyaya Kaydet", command=save_to_file, width=20)
btn_save.pack(pady=5)

btn_copy = tk.Button(root, text="Panoya Kopyala", command=copy_to_clipboard, width=20)
btn_copy.pack(pady=5)

# Uygulama başlatıldığında bilgileri göster
display_info()

root.mainloop()

Bu Python uygulaması, kullanıcılara bilgisayarlarının donanım ve yazılım bileşenleri hakkında kapsamlı bilgiler sunan bir grafiksel kullanıcı arayüzü (GUI) sağlar. Tkinter kütüphanesi kullanılarak geliştirilen bu uygulama, sistem bilgilerini görsel olarak sunar ve kullanıcı etkileşimini kolaylaştırır.

Ana Özellikler:

  • İşletim Sistemi Bilgileri: Uygulama, işletim sistemi türünü, sürümünü, mimarisini ve işlemci bilgilerini görüntüler.
  • CPU Bilgileri: CPU’nun maksimum frekansı, mantıksal ve fiziksel çekirdek sayısı gibi detaylar sunulur.
  • RAM Bilgileri: Toplam RAM miktarı ve her bir RAM slotunun kapasitesi ve hızı hakkında bilgiler sağlar.
  • Anakart Bilgileri: Anakart üreticisi ve modeli gibi temel bilgiler sunar.
  • GPU Bilgileri: Ekran kartı adı ve belleği hakkında bilgiler içerir.
  • Disk Bilgileri: Disk modelleri ve kapasiteleri hakkında bilgiler sunar.

Kullanıcı Etkileşimi:

Uygulama, kullanıcıların sistem bilgilerini görüntülemelerini, bu bilgileri bir dosyaya kaydetmelerini veya panoya kopyalamalarını sağlayan üç ana buton içerir:

  • Bilgileri Göster: Sistem bilgilerini GUI üzerinde görüntüler.
  • Dosyaya Kaydet: Görüntülenen bilgileri bir metin dosyasına kaydeder.
  • Panoya Kopyala: Görüntülenen bilgileri panoya kopyalar.

Gerekli Kütüphaneler:

Uygulamanın çalışabilmesi için aşağıdaki Python kütüphanelerinin yüklü olması gerekmektedir:

  • platform
  • psutil
  • wmi
  • tkinter
  • pyperclip
  • subprocess

Bu kütüphaneler, sistem bilgilerini toplamak ve GUI bileşenlerini oluşturmak için kullanılır.

Kurulum ve Çalıştırma:

Gerekli kütüphaneleri yüklemek için aşağıdaki pip komutlarını kullanabilirsiniz:

pip install psutil wmi pyperclip

tkinter kütüphanesi, Python’un standart kütüphanelerinden biridir ve genellikle varsayılan olarak gelir.

Uygulamayı çalıştırmak için, yukarıdaki Python kodunu bir dosyaya kaydedip çalıştırmanız yeterlidir.

Sonuç:

Bu uygulama, kullanıcıların bilgisayarlarının donanım ve yazılım bileşenleri hakkında hızlı ve kolay bir şekilde bilgi edinmelerini sağlar. Grafiksel arayüzü sayesinde, teknik bilgiye sahip olmayan kullanıcılar bile sistem bilgilerini rahatlıkla görüntüleyebilir ve dışa aktarabilirler.

Sizin Değerli Görüşlerinize İhtiyacımız Var.