C# ile yazılımları yükleme ve kaldırma işlemleri

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 12:28

Öncelikle programın iç yapısından bahsetmek istiyorum. Bunları maddeler halinde belirtirsem sanırım daha iyi bir kolaylık olur.

Windows Installer’dan yararlanmak için Microsoft’un bize sunduğu msiexec.exe bileşenini kullanırız. Bu bileşenle birlikte “.msi” dosyalarının yükleme, kaldırma ve onarma işlemlerini gerçekleştirebiliriz. Msiexec.exe’nin de tıpkı diğer exe dosyaları gibi özel parametreleri vardır. Bu .exe’nin detaylarını öğrenmek için şurayı ziyaret edebilirsiniz. Şimdi gelelim msiexec.exe içinde bize lazım olacak kısımlara.


1- Setup Ayarları

- Yükleme işlemleri için “/i”.
- Kaldırma işlemleri için “/x”.
- Onarma işlemleri için “f”.

2- Ekran Ayarları

- Kullanıcı arayüzü görünmüyorsa “/qn”.
- Dialog boxla beraber sınırlı kullanıcı görünüp yükleme işlemi tamamlanıyorsa “/qb”.
- Dialog boxla kullanıcı arayüzü tamamen görünüyorsa “/qr”.
- Dialog box dışında kullanıcı arayüzü görünmüyorsa “/qf”.

Böylelikle projenin kodlamasında göreceğimiz parametrelerin de ne anlama geldiğini hemen hemen öğrenmiş olduk. Artık projemizi geliştirebiliriz.

Öncelikle aşağıdaki tasarımı yapmamız gerekiyor:



Yaptığımız şey bir open file dialog box koymak ve ismini ofdMsiBrowser olarak değiştirmek.


Kod bölümüne geçiyoruz. System.Diagnostics namespaceini projemize eklemek zorundayız.

 

using System.Diagnostics;

Yazacağımız manipulateSoftware fonksiyonu için yazıyoruz:

private Process mv_prcInstaller = new Process();




Daha sonra install buttonuna tıklandığında yapılacak işlemi belirtiyoruz.

private void installSoftware(object sender, EventArgs e)

{

//yükleme işlemi yapacağımızdan göndereceğimiz komut -> /i

manipulateSoftware("/i");

}

 




Diğer buttonda ise uninstall işlemini yapacağımızı belirtiyoruz.

private void uninstallSoftware(object sender, EventArgs e)

{

//silme işlemi yapacağımızdan göndereceğimiz komut -> /x

manipulateSoftware("/x");

}

 

Browse buttonuna tıklandığında gerçekleşecek işlemler için aşağıdaki kodları yazıyoruz.

private void browseMSIAplication(object sender, EventArgs e)

{

ofdMsiBrowser.InitialDirectory = @"C:\";

//.msi dosyalarıyla çalışacağımızdan;
ofdMsiBrowser.Filter = "msi installer files (*.msi)|*.msi";

if (ofdMsiBrowser.ShowDialog() == DialogResult.OK)

txtPath.Text = ofdMsiBrowser.FileName;

}

 

Son olarak kodların en başında belirttiğimiz manipulateSoftware fonksiyonunu yazıyoruz.

private void manipulateSoftware(string p_strAccion)

{

//böylelikle programın ekran özelliklerini de ayarlamış oluyoruz

mv_prcInstaller.StartInfo.FileName = "msiexec.exe";

mv_prcInstaller.StartInfo.Arguments = p_strAccion + "\"" + txtPath.Text + "\"" +"/qn";

mv_prcInstaller.Start();

}



Her şey bu kadar. Şimdi projemizi çalıştırıp C:\’nin içinden bir .msi dosyası seçip programın nasıl çalıştığını görebilirsiniz.


Dilersek bir de repair buttonu yapıp şu kodları yazarak kullanabilirdik:

private void repairSoftware()

{

Process p = new Process();

p.StartInfo.FileName = "msiexec.exe";

p.StartInfo.Arguments = "/f \"C:\\Application.msi\"/qn";

p.Start();
}

Umarım farklı ve işinize yarar bir makale olmuştur.


Tekrar görüşmek üzere, C# ile kalın.

Kaynaklar:

- Microsoft
- Code Project

 

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Software | Articles | Windows

Yorum ekle


(Gravatar simgesini gösterecek)  

  Country flag

biuquote
  • Yorum
  • Canlı önizleme
Loading





Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.
Sitedeki kod ve tasarım değişiklikleri ise Yağız Gönüler tarafından geliştirilmiştir.
2008 © www.yagizgonuler.com

Şifahen değil acilen!

Anket

Yazılım geliştirirken en keyif aldığınız alan hangisi?




Sonuçlar

Son Yorumlar

Comment RSS

Calendar

<<  Ocak 2009  >>
PaSaÇaPeCuCuPa
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678

Yazıları geniş takvimde göster

Ne Dinliyorum?

Kirpi - TearDrop (12 saat önce)
Kirpi - My Name Is Kirpi (12 saat önce)
Kirpi - The Song (12 saat önce)
Kirpi - Spell (12 saat önce)
Huseyin Karadayi - Bonus Track Funk Clarinet (String Mix) (12 saat önce)
Huseyin Karadayi - Sacred Gate (12 saat önce)
Huseyin Karadayi - Exotica (13 saat önce)
Huseyin Karadayi - Take Me Away / No Time To Waste (Vocal By Melis Sökmen) (13 saat önce)
Huseyin Karadayi - Eyes Don't Lie (Duet By Enoi & Funky C) (13 saat önce)
Huseyin Karadayi - This Way (Usy Groove) (13 saat önce)

Ne Okuyorum?


Haftanın Sözü


"Sukûnetim asaletimdendir;
Lâkin her lâfa verilecek bir cevabım var.
Bir bakarım lâf lâfmı diye,
Birde bakarım söyleyen adammı diye.."

Mevlânâ Celaleddin-i Belhi Rumi
(1207-1273)

Adanmış Hayatlar

"Zaten aşklar hep yalan dolan,
Sonu hep acı hüsran.
Bize her sevdadan geriye kalan
Sadece Galatasaray..
"

Son Dakika

İstanbul'da Hava

ISTANBUL

Ziyaretçi Sayısı

Ziyaretçi Sayısı