close

(1)起一個專案Uninstall,只一個表單程式碼如後。
  主要是呼叫System32下msiexec.exe來執行新增移除程式,然後自己關掉。
(2)主程式的封裝專案 \ 檔案系統 \應用程式資料夾中,加入上面專案編譯後的Uninstall.exe
(3)在「應用程式資料夾」中點Uninstall.exe右鍵\建立Uninstall.exe的捷徑
(4)將捷徑複製到 檔案系統 \ 使用者的程式功能表資料夾中
    public Form1()
        {
            InitializeComponent();
            this.ShowInTaskbar = false;
            this.FormBorderStyle = FormBorderStyle.None;
            DoUnInstall();
        }
        private void DoUnInstall()
        {
            using (Process p = new Process())
            {
                ProcessStartInfo info = new ProcessStartInfo();
                info.FileName = System.IO.Path.Combine(System.Environment.SystemDirectory, "msiexec.exe");
                //package 修復或移除//uninstall 直接移除 //封裝專案之ProductCode  
                info.Arguments = " /package {2D1A26B3-6A6B-48ED-9444-7CAD52822052}";
                info.CreateNoWindow = true;
                p.StartInfo = info;
                p.Start();
            }
            killProcess(Application.ProductName);
        }

        private void killProcess(string ApplicationName)
        {
            Process[] allProcess = Process.GetProcesses();
            foreach (Process p in allProcess)
            {

                if (p.ProcessName.ToLower() + ".exe" == ApplicationName.ToLower() + ".exe")
                {
                    for (int i = 0; i < p.Threads.Count; i++)
                    {
                        p.Threads[i].Dispose();
                    }
                    p.Kill();
                    //isRun = true;  
                    //break;  
                }
            }

        }  

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 11 的頭像
    11

    冠霖的部落格

    11 發表在 痞客邦 留言(0) 人氣()