Programı arka planda çalıştırma

Arkadaşlar merhaba, python ile ufak bir deneme yapıyorum modül üzerinde. Dosya uzantımı pyw olarak da kaydettim fakat program arkaplanda çalışmamakta. Programla isteğim tam olarak şu otomasyon ile gelen verilerin otomasyon kapansa dahi içeriğini göndermek. Bunu nasıl başarabilirim? Arkaplanda çalışmasını istiyorum sadece datetime ile vereceğim zamanı eşitleyecek.

import pywhatkit
import datetime

hourAndMinute = datetime.datetime.now()

pywhatkit.sendwhatmsg("Buraya Numara Gelecek ", "Hi",hourAndMinute.hour,int(hourAndMinute.minute)+1)

pyw ile çalışıyor olması lazım.
Döngü oluşturmayı denediniz mi?

Denedim, durmasın diye sonuna input dahi ekledim ama çalışmıyor.

Çalışmadığını nereden anlıyorsunuz?

Mesaj gelmiyor. Normalde bu kod ile bana mesaj atıyor.

Hangi isletim sistemi? Programi nasil calistiriyorsun?

1 Beğeni

Windows, pwy uzantısı ile kaydettim. Bilgisayarda python dosyalarım çift tıklayınca açılıyor. Aynı şekilde çalıştırmaya çalıştım.

pwy dosyalarina hangi program bakiyor? Baska bir deyisle, cift tiklayinca hangi program calistirilmaya calisiyor?

pwy dosyasini pythonw.exe ile calistirmaya calisinca ne oluyor? Konsolda C:\...\pythonw.exe C:\...\hede.pwy yazarak deneyebilirsin. Uc noktalarin yerine dosyalarin tam yerlerinin gelmesi lazim.

pywhatkit'ten mesaj yollama guzel bir calisma testi degil. Sistemdeki herkesin erisebilecegi bir yere veya TEMP’e (tempfile — Generate temporary files and directories — Python 3.10.1 documentation) bir dosya yazabilirsin. Calisma sekil ve ayarindan bagimsiz olarak ses cikaran, diyalog gosteren bir seyler de deneyebilirsin. pythonw.exe'den cikti almayi deneyebilirsin; bi yerde okudugum kadariyla stdout ve stderr'ini redirect edersen bunlari calistirdigi programa pasliyormus: pythonw.exe hede.py 1>stdout.txt 2>stderr.txt

Mesela bu şu an pyw ile çalışıyor arkadaşlar.

import sys
from PyQt5 import QtGui, QtCore, QtWidgets

def window():
    app =QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    Form.resize(840,600)
    Form.setWindowFlags(QtCore.Qt.FramelessWindowHint)
    Form.setAttribute(QtCore.Qt.WA_TranslucentBackground)
    label = QtWidgets.QLabel(Form)
    label.setGeometry(QtCore.QRect(10,10,811,600))
    movie1 = QtGui.QMovie("eye.gif")
    label.setMovie(movie1)
    movie1.start()
    Form.show()
    sys.exit(app.exec_())
if __name__ == "__main__":
    window()
    


Masaüstünde şu an hareket eden bir gözü oynatıyorum böyle. O gün programda hata vardı demek ki.

Göndermek istediğin verileri alan bir kod yaz, programından bağımsız.

Sonrasında;

Automate your Python Scripts with Task Scheduler | by Vincent Tatan | Towards Data Science

Schedule a Python Script to Run Daily - GeeksforGeeks

schedule · PyPI

Advanced Python Scheduler — APScheduler 3.8.1.post1 documentation

How to Schedule Python Script using Windows Scheduler - Data to Fish

Yada:

schedule python script to run daily - Google’da Ara

Araması ile 51.800.000 sonuçta birisini kullanabilirsin. Bu python sorusu olmaktan çok işletim sistemi sorusu gibi. Zamanlanmış görev istiyorsan, zamanlamayı yapan işletim sistemi özelliklerinden faydalanmalısın.

Python kodu yazabildiğini, python yollarının tanımlı olduğu, yönetici yetkileri olan bir masa üstü oturumu açabildiğin ve kodu çalıştırabildiğin varsayımı ile python kodları çalıştırılabilir.

Ama bir python kodu içinden çağırırsan, python kapanırsa kodun da kapanması doğal.

Daha extrem çözüm istersen, koduna
pywin32 · PyPI

Ekleyerek windows api lerine erişip,

İster doğrudan kodunu dışardan kapanırken çalıştırabilirsin, ister registry’ye kaydedebilirsin, ister zamanlanmış görev olarak da kaydettirebilirsin.

Çözüm çok özetle ama öncelikle sana sorulan bazı sorulara cevap vermelisin.

Ne çalışıtırıyorsun nereden çalıştırıyorsun, işletim sistemin ne, yol tanımlamaların düzgün mü hem emin olmalı hem bu konuda bilgi vermelisin, aksi halde bir çok ihtimal içinde doğru olanı atıp tutturmaya çalışmak zorunda kalırız.