`os.system` ile bir uygulamayı iki defa açma

Aynı uygulamayı (oyunu) iki kere açmak istiyorum. Oyun buna müsade ediyor. Ama os.system ile çalıştırdığım zaman bir tane oyun açıp kalıyor. Hatta print(‘oyun açıldı’) ile kontrol sağlıyorum. çıktıyı vermiyor lakin ilk oyundan çıkış yaparsam ‘oyun açıldı’ çıktısını alıyorum. ilk oyunu kapatırsam tekrar ikinci oyunu açıyor. Bunu nasıl çözebilirim.

Programları paralel olarak çalıştırman gerek. threading modülünü kullanman lazım. Şurada modülün basit kullanımı anlatılmış:
Python threading modülü | YSAR.NET (yasar11732.github.io)

Yazılım konusunda yeni olduğum için biraz karışık gibi geldi ama hangi yoldan gideceğimi öğrendim çok teşekkür ederim :slight_smile:

1 Beğeni

Benim amacım aslında sadece oyunu start edebilmek. Oyun üzerinden herhangi bir işlem yapmayacağım bunu yapabileceğim başka bir komut varmıdır?
os.startfile() ile istediğim şeyi yapabildim :slight_smile:

import threading
import os

app1 = threading.Thread(target=os.startfile('<file>'))
app2 = threading.Thread(target=os.startfile('<file>'))

app1.start()
app2.start()

Burada iki adet süreç ekliyoruz. Ama bu süreçler daha çalıştırılmıyor, sadece süreci tanımlıyoruz. Ardından bu süreçleri programın gidişatından bağımsız olarak yürütüyoruz.

2 Beğeni

os.system verdiğiniz komutun sonlanmasını bekler. Başlattığınız uygulama kapanmadan bu fonksiyon geri dönüş yapmaz.

Bu, probleme uygun bir çözüm değil. Yapılması gereken programı bloklamayan bir fonksiyonun kullanılması.

2 Beğeni

çok teşekkür ederim :slight_smile:

1 Beğeni

Alternatif çözümünü görmek isterim.

Yukarıda yazılmış zaten:

1 Beğeni