Programa uyku modu nasıl eklerim?

Bu programın ilk hali

from pynput import keyboard
from PIL import ImageGrab
from datetime import datetime
import locale
import os
locale.setlocale(locale.LC_ALL,'')
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
try:
    os.makedirs(desktop + "/Ders Alıntılarım/Almanca")
    os.makedirs(desktop + "/Ders Alıntılarım/Matematik")
    os.makedirs(desktop + "/Ders Alıntılarım/Edebiyat")
    os.makedirs(desktop + "/Ders Alıntılarım/İngilizce")
    os.makedirs(desktop + "/Ders Alıntılarım/Kimya")
    os.makedirs(desktop + "/Ders Alıntılarım/Biyoloji")
    os.makedirs(desktop + "/Ders Alıntılarım/Fizik")
    os.makedirs(desktop + "/Ders Alıntılarım/Tarih")
    os.makedirs(desktop + "/Ders Alıntılarım/Coğrafya")
    os.makedirs(desktop + "/Ders Alıntılarım/Din Kültürü")
    os.makedirs(desktop + "/Ders Alıntılarım/Felsefe")
    os.makedirs(desktop + "/Ders Alıntılarım/Müzik")
    os.makedirs(desktop + "/Ders Alıntılarım/Beden Eğitimi")
except FileExistsError:
    pass
print("""
**************************
                         *
Ekran Fotoğrafı Ayırıcı  *
                         *
 yapan => Kerem Bağdatlı *     
                         *
**************************



""")
print("""
Alıntı için ders seçimi;

Edebiyat => e , E
Matematik => m , M
Biyoloji => b , B
Fizik => f , F
Kimya => k , K
İngilizce => i , İ
Almanca => a , A
Tarih => t , T
Coğrafya => c , C
Din Kültürü => d , D
Felsefe => l , L
Müzik => ü , Ü
Beden Eğitimi => n , N
Çıkış => ç , Ç
""")
def on_release(tus):
    try:
        if tus.char == "a" or tus.char == "A":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Almanca/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "m" or tus.char == "M":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Matematik/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "e" or tus.char == "E":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Edebiyat/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "i" or tus.char == "İ":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/İngilizce/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "k" or tus.char == "K":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Kimya/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "b" or tus.char == "B":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Biyoloji/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "f" or tus.char == "F":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Fizik/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "t" or tus.char == "T":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Tarih/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "c" or tus.char == "C":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Coğrafya/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "d" or tus.char == "D":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Din Kültürü/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "l" or tus.char == "L":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Felsefe/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "ü" or tus.char == "Ü":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Müzik/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "n" or tus.char == "N":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Beden Eğitimi/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "ç" or tus.char == "Ç":
            exit()
    except AttributeError:
        pass

with keyboard.Listener(on_release=on_release) as listener:
    listener.join()

Bu programa nasıl uyku modu eklerim + tuşuna bastığımda programın ekran fotoğrafı almayı kesmesini istiyorum - tuşuna bastığımda ise tekrar programın çalışmasını istiyorum

Bunu yapmanın bir yolu var mı?

Teşekkürler!

Merhaba, sanırım iki ayrı klavye dinleyicisi tanımlamanız lazım. Klavye dinleyicilerden ilki, - tuşuna basıldığı zaman diğer klavye dinleyicisini başlatmalı. + tuşu ile yapılacak işlem yeni klavye dinleyicisinde tanımlanmalı ve bu tuşa basıldığı zaman başlatılan klavye dinleyicisi durdurulmalı.

Aşağıdaki koda bakın isterseniz.

from PIL import ImageGrab
from pynput import keyboard
from datetime import datetime as dt

print("Program çalışıyor.")


def on_release(key):
    try:
        if key.char.casefold() == "a":
            ImageGrab.grab().save(f"{dt.now().strftime('%Y-%m-%d %H-%M-%S')}.jpg")
            print("Ekran alıntısı alındı!!!")
        elif key.char.casefold() == "ç":
            exit()
        elif key.char == "+":
            print("Program uykuda.")
            new_listener.stop()
    except AttributeError:
        pass


def activate(key):
    global new_listener
    try:
        if key.char.casefold() == "-":
            print("Program aktif.")
            with keyboard.Listener(on_release=on_release) as new_listener:
                new_listener.join()
    except AttributeError:
        pass
                
                
with keyboard.Listener(on_release=activate) as listener:
    listener.join()
    
       
print("Program kapatıldı.")
1 Beğeni

Abi kodun çok büyük eksiği var anında ekran alıntısı alıyor buna benzer bir şey ben de yaptım ben yoklama alıyordum da belirli şeylerde sıkıntı var onları düzeltiyorum sana önerim şu kodu kullanman.

import time

time.sleep(15)
alinti.save("{}/Ders Alıntılarım/Din Kültürü/{}.jpg".format(desktop,tarih), "JPEG")

yani alıntıyı d ye bastıktan 15 sn sonra alacak diğer türlü konsol ekranı açıkken alıyor. yani kullanıcıya konsol ekranı küçültme (küçük simge) süresi tanıyorsunuz.

bu kodu her alintı save den önce uygulayayın time.sleep olan yeri 15 sn biraz fazla 10 yapabilirsiniz

@Ismet_Fatih

Son yazdığınız mesaj, bir önceki mesaja iliştirilebilir. Flood yapmamanızı rica ediyorum.

