Discord botunda EXE dosyası nasıl çalıştırılır?

AhmedAldogan

Hectopat
Katılım
18 Eylül 2020
Mesajlar
300
Çözümler
3
Merhaba arkadaşlar, bir Discord botu yazacağım bota verilen bir komut bilgisayarımdaki bir EXE dosyasını çalıştıracak. Nasıl yaparım?
 
Son düzenleyen: Moderatör:
Pekala nasıl yapacağınız konusunda size fikir vereyim. Koda dökemezseniz detaylıca yardımcı olurum.

Botunuzun çalıştığı makine gerekli girdi alındığında(uygulama başlatılma girdisi) WebSocket ile sizin bilgisayarınızdaki Client'e mesaj gönderecek ve Client bilgisayarınzdan uygulamayı çalıştıracak.
Eğer bu sizin kendi makineniz ise doğrudan girdinin geldiği koşul durumunda App. ExecFileSync metoduyla çalıştırabilirsiniz.

Sanırım yardıma ihtiyacım olacak. Daha önce web socket kullanmadım, ayrıca hatırlatayım Python kullanıyorum
 
Hocam Arduino gibi teknolojilerle yapılabilir. Ben saf Discord kütüphanesi ile yapılamaz dedim.

İlk mesajınız yanlış bilgi oluyor o halde. Ayrıca saf Discord kütüphanesi denen şey nedir? Biraz bana sizin kendinizce çevirdiğiniz terimmiş gibi geliyor. Eval komutları ile yapıyorlar. Discord.py için Jishaku kullanılabilir.

Kullanımı da basit, aşağıda kullanımı yer alıyor. Tabii uzatmamak için bunu bir prefixe bağlayabilirsiniz.

!jishaku py <Python Code>

!jishaku shell <shell command>

Kütüphane: GitHub - Gorialis/jishaku: A debugging and testing cog for discord.py rewrite bots.

Arduino vb. araçlarla yapılabilir demişsiniz ama basit bir kütüphaneyle de yapabilirsiniz. En güzel örnek hemen yukarıda. EXE ile ne alakası var derseniz de shell command kısmına istediğiniz herhangi bir terminalde gireceğiniz komutu girebilirsiniz, bu da size sınırsız kullanım alanı sağlar. Teknik olarak bu da ilk mesajı yanlış bilgi yapar, haksız mıyım?
 
İlk mesajınız yanlış bilgi oluyor o halde.
Aslında yanlış bilgi değil. Konu sahibi fazla bilgi vermediği için ben de saf Discord kütüphanesine göre genelleme yaparak söyledim.

Ayrıca saf Discord kütüphanesi denen şey nedir?
Yani sadece kütüphane. Mesela discord.js kütüphanesi.

Eval komutları ile yapıyorlar.
Discord.js ile Eval komutlarıyla yapmayı çok araştırmıştım. Elde edilebilir bir sonuç bulamamıştım.

Discord.py için Jishaku kullanılabilir.
Evet, Discord.py ile yapılabilir belki. Discord.py'ı pek incelemedim. Pek sağlıklı olacağını da sanmıyorum.
 
Aslında yanlış bilgi değil. Konu sahibi fazla bilgi vermediği için ben de saf Discord kütüphanesine göre genelleme yaparak söyledim.

Dediğim gibi, saf Discord kütüphanesi diye bir şey yoktur. Direkt Discord kütüphanesi deseniz bile daha ağza yatkın oluyor.

Aşağıdaki yazılı rehberin ilk satırına göre şu yazmakta: JavaScript'te (ve Node'da), eval(), herhangi bir dizeyi JavaScript kodu olarak değerlendiren ve onu gerçekten yürüten bir işlevdir.


Buna göre yine konuda @pottie4r haklı çıkıyor.

Ek olarak şimdi bunlar sunucunun terminalinde çalışıyor. Nasıl farklı bilgisayara kontrol sağlarım derseniz de SSH ile bağlantı yapılır ve SSH üzerinden girilecek girdiler hedef terminalde çalıştırılır. Umarım yeterince anlaşılır olmuşumdur. :)
 
Discord komutlarını yakaladığın kod bloğunda (eğer discord botunu yazdıysan/oluşturduysan); bir tane shell çalıştırırsın, bitti gitti.
Çözüm ararken önce basit düşünün.
 
"child process" ile yapmanız gerekiyor.
[CODE lang="javascript" title="JavaScript"]//Örnek bir komut
require('child_process').spawn('git', ['push', '-u', 'origin', 'main']);[/CODE]
[CODE lang="python" title="Python"]#Örnek bir komut
subprocess.run(["git", "push", "-u", "origin", "main"])[/CODE]
Dediğim gibi, saf Discord kütüphanesi diye bir şey yoktur. Direkt Discord kütüphanesi deseniz bile daha ağza yatkın oluyor.

Aşağıdaki yazılı rehberin ilk satırına göre şu yazmakta: JavaScript'te (ve Node'da), eval(), herhangi bir dizeyi JavaScript kodu olarak değerlendiren ve onu gerçekten yürüten bir işlevdir.


Buna göre yine konuda @pottie4r haklı çıkıyor.

Ek olarak şimdi bunlar sunucunun terminalinde çalışıyor. Nasıl farklı bilgisayara kontrol sağlarım derseniz de SSH ile bağlantı yapılır ve SSH üzerinden girilecek girdiler hedef terminalde çalıştırılır. Umarım yeterince anlaşılır olmuşumdur. :)

eval() Node ortamında çalıştırıyor. Onun için yine "child process"e ihtiyaç yok mu?
 

Geri
Yukarı