Linux PC icin bir program ihtiyacim.

Mikro Step

Kıdemli Üye
Katılım
25 Eylül 2022
Mesajlar
6,356
Programi calistirdigimda bir butona bastigimda destoptaki ekran goruntusunu alsin. Daha sonra her 5 dakikada bir dekstopta goruntude degisiklik oldumu diye baksin. Eger fark varsa PC nin kendi hoparlorunden alarm versin. Alarm verdiginde tekrar butona bastigimda alarm sussun ve foto cekip bir sonraki karsilastirma icin bu ekran fotosunu kullansin.

Ekran fotosunu aldiginda ustten 200 alttan 200 pixel satiri gormemezlikten gelsin cunku bu kisimda saat ve alinan/gonderilen byte sayisi ile ilgili gostergeler var ve yanlis alarma neden olur.

Bu program parcacigini bos vaktinde yazacak olan varmi? Diyelim ki yazildi, bu programi calistirmak icin linux benden calistirma yetkisi (password) vs isteyecek mi? Isterse isime yaramayacak zaten.
 
Son düzenleme:
Programi calistirdigimda bir butona bastigimda destoptaki ekran goruntusunu alsin. Daha sonra her 5 dakikada bir dekstopta goruntude degisiklik oldumu diye baksin. Eger fark varsa PC nin kendi hoparlorunden alarm versin. Alarm verdiginde tekrar butona bastigimda alarm sussun ve foto cekip bir sonraki karsilastirma icin bu ekran fotosunu kullansin.

Ekran fotosunu aldiginda ustten 200 alttan 200 pixel satiri gormemezlikten gelsin cunku bu kisimda saat ve alinan/gonderilen byte sayisi ile ilgili gostergeler var ve yanlis alarma neden olur.

Bu program parcacigini bos vaktinde yazacak olan varmi? Diyelim ki yazildi, bu programi calistirmak icin linux benden calistirma yetkisi (password) vs isteyecek mi? Isterse isime yaramayacak zaten.
Akıllı bıdığa sor. Programı shell script ile yazmasını söyle.
Başlangıçta çalıştırmak için neler yapılacağınıda sor.
 
Kaynak kodunun olmasi bir sey ifade etmiyor. Derleyicim olsa yazarim ama yok.

Haa batch vs olursa super. Sorayim.
 
Kaynak kodunun olmasi bir sey ifade etmiyor. Derleyicim olsa yazarim ama yok.

Haa batch vs olursa super. Sorayim.
not defterine yazıp .sh uzantısı ile kaydet. hangi linuxu kullanıyorsun? ben debian xfce4 masaüstü kullanıyorum.varsayılan not defteri mousepad oluyor. Diğer dağıtımlarda farklı.
 
Asagidaki python kodunu yazdi.

Kod:
import tkinter as tk
from tkinter import messagebox
from PIL import ImageGrab, ImageChops
import time
import os
from threading import Thread

# Global değişkenler
previous_image = None
alarm_active = False
running = True

def capture_screen():
    """Ekranın görüntüsünü al ve döndür."""
    screenshot = ImageGrab.grab()
    return screenshot

def crop_middle(image):
    """Görüntüden ilk 200 piksel ve son 200 pikseli çıkar."""
    width, height = image.size
    cropped_image = image.crop((0, 200, width, height - 200))  # Sol, Üst, Sağ, Alt
    return cropped_image

def save_image(image, filename):
    """Görüntüyü dosya olarak kaydet."""
    image.save(filename)

def check_difference(img1, img2):
    """İki görüntü arasında fark kontrolü."""
    diff = ImageChops.difference(img1, img2)
    return diff.getbbox() is not None

def monitor_screen():
    """Ekranı periyodik olarak kontrol et."""
    global previous_image, alarm_active, running

    while running:
        # Yeni ekran görüntüsünü al ve orta kısmını kes
        current_image = crop_middle(capture_screen())

        if previous_image:
            # Fark var mı kontrol et
            if check_difference(previous_image, current_image):
                if not alarm_active:
                    # Fark varsa alarmı çalıştır
                    alarm_active = True
                    Thread(target=play_beep_alarm).start()

        # Mevcut görüntüyü kaydet
        previous_image = current_image

        # 5 dakika bekle
        time.sleep(300)  # 300 saniye = 5 dakika

def play_beep_alarm():
    """Yerleşik hoparlörden beep sesi çal."""
    while alarm_active:
        os.system("echo -e '\a'")  # Linux için terminalden beep
        time.sleep(1)  # 1 saniyede bir beep sesi

def on_button_click():
    """Buton tıklandığında çağrılan fonksiyon."""
    global alarm_active, previous_image

    if alarm_active:
        # Alarm sustur
        alarm_active = False
        messagebox.showinfo("Alarm", "Alarm susturuldu.")
    else:
        # Yeni ekran görüntüsü al ve sakla
        previous_image = crop_middle(capture_screen())
        save_image(previous_image, "initial_screen.png")
        messagebox.showinfo("Durum", "Yeni ekran görüntüsü kaydedildi.")

def start_monitoring():
    """Ekran izlemeyi başlat."""
    monitor_thread = Thread(target=monitor_screen, daemon=True)
    monitor_thread.start()

def on_close():
    """Program kapatılırken çalışan fonksiyon."""
    global running
    running = False
    root.destroy()

# Tkinter GUI
root = tk.Tk()
root.title("Ekran İzleme Uygulaması")
root.geometry("300x150")

btn = tk.Button(root, text="Alarm Kontrol", command=on_button_click)
btn.pack(pady=20)

root.protocol("WM_DELETE_WINDOW", on_close)

# İzleme başlatılıyor
start_monitoring()

root.mainloop()
 
Thinker vs yuklu degil. Internete bagli olmadigi icin de yuklemekle ugrasmak istemiyorum.
 
Windows için aradğınız programı yıllar önce kullanmıştık, bir cihazdaki ekran görüntüsünü alıp bir klasöre belirlenen aralıkta kaydediyor, o ekran görüntüsünü de sunucu üzerinde local networkten paylaşıyor tek cihaz görüntüsüne herkes erişiyordu ama programı hatırlamıyorum ve linux sürümü de vardı. Biraz ararsanız sanırım hazır programa bile erişebilirsiniz.
 

Forum istatistikleri

Konular
7,299
Mesajlar
123,391
Üyeler
2,948
Son üye
kamilcelebisinan

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top