Sanırım kodları yanlış yorumladın program simge halinde bile çalışsa tuşları kaydedebiliyor yani sen canlı dersteyken ‘e,a vb.’ tuşuna bastığında ekranın fotoğrafını alabilir.

Nedenini bilmiyorum her şey çalışıyor ama programı kapatamıyorum.
Ve Ç ye bastıktan sonra uyku modu kapalı olsa da ekran fotoğrafı da almıyor.

Bir hatam mı var?

from pynput import keyboard
from PIL import ImageGrab
from datetime import datetime
import locale
import os
locale.setlocale(locale.LC_ALL,'')
desktop = os.path.join(os.path.join(os.environ['USERPROFILE']), 'Desktop')
try:
    os.makedirs(desktop + "/Ders Alıntılarım/Almanca")
    os.makedirs(desktop + "/Ders Alıntılarım/Matematik")
    os.makedirs(desktop + "/Ders Alıntılarım/Edebiyat")
    os.makedirs(desktop + "/Ders Alıntılarım/İngilizce")
    os.makedirs(desktop + "/Ders Alıntılarım/Kimya")
    os.makedirs(desktop + "/Ders Alıntılarım/Biyoloji")
    os.makedirs(desktop + "/Ders Alıntılarım/Fizik")
    os.makedirs(desktop + "/Ders Alıntılarım/Tarih")
    os.makedirs(desktop + "/Ders Alıntılarım/Coğrafya")
    os.makedirs(desktop + "/Ders Alıntılarım/Din Kültürü")
    os.makedirs(desktop + "/Ders Alıntılarım/Felsefe")
    os.makedirs(desktop + "/Ders Alıntılarım/Müzik")
    os.makedirs(desktop + "/Ders Alıntılarım/Beden Eğitimi")
except FileExistsError:
    pass
print("""
**************************
                         *
Ekran Fotoğrafı Ayırıcı  *
                         *
 yapan =>             ?  *     
                         *
**************************



""")
print("""
Alıntı için ders seçimi;

Edebiyat => e , E
Matematik => m , M
Biyoloji => b , B
Fizik => f , F
Kimya => k , K
İngilizce => i , İ
Almanca => a , A
Tarih => t , T
Coğrafya => c , C
Din Kültürü => d , D
Felsefe => l , L
Müzik => ü , Ü
Beden Eğitimi => n , N
Çıkış => ç , Ç
""")
def on_release(tus):
    try:
        if tus.char == "a" or tus.char == "A":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Almanca/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "m" or tus.char == "M":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Matematik/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "e" or tus.char == "E":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Edebiyat/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "i" or tus.char == "İ":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/İngilizce/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "k" or tus.char == "K":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Kimya/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "b" or tus.char == "B":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Biyoloji/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "f" or tus.char == "F":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Fizik/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "t" or tus.char == "T":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Tarih/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "c" or tus.char == "C":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Coğrafya/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "d" or tus.char == "D":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Din Kültürü/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "l" or tus.char == "L":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Felsefe/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "ü" or tus.char == "Ü":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Müzik/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "n" or tus.char == "N":
            gun = datetime.now()
            tarih = datetime.strftime(gun,'%d %B %Y %X')
            tarih = tarih.replace(':','-')
            alinti = ImageGrab.grab()
            alinti.save("{}/Ders Alıntılarım/Beden Eğitimi/{}.jpg".format(desktop,tarih), "JPEG")
            print("Ekran alıntısı alındı!!!")
        elif tus.char == "ç" or tus.char == "Ç":
            exit()
        elif tus.char == "+":
            print("Uyku modu açıldı.")
            new_listener.stop()
    except AttributeError:
        pass

def activate(key):
    global new_listener
    try:
        if key.char.casefold() == "-":
            print("Uyku modu kapatıldı.")
            with keyboard.Listener(on_release=on_release) as new_listener:
                new_listener.join()
    except AttributeError:
        pass

with keyboard.Listener(on_release=activate) as listener:
    listener.join()

Kodunuzu bizim de çalıştırabileceğimiz şekilde paylaşırsanız, kodu temizlemek zorunda kalmayız. Ayrıca kodun tamamını paylaşmanız gerekmiyor. Paylaşacağınız kodu mümkün olduğunca kısaltmaya çalışın lütfen.

Çıkış işlemi, oluşturulan ikinci dinleyicide yer aldığı için programı kapatamıyorsunuz. Çıkış işlemini ilk klavye dinleyicisinde tanımlamak gerekiyor.

from PIL import ImageGrab
from pynput import keyboard
from datetime import datetime as dt

print("Program çalışıyor.")


def on_release(key):
    try:
        if key.char.casefold() == "a":
            ImageGrab.grab().save(f"{dt.now().strftime('%Y-%m-%d %H-%M-%S')}.jpg")
            print("Ekran alıntısı alındı!!!")
        elif key.char == "+":
            print("Program uykuda.")
            new_listener.stop()
    except AttributeError:
        pass


def activate(key):
    global new_listener
    try:
        if key.char == "-":
            print("Program aktif.")
            with keyboard.Listener(on_release=on_release) as new_listener:
                new_listener.join()
        elif key.char.casefold() == "ç":
            exit()
    except AttributeError:
        pass
                
                
with keyboard.Listener(on_release=activate) as listener:
    listener.join()
          
print("Program kapatıldı.")
1 Beğeni