C# – System Tray – Uygulamayı görev çubuğunda çalıştırma
C#’de system tray yani bildiğimiz gibi uygulamamızı Windows görev yöneticisindeki arka plan çalışan uygulamaların arasında çalıştırmak. Windows saat göstergesinin hemen yanındaki ikonların arasında olmak için öncelikle 1 adet notifyIcon, 1 adet ise ContextMenuStrip‘i formumuza sürükleyip bırakmamız gerekiyor.
Neyse ki, bu işlem kesinlikle zor değil ben bilmeyenler için daha detaylı anlattım hatta programcılıktan anlamayan birisi bile rahatlıkla yapabileceğini düşünüyorum ama yine de anlamadım, yapamadım gibi sorunlarla karşılaşırsanız mutlaka yorumlardan bana bildiriniz.
Elbette yardımcı olacağım.
Yeni proje oluşturuyoruz.
notifyIcon’u forma sürükleyip bırakıyoruz.
notifyIcon’u taşıdıktan sonra ismi otomatik notifyIcon1 olarak değişecektir. Adını değiştirmeyin.
Her neyse taşıdıktan sonra hemen alt tarafta yer alacaktır işte resimdeki gibi bu bölgede olacak.
Kodları belirttiğim yere yapıştırın.
Kodlar:
if (FormWindowState.Minimized == this.WindowState)
{
notifyIcon1.Visible = true;
notifyIcon1.ShowBalloonTip(500);
this.Hide();
}
else if (FormWindowState.Normal == this.WindowState)
{
notifyIcon1.Visible = false;
this.Show();
}
Şimdi 1 adet ContextMenuStrip’i formumuza sürükle-bırak yaparak taşıyoruz.
Zaten resimlerde de detaylı tarif etmişim 🙂
System Tray (görev yöneticisi)nde yer alan uygulamamıza sağ tıkladıktan sonra hangi seçeneklerin
gelmesini belirtiniz.
Bu işlem iki çok önemli şey var.. Birincisi ikonumuzu belirmezsek uygulamamız System Tray (görev yönetici uygulamaları arasında) gözükmeyecektir. İkincisi ContextMenuStrip’i belirlemezsek sağ tık -> çıkış yap özellikleri de gözükmez.
Eğer .ICO formatlı dosyasnız yoksa.. www.convertico.com‘dan PNG dosyanızı ICO’ya çevirebilirsiniz.
İkonumu belirledim. Şimdi uygulamamızı çalıştırıp deneyebiliriz.
Programımız başarıyla görev yöneticisi uygulamalarının arasına girmiş görülüyor.
Sağ tık yapıp diğer seçeneklere ulaşılabilir her şey tamam. 🙂
Merhabalar.. Ben de yazdığım programı setup haline getirdim fakat veritabanı olarak kullandığım excel dosyası arka planda çalışmaya devam ettiği için formlar arasında geçiş yapıp başka bir veri kaydetmek istediğimde hata veriyor. arka planda çalışan exceli kapatmadan işlem yapmıyor. visual basic dili kullandım programda.. yardımcı olursanız çok sevinirim..
Bilgi hazneme yeni bir bilgi eklenmiş oldu ve çokta işimi gördü Teşekkürler. 🙂
hocam peki çarpı tuşuna bastığımızda kapanmasını engelleyip, saatin yanında simgesinin çalışmasına devam ettirebilir miyiz?
evet ettirebilirsin. Properties bölümünde Windows style ın altında control box var o kısımı false yaparak programı form üzerinde ki çarpıdan kapanmasını küçülmesini ve büyümesini kapatabilirsin.
Minimize boyuta almak için programın bir köşesine programı gizle butonu koyarak çift tıklayım ‘ this.hide(); ‘ komutu ile programı aşağıya almış gibi gizleyebilir ve saatin bulunduğu yerden programın simgesiyle programı ekrana getirebilirsiniz. Aynı şekilde bir köşesine koyacağınız çıkış butonu ilede programı sonlandırabilirsiniz.
çok teşekkürler. o kadar sitede aradım en sade ve anlaşılır siz anlatmışsınız.
Rica ederim. İlginiz için teşekkürler 🙂
Çok teşekkür ederim elinize sağlık