C# Yardım
-
Selam arkadaşlar yeni başladığım bir proje ile ilgili bir sorum olucak. Kullanıcı işletim sisteminde açtığı klasörleri, exeleri veya benzeri dosyaları açtığında projemdeki listeye kaydetmesini istiyorum bunu nasıl yapıcam ve aynı zaman da bu dosyaları istediğimde kapatmak istiyorum. Örnek olarak kullanıcı winamp ve wordu açtı bu benim formundaki listede gözükücek kullanıcı winamp kapatmak istiyo diyelim bir buttonu tıklayarak nasıl kapatabilir? Kısacası görev yöneticisi gibi bir proje olucak.
-
dediklerini tam olarak anlayamadım fakat bu olay Process (işlem) kontrolune girer.
bi ip ucu vererek başlıyım
mesela ilk önce kütüphanemize ;
using System.Diagnostics; // kütüphaneye ekledik..
şöyle bir örnek vermek istiyorum..mesela şuan pcnde çalışan programları görmek istiyosan (ramdeki yani) şu kodla sorgulatıp alırsın.
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.Clear();
Process[] get = Process.GetProcesses();
{
foreach (Process get2 in get)
{
listBox1.Items.Add(get2.ProcessName);
}
}
}/////////// yani dedikki form yüklenirken ramdaki işlemleri al listboxa yerleştir :| bu kodu geliştirerek kullanıcı yeni bi işlem başlattığında ProcessName methodundan (yda ID) programın adını listboxa yükletebilirsin..karıştır biraz
// pardon bide kapatmak istiyomuşsun.. oda basit
daha önce yukarda işlemleri listboxumuza aldık
Process[] get = Process.GetProcessesByName(listBox1.Text);
{
foreach (Process get2 in get)
{
get2.Kill();
}
}--/ bu kodu bir buttona ekle ve listboxda sonlandırmak istediğin işlemin ismini seç. butona bas.ve işlem kapanacaktır. (sona erecektir)
sorunu tam anlayamadığım için bukadar yardımcı olabilidm kusura bakma :| hadi koly gelsin
ne
-
Kafamdaki soruların çoğunu cevaplamışsın zaten çok saol. Sorum tam olarak şuydu. diyelim ki user Belgelerimi açtı listeye belgelerim eklendi listeden Belgelerimi tıklayıp kapat butonuna basınca Belgelerim kapanıcak. Demek istediğim buydu.
Ayrıca Process meto ile klasör isimlerini felan da alabilirmiyiz? Görev yöneticisinde klasörler işlemler sekmesinde explorer adında gözüküyor çünkü.
-
aSdFgH bunu yazdı:
-----------------------------Kafamdaki soruların çoğunu cevaplamışsın zaten çok saol. Sorum tam olarak şuydu. diyelim ki user Belgelerimi açtı listeye belgelerim eklendi listeden Belgelerimi tıklayıp kapat butonuna basınca Belgelerim kapanıcak. Demek istediğim buydu.
Ayrıca Process meto ile klasör isimlerini felan da alabilirmiyiz? Görev yöneticisinde klasörler işlemler sekmesinde explorer adında gözüküyor çünkü.
-----------------------------bilemiyorum, ama zannetmiyorum onun için farklı bişey bulacaksın.
-
HoLyZone bunu yazdı:
-----------------------------aSdFgH bunu yazdı:
-----------------------------Kafamdaki soruların çoğunu cevaplamışsın zaten çok saol. Sorum tam olarak şuydu. diyelim ki user Belgelerimi açtı listeye belgelerim eklendi listeden Belgelerimi tıklayıp kapat butonuna basınca Belgelerim kapanıcak. Demek istediğim buydu.
Ayrıca Process meto ile klasör isimlerini felan da alabilirmiyiz? Görev yöneticisinde klasörler işlemler sekmesinde explorer adında gözüküyor çünkü.
-----------------------------bilemiyorum, ama zannetmiyorum onun için farklı bişey bulacaksın.
-----------------------------Ewt sanırım onun için farklı birşey var. Çünkü klasörler explorer.exe nin altında sanırım ona müdale etmem lazım Ayrıca
listBox2.Items.Add(get2.MainWindowTitle.ToString()); komutu ile de başlat çubuğundaki programların title öğrenilyormuş. Sanılım bu sayede listedeki programlardan eleme yapabilirim. Nede olsa system dosyalarını listemde göstermek istemiyorum.
-
aSdFgH bunu yazdı:
------------------------------
Ewt sanırım onun için farklı birşey var. Çünkü klasörler explorer.exe nin altında sanırım ona müdale etmem lazım Ayrıca
listBox2.Items.Add(get2.MainWindowTitle.ToString()); komutu ile de başlat çubuğundaki programların title öğrenilyormuş. Sanılım bu sayede listedeki programlardan eleme yapabilirim. Nede olsa system dosyalarını listemde göstermek istemiyorum.
-----------------------------mantıklı
-
Process numarasına göre kapatabilirsin ancak. Mesela wmplayer için düşünürsek eğer;
Process []islem = Process.GetProcesses();
foreach(Process i in islem)
{
string s = i.ProcessName;
s = s.ToLower();
if (s.CompareTo("wmplayer") == 0)
{
i.Kill();
}}
-
tomu bunu yazdı:
-----------------------------Process numarasına göre kapatabilirsin ancak. Mesela wmplayer için düşünürsek eğer;
Process []islem = Process.GetProcesses();
foreach(Process i in islem)
{
string s = i.ProcessName;
s = s.ToLower();
if (s.CompareTo("wmplayer") == 0)
{
i.Kill();
}}
-----------------------------Programları kapatmakta sorun yok. Sorun klasörleri kapatmakda. Klasörler Explorer içersinde gözüküyor. Explorer kapatınca açık klasörlerde kapanıyor. Aynı zamanda listeletme yaparken klasörleride görmüyor.
-
tomu bunu yazdı:
-----------------------------Process numarasına göre kapatabilirsin ancak. Mesela wmplayer için düşünürsek eğer;
Process []islem = Process.GetProcesses();
foreach(Process i in islem)
{
string s = i.ProcessName;
s = s.ToLower();
if (s.CompareTo("wmplayer") == 0)
{
i.Kill();
}}
-----------------------------gerek yok çok uzun yöntem
-
Yabancı bi kaynak buldum. Ama fazla anlıyamadım. Birde siz bakın isterseniz.
-
msdn sana yabancı gelmemeli .. Eğer öyleyse, herşeyi bırak, msdn'yi anlamaya çalış.:)
