Arkadaşlar HTC VIVE için bir yazılım geliştiriyorum ve sürem kısıtlı. Çalıştırdığım uygulamaları belirli bir sürenin ardından sonlandırabilmem gerekiyor.
Dosyayı seçtirip, konum bilgisine erişip o bilgi ile çalıştırma kısmında problem yok. Ancak çalıştırdığım uygulamayı ne şekilde kapatabilceğimi bilmiyorum, mantığım tıkandı Yine dosya konumunu kullanarak kapatabilmen ne ala ancak sanıyorum ki görev yöneticinde dikkatimi çeken PID değerini kullanarak bir şeyler yapmamız gerekecek.
Bilgi sahibi olan, yardımcı olabilecek seviyede olanlar lütfen ulaşsın. @byanigli
C# bilgim yok hacı. Fakat her sorun için bir çözüm kaynağı vardır. Ufak bir Google araması ile şöyle bir sonuca ulaştım. Proccess ID üzerinden şu şekilde programı kapatabiliyor fakat belirlenmiş bir süre içerisinde değil. Eğer belli bir geri sayım ya da süre sınırlandırması için fonksiyon yazabilirsen, bana kalırsa sunuca ulaşabilirsin.
Hacım harbiden işe yarıyor Az önce 1172 PID'li Chrome uygulamasını kökten kapattım
Dün geceye kadar bu işle uğraşınca beynim yandı sanırsam, milyon dolarlık proje senin sayende ayakta yine
Unutmadan sistem kütüphanesine "using System.Diagnostics" eklemek gerekiyor Proccess komutlarını tanıması için.
Ben biraz kafa yorayım devamını da getiririm.
Yalnız çalıştırılan programa ait PID de bulunmak zorunda
İlginiz için cidden teşekkür ederim. Üzerinde çalıştığım yazılımda "çalıştırılan programı tekrardan kapatabilmem için programa ait bir bilgi - kimlik yakalamam ve onu kullanabilmem" gerekiyordu.
Ne yalan söyleyeyim 10 saattir sizlerin de paylaştığı komutları deniyorum, test ediyorum.
Process.GetProcessesByName komutu kapatmaya yarıyor ancak çalıştırılan programın kimliğini de bir şekilde bulup o ("") 2 parantez arasına sokabilmek gerekiyor anladığım kadarıyla.
Öncelikle OpenFileDialog ile bir pencere açtırıp müşteriye istenilen kriterlere uygun dosya seçtiriliyor. FileName komutu ile dosyanın konum bilgisi alınıp aşağıdaki kod ile uygulama çalıştırılıyor başarılı bir biçimde.
Onu da @Erkan Çevik 'in verdiği kod ile sonlandırıyoruz kolayca
Foreach döngüsü kuruyoruz ki Chrome gibi aynı isim ile birden çok uygulama başlatan programlar tamamen kapatılabilsin.
Kod:
Process[] programkapat = Process.GetProcessesByName(textBox5.Text);
if (programkapat.Length > 0)
{
foreach (Process p in programkapat)
{
p.Kill();
}
}
Aynı sorundan müzdarip olabilecek insanlar için detaylı yazdım, teşekkür ederim yardımlarınız için.