Merhabalar, python ile ilgili yazmak istediğim şey tam olarak başlıktaki gibi. Kullanıcı aynı uygulamayı 1 den fazla açamasın. Eğer uygulama çalışıyorsa bir messagebox verebilir uygulama zaten çalışıyor lütfen bekleyiniz diye. Aklıma gelen bin türlü yolu denedim, ama sonucu hep hüsran…
Bu kodu inceledim ama açıkçası tam olarak anlayamadım, açıklayabilme şansın olur mu?
# Import module
import wmi
# Initializing the wmi constructor
f = wmi.WMI()
flag = 0
# Iterating through all the running processes
for process in f.Win32_Process():
if "chrome.exe" == process.Name:
print("Application is Running")
flag = 1
break
if flag == 0:
print("Application is not Running")
Orada da wx
adlı bir modül kullanılarak sınıf yöntemi şeklinde kullanıcı kodlamış biraz bakınca evet karmaşık gözüküyor üstte alıntıladığım kodla hemen hemen aynı işlevlere sahip gibi (sanırım wx modülü bir GUI)
Öncelikle pip install wmi
diyerek modülü yükleyin ardından alıntıladığım kodu çalıştırın
Standart yontem: /run
altina bir adet dosya koyup (e.g. /run/bir_uygulama.pid
) icine de PID’ini yaziyorsun. Cikista siliyorsun. O dosya varsa ve icindeki PID calisan bir process’e aitse (veya senin process’ine aitse) uygulama zaten calisiyordur.
Dediğinize bakılırsa python bilgim çok yetersiz böyle bir program için çünkü dediğiniz hiçbir şeyi anlamadım. Galiba biraz daha araştırma yapıp kendim denesem daha doğru olacak, teşekkürler
PID = process id (os — Miscellaneous operating system interfaces — Python 3.9.6 documentation)
Calisan process’e bakmak icin /proc/{pid}
directory’sini kullanabilirsin.
20:41:55 0 aib@vivaldi:~% python3
Python 3.8.10 (default, Jun 2 2021, 10:49:15)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getpid()
410539
>>>
//
20:42:06 0 aib@vivaldi:~% cat /proc/410539/cmdline
python3%