Caner Dalgıç – Infinity

Tag: taskbar

Basit C# .net İpuçları -1

by CanerD on Eyl.27, 2009, under Programlama, Yazılım

C# .net üzerinde çalışırken “Windows Aplication” projelerinde küçük özellikleri kullanmaya çalıştığınızda eski Vb esnekliğini arayabilirsiniz.

Görünen o ki, bunun üstesinden gelmenin tek yolu yine her programla platformunda olduğu gibi tecrübe kazanmak. Ben de boş vakitlerimde kendi ihtiyaçlarımı karşılayacak kişisel projeler geliştirerek bu eksikliklerimi tamamlaya çalışıyorum.

Bir programcı atasözü: Programlama, bisiklete binmek gibidir; asla unutulmaz, yanlızca pratik gerektirir.

Fazla uzatmadan ipuçlarına gelelim, zaten çok içeriğimiz yok ;

1- Taskbar İşlemleri;

Oluşturduğunuz Windows uygulamasının Kapat tuşuna tıklandığında, Simge haline getirildiğinde ya da sizin önceden belirlediğiniz bir şart gerçekleştiğinde, uygulamanın kendisine ait bir simge ile TaskBar’da gözükmesini istiyorsunuz. Bu durumda yapmanız gereken uygulamanıza bir NotifyIcon component’i eklemektir.

Bu component görünmez bir component olduğundan Form’unuzun içinde değil altında gözükecektir.

NotifyIcon’u eklediğinizde buna ait bazı Property’leri değiştirmeniz gerekecektir. Örneğin en başta yapmanız gereken Visible özelliğini True değerine getirmek olmalı. Bunun ardından da Text, Icon ve BaloonTip gibi özellikleri de değiştirmeniz görsellik açısından önemlidir. Icon özelliği aynı zamanda tıklanacak alanı belirlediğinden fonksiyonalite açısından da önemlidir. Bu özelliklerin değerlerini belirtildiği gibi yaptığınızda program çalışır çalışmaz TaskBar’da simge gözükecektir. Eğer programın çalışması esnasında Taskbardaki simgenin görünürlük zamanları değiştirilmek istenirse, kod içinde;

notifyIcon1.Visible = false;

ya da;

notifyIcon1.Visible = true;

satırlarıyla bu ayarlanabilir.

Önemli olan bir nokta da bu aracı kullanırken Taskbar’da çıkacak olan simgenin üzerine sağ tıklandığında çıkacak olan menü ve bunun özellikleridir.  Bunun için yapılması gereken işlem yine .net basitliğinde ancak yine componentlere bağlı.

Menü eklemek için yapılması gereken bir ContextMenuStrip nesnesi eklemek, Gerekli menüleri tasarlayıp görevlerini kodlamak yazmak ve NotifyIcon nesnesinin property kısmında ContextMenuStrip özelliğinde bizim eklediğimiz ContextMenuStrip nesnesini seçmek. Bu menu System Tray’de bulunan simgemizin üzerine sağ tıklandığında görünür hale gelecektir.

Burada dikkat edilmesi gereken menu’de bulunan seçeneklerin programın genel işleyişi üzerindeki etkisini göz ardı etmemektir. Aşağıda örnek programın tasarım aşamasından ekran görüntüsü veriyorum;

Örnek Program Tasarımı

Örnek Program Tasarımı

Kodlara sıra geldi.

Bu özellik (system tray icon) çok çeşitli spektrumda programlar için kullanılabilir. Bu sebeple ben basit bir örnek program yazıp yalnızca bu işlevi yapan kodlarını yayımlıyorum.

Ayrıca bu örnek programı buraya tıklayarak indirebilir ve kendiniz de inceleyebilirsiniz.

Burada benim örnek olarak hazırladığım basit uygulamaya dair kodları bulacaksınız;

 private void button2_Click(object sender, EventArgs e)
 {
 Close();
 }
 private void button1_Click(object sender, EventArgs e)
 {
 Hide();
 }
 private void menu1ToolStripMenuItem_Click(object sender, EventArgs e)
 {
 Show();
 }
 private void menu2ToolStripMenuItem_Click(object sender, EventArgs e)
 {
 Close();
 }
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
 {
 Show();
 }
 private void Form1_Resize(object sender, EventArgs e)
 {
 Hide();
 }

Burada da gördüğünüz gibi, C# .net ortamında programı TaskBar’a küçültmek kodlardan daha çok componentler le yapılan bir işlemdir.

2- Program Çalıştırma (Uygulama Çağırma);

İkinci olarak yine basit ve faydalı bir işlem olan windows application üzerinden uygulama çalıştırma ve bu uygulamalara command task vermekten bahsedeceğim.

Kısaca kodları vererek bu olayı hızlı bir şekilde çözebileceğimizi düşünüyorum :)

C# .net ortamında System.Diagnostics.Process.Start(“pathway”); kodu kullanarak her türlü dosyayı windows’un uzantısıyla eşleştirilen program ile açabilirsiniz.

Örneğin;

System.Diagnostics.Process.Start(“C:\\Temp\\deneme.txt”);

kodunu çalıştırdığımızda, uygulamamız c:\Temp\deneme.txt dosyasını önceden eşleştirildiği uygulama ile açacaktır.

Ayrıca process.start komutu ile de doğrudan doğruya .exe ya da diğer yürütülebilir uzantılardaki programları external (dışarıdan-harici) olarak çağırabilirsiniz;

Process.Start(“c:\Temp\deneme.exe”);

Burada dikkat edilmesi gereken iki nokta var. Bunlardan birincisi bu kodların içindeki “\” işareti. Bu işaret işletim sistemine göre farklılıklar gösterebilir. Genelde (Vista ve XP-Sp2) için iki adet arka arkaya ters slaş (“\\”) işareti gerekiyor. Ancak yine de dikkatli olunması gerekir. İkinci önemli nokta ise bu execution (yürütme) işlemlerinde işletim sistemi tarafından tanınan izinlerin çok büyük önem arz etmesidir. Özellikle Vista gibi izinlerin varsayılan (default) olarak kısıtlı geldiği sistemlerde dikkat edilmelidir.

Son olarak bu iki komut interchangeable yani birbirlerinin yerine kullanılabilir komutlardır.

Örnek programı indirmek için tıklayınız.

1 Comment :, , , , , , , , , more...

Bir şey mi aradınız?

Site içi arama motorunu kullanın:

Aradığınız şeyi halabulamdınız mı? Bir yorum bırakarak iletişime geçebilirsiniz!

Önerilen sayfalar!

Bu sayfalara bir göz atın...

Arşiv

Tüm makaleler, kronolojik sırayla...