ANASAYFA | BLOG | SORU CEVAP | REFERANSLARIM | DOWNLOAD | HAKKIMDA | İLETİŞİM | ARAMA
C# BİLGİSAYAR AÇILINCA PROGRAMI OTOMATİK ÇALIŞTIRMAK

Yaptığımız uygulamaların arkaplanda sürekli çalışmasını istediğimizde yada ilk açılışta açılmasını istediğimizde, programın bilgisayar açıldığında otomatik olarak başlaması gerekir. Kimi uygulamaları arkaplanda sürekli çalışır tutmak isterken, kimilerini ise hatırlatma amaçlı, kullanımı kısıtlama amaçlı (internet kafelerdeki uygulamalar gibi) ekranı kaplayarak izinsiz başka bir işlem yapılmasını kısıtlamak amacıyla kullanırız. Bu durumların hepsi için de yapmamız gereken ilk işlev programımızın bilgisayar oturumu açıldığında otomatik olarak başlayarak belirttiğimiz işlevleri yapmaya başlamasından geçer. Şimdi bunu nasıl yapacağımıza örnek bir uygulama hazırlayarak göz atalım

 

FK-gizle

Temelde bu işlev için kullanacağımız kod aşağıdaki gibi olacaktır. Bunu kendi uygulamamız için biraz daha şekillendirerek kullanacağız.

RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
key.SetValue("ProgramAdı", "\"" + Application.ExecutablePath + "\"");
 
Bu komutun çalışması için ise projemize aşağıdaki kütüphaneyi dahil etmemiz gerekiyor. Böylece Regedit işlemlerini sorunsuz olarak yapıyor olacağız. (Regedit işlemlerini daha detaylı görmek isterseniz ilgili yazıya gitmek için tıklayınız)
 
using Microsoft.Win32;
 
Bu işlemi uygulama üzerinde görmek için ise öncelikle yeni bir Form uygulaması açarak bir adet checkBox ekliyorum. Ben uygulamada başlangıçta otomatik çalışmayı kullanıcı tercihine bırakmak istiyorum, o yüzden bu checkbox ı kullanıcam, Siz otomatik başlangıçta açılsın derseniz bu şekilde checkbox kullanmanıza gerek yok, Siz direk olarak checkbox işaretlenmiş gibi işlem yapabilirsiniz. Şuan için uygulama görselimiz şu şekilde oluştu.
 
 
açılışta çalıştır
 
 
Şimdi ise projemizin kodlanmasına geçelim. İlk olarak global bir string değişken ile program adını tutuyorum, Bunu form açılışında da kullanacağım için global tanımlamayı tercih ettim. Form açılışında niye kullanıcaz_? gibi bir soru aklınıza gelebilir. Eğer kullanıcı açılışta çalışsın diye işaretlerse daha sonra programı açtığında bunu kontrol ederek eğer o isimli bir regedit kaydı varsa checkbox ı işaretli başlat, şeklinde kullanmak için program adını global tanımlamayı tercih ettim.
 
string ProgramAdi = "FarukUNAL";
        public Form1()
        {
            InitializeComponent();
        }
 
Şimdi ise ilgili checkbox ın checked_changed olayını aşağıdaki gibi kodluyoruz.
 
        private void chckAcilistaCalistir_CheckedChanged(object sender, EventArgs e)
        {
           
            if (chckAcilistaCalistir.Checked) 
            { //işaretlendi ise Regedit e açılışta çalıştır olarak ekle
                RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
                key.SetValue(ProgramAdi, "\"" + Application.ExecutablePath + "\"");
            }
            else
            {  //işaret kaldırıldı ise Regeditten açılışta çalıştırılacaklardan kaldır
                RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run",true);
                key.DeleteValue(ProgramAdi);
            }
        }
 
 
Şimdi projemiz hazır diyebiliriz ama ilk kısımda da bahsettiğim gibi program açıldığında eğer otomatik çalıştırma konumunda ise bunu işaretli getirmek içinde küçük bir düzenleme yapmamız gerekiyor. Şimdi de onun ayarlanmasına bir göz atalım
 
public Form1()
        {
            InitializeComponent();
            try
            {
                RegistryKey key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);
                if (key.GetValue(ProgramAdi).ToString() == "\"" + Application.ExecutablePath + "\"")
                { // Eğer regeditte varsa, checkbox ı işaretle
                    chckAcilistaCalistir.Checked = true;
                }
            }
            catch 
            {
                
            }
        }
 
 
 
Artık projemiz hazır. Programı çalıştırarak başlangıçta çalıştır dediğimizde ise bilgisayarı kapayıp tekrar açtığımızda programımızın otomatik olarak başladığını göreceğiz. Hemde win8 öncesi sürümlerde çalıştır\msconfig, win8 ve üzerinde ise GörevYöneticisi\Başlangıç bölümünden bilgisayar açıldığında otomatik olarak çalışan uygulamalara baktığımızda programımızın orada yer aldığını aşağıdaki gibi göreceğiz
 
 
açılıştaÇalıştır
 
 
 
Üstteki resimden de gördüğünüz gibi artık uygulamamız bilgisayar açıldığında otomatik olarak başlayacaktır. Uygulamayı kendi bilgisayarınıza indirerek test etmek isterseniz projeyi aşağıdaki link ile indirebilirsiniz.
 
//ÖRNEK PROJE İNDİR
 



Diğer Yazılarımdan Seçmeler...