F.Gungor adlı üyeden alıntı: mesajı görüntüle
pyautogui==0.9.54
keyboard==0.13.5
requests==2.31.0
fpdf==1.7.2
openai==0.28.1
pip install -r requirements.txt

import sys
import os
import time
import traceback
import keyboard
import pyautogui
import base64
import openai
from fpdf import FPDF
from datetime import datetime
from pathlib import Path
 
# OpenAI API anahtarını ayarla
openai.api_key = "sk-proj-xxxxxxxxxxxx"
 
def capture_screenshot():
    """
    Ekran görüntüsü alıp geçici bir dosyaya kaydeder.
    """
    try:
        screenshot = pyautogui.screenshot()
        screenshot_path = os.path.join(os.getcwd(), "screenshot.png")
        screenshot.save(screenshot_path)
        return screenshot_path
    except Exception as e:
        print("Hata (capture_screenshot):", e)
        traceback.print_exc()
        return None
 
def encode_image_to_base64(image_path):
    """
    Görüntüyü base64 formatına çevirir.
    """
    try:
        with open(image_path, "rb") as image_file:
            return base64.b64encode(image_file.read()).decode('utf-8')
    except Exception as e:
        print("Hata (encode_image_to_base64):", e)
        traceback.print_exc()
        return None
 
def analyze_image_with_gpt4(image_path):
    """
    Görüntüyü GPT-4 Vision API kullanarak analiz eder.
    """
    base64_image = encode_image_to_base64(image_path)
    if not base64_image:
        return ""
    try:
        response = openai.ChatCompletion.create(
            model="gpt-4o-mini",
            messages=[
                {
                    "role": "user",
                    "content": [
                        {
                            "type": "text",
                            "text": "Bu görüntüyü detaylı bir şekilde analiz et ve açıkla."
                        },
                        {
                            "type": "image_url",
                            "image_url": {
                                "url": f"data:image/jpeg;base64,{base64_image}"
                            }
                        }
                    ]
                }
            ],
            max_tokens=1000
        )
        return response.choices[0].message.content
    except Exception as e:
        print("Hata (analyze_image_with_gpt4):", e)
        traceback.print_exc()
        return ""
 
def save_to_pdf(response_text):
    """
    Gelen metni PDF olarak oluşturup Downloads klasörüne kaydeder.
    """
    if not response_text.strip():
        print("Kaydedilecek metin boş veya geçersiz.")
        return
 
    try:
        downloads_path = str(Path.home() / "Downloads")
        timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
        pdf_filename = os.path.join(downloads_path, f"DersNotu_{timestamp}.pdf")
 
        pdf = FPDF()
        pdf.add_page()
        pdf.set_font("Arial", size=12)
        
        # PDF başlığı
        pdf.set_font("Arial", "B", 16)
        pdf.cell(0, 10, "Ders Notu", ln=True, align="C")
        pdf.ln(10)
        
        # Normal metin
        pdf.set_font("Arial", size=12)
        
        # Unicode karakterleri ASCII'ye dönüştür
        text = response_text.encode('ascii', 'replace').decode()
        
        # Metni satır satır yazdır
        for line in text.split('\n'):
            pdf.multi_cell(0, 10, line)
        
        pdf.output(pdf_filename)
        print(f"PDF kaydedildi: {pdf_filename}")
    except Exception as e:
        print("Hata (save_to_pdf):", e)
        traceback.print_exc()
 
def process_screenshot_silently():
    """
    Sessizce ekran görüntüsü alır, GPT-4 Vision API ile analiz eder,
    gelen yanıtı PDF olarak kaydeder.
    """
    try:
        print("Ekran görüntüsü alınıyor...")
        screenshot_path = capture_screenshot()
        if not screenshot_path:
            print("Ekran görüntüsü alınamadı.")
            return
        print("GPT-4 Vision API ile analiz ediliyor...")
        response = analyze_image_with_gpt4(screenshot_path)
        if not response:
            print("Görsel analiz edilemedi veya yanıt alınamadı.")
            return
        print("Yanıt PDF olarak kaydediliyor...")
        save_to_pdf(response)
        # İşlem tamamlandıktan sonra geçici screenshot dosyasını sil
        try:
            os.remove(screenshot_path)
        except:
            pass
            
    except Exception as e:
        print("Hata (process_screenshot_silently):", e)
        traceback.print_exc()
 
def on_print_screen():
    """
    Print Screen tuşuna basıldığında çalışacak fonksiyon.
    """
    print("Print Screen yakalandı. İşleme başlanıyor...")
    process_screenshot_silently()
 
def main():
    # PrintScreen tuşu yakalandığında on_print_screen fonksiyonunu çağır
    keyboard.add_hotkey("print_screen", on_print_screen)
 
    print("Program çalışıyor. Print Screen tuşuna basarak test edebilirsiniz...")
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        print("Program sonlandırıldı.")
        sys.exit(0)
 
if __name__ == "__main__":
    main()
Bu şekilde çalışması lazım.
Çok teşekkür ederim hocam, evet çalıştı R10+