Programınız Bir Kez Çalışsın!

Bazı durumlarda programınızın birden fazla çalışmamasını istemeyebilirsiniz. Böyle bir durumla karşılaşınca bu iş için C# cephesinde özel kod araştırmasına başladım, ancak bir sonuca ulaşamadım. Bunun için kendim bir çözüm aramaya başladım. Mini bir görev yöneticisi (taskbar) ile istediğim sonuca ulaşabilirdim. Başka yöntem veya bilgilerinizi paylaşırsanız sevinirim.

Program taskbarda ” deneme1234 ” adında yer aldığı düşünülerek yazılmıştır.

using System.Diagnostics;

/* İsim kütüphanesi ekleniyor. Kullanacağımız Process sınıfı Diagnostics kütüphanesinde yer alıyor*/

private void FormAcilis_Load(object sender, EventArgs e) {

Process currentProcess = Process.GetCurrentProcess();

/* Programımızın çalışma özelliklerini alabilmemiz için currentProcess değişkenini tanımlıyoruz*/
Process[] localByName = Process.GetProcessesByName(“deneme1234”);

/* Çalışan Programlardan adı ” deneme1234 ” olanların özellikleri localByName dizi değişkenine aktarılıyor.*/

foreach (Process Prcs  in localByName) {

/* localByName dizisi içindeki değerler Prcs içine aktarılıyor.*/

if (Prcs.Id.ToString() != currentProcess.Id.ToString()) {

/* currentProcess değişkenimize kendi programımızın özelliklerini almıştık. currentProcess.Id.ToString() ile programımızın çalıştığı anda işletim sisteminin programa atadığı id yi alıyoruz. Sonra sırayla deneme1234 olan uygulamalarınkiyle karşılaştırıyoruz. Örnek olarak; bizim programımız ilk çalıştığında Id olarak 198690 aldı ise ikinci defa çalıştırılmak istenirse 125631 alacaktır. != ifadesi ilede ikisinin farklı olması durumunda programın ikinci defa çalıştırılmak istendiğini anlıyoruz. */

MessageBox.Show(“Program Sadece Birkez Çalıştırılabilir”);

/* Kullanıcıya uyarımızı gösteriyoruz. */

Application.Exit();

/* Programımızı kapatıyoruz. */

}
}

}

Bir yorum bırakın

This site uses Akismet to reduce spam. Learn how your comment data is processed.