wmismail Posted August 10, 2008 Share Posted August 10, 2008 Ö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. usingSystem.Diagnostics; Yazacağımız manipulateSoftwarefonksiyonu için yazıyoruz: private Processmv_prcInstaller = new Process(); Daha sonra install buttonuna tıklandığında yapılacak işlemi belirtiyoruz. private voidinstallSoftware(objectsender, EventArgse) { //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 voiduninstallSoftware(objectsender, EventArgse) { //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 voidbrowseMSIAplication(objectsender, EventArgse) { 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 voidmanipulateSoftware(stringp_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(); } Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.