Kapanan Programın Kendini Silmesi İşlemi

Kapanan Programın Kendini Silmesi İşlemi

Programlama dillerinde bu işlem için genelde işletim sisteminin araçlarından faydalanılır. Komut istemi, toplu iş dosyaları, terminal vs.

Bu yazıda C# ile Windows’ta bu işlemin nasıl yapıldığını göreceğiz. Bunun için gerekli olan referanslar System.IO ve System.Diagnostics.

System.IO ile komut dosyası oluşturacağız ve System.Diagnostics referansı içerisinden Process kullanarak bu komut dosyasını çalıştıracağız. Arka planda komut dosyası çalışırken o an kapatılan programın silinmesini sağlayacağız.

Aşağıda örnek bir yazım şekli göreceksiniz.

using System;
using System.IO;
using System.Diagnostics;

namespace Ornek
{
  public partial class FrmUI : Form
    {
        
       public FrmUI()
        {
            InitializeComponent();       
        }
           private void FrmUI_FormClosed(object sender, FormClosedEventArgs e)
            {
            StreamWriter batOlustur = new StreamWriter("KalintiTemizleyici.bat");
            batOlustur.WriteLine("timeout /t:3");
            batOlustur.Write("del /f /q /s Ornek.exe");
            batOlustur.Close();
            ProcessStartInfo temizleyiciInfo = new ProcessStartInfo("KalintiTemizleyici.bat");
             temizleyiciInfo.WindowStyle = ProcessWindowStyle.Hidden;
             temizleyiciInfo.CreateNoWindow = true;
            Process temizleyici = new Process();
           temizleyici.StartInfo = temizleyiciInfo;
            temizleyici.Start();
           }
}
} 

Buradaki örnekte StreamWriter ile toplu iş dosyası oluşturduk. Bu dosyayı çalıştırmak içinse bir Process oluşturduk ve bilgilerini barındıran bir ProcessStartInfo nesnesi oluşturduk. Infodan gelen bilgiler ile Process‘i program kapandığında yani FormClosed olayında başlatarak programın kendini silecek komutları çalıştıran bir Process‘i başlatmış oldu. StreamWriter ile bat dosyası oluştururken, Windows’un temel komut yapısında bulunan timeout ve del komutlarını kullandık. Üç saniye gecikmeli olarak del komutunu başlatıyoruz. Böylece programımızın tamamen kapandığından emin olup hata vermeden dosyanın silinmesini sağlıyoruz.

Ferhat Kurt

İlgili Yazılar
Cevap yaz