Changeset 2735


Ignore:
Timestamp:
Feb 18, 2011, 8:18:10 PM (11 years ago)
Author:
sauer
Message:

AutoUpdate: msi update admin rights management

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypUpdater/App.xaml.cs

    r2655 r2735  
    103103                    UnpackZip(filePath, cryptoolFolderPath);
    104104                else
     105                    StartMSI();
     106            }
     107            else
     108                AskForLicenseToKill();
     109        }
     110
     111        private void StartMSI()
     112        {
     113            try
     114            {
     115                DirectorySecurity ds = Directory.GetAccessControl(cryptoolFolderPath);
     116
     117                Process p = new Process();
     118                p.StartInfo.FileName = "msiexec.exe";
     119                p.StartInfo.Arguments = "/i \"" + filePath + "\" /qb /l* install.txt INSTALLDIR=\"" + cryptoolFolderPath + "\"";
     120                p.Start();
     121                p.WaitForExit();
     122                if (p.ExitCode != 0)
     123                    MessageBox.Show("The exit code is not equal to zero. See log file for more information. CrypTool 2.0 will be restarted.", "Error");
     124            }
     125            catch (UnauthorizedAccessException)
     126            {
     127                WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
     128
     129                if (!pricipal.IsInRole(WindowsBuiltInRole.Administrator))
    105130                {
    106131                    Process p = new Process();
    107132                    p.StartInfo.FileName = "msiexec.exe";
    108133                    p.StartInfo.Arguments = "/i \"" + filePath + "\" /qb /l* install.txt INSTALLDIR=\"" + cryptoolFolderPath + "\"";
     134                    p.StartInfo.UseShellExecute = true;
     135                    p.StartInfo.Verb = "runas";
    109136                    p.Start();
    110137                    p.WaitForExit();
     
    112139                        MessageBox.Show("The exit code is not equal to zero. See log file for more information. CrypTool 2.0 will be restarted.", "Error");
    113140                }
    114             }
    115             else
    116                 AskForLicenseToKill();
     141                else
     142                    MessageBox.Show("MSI update failed: CrypTool 2.0 will be restarted.", "Error");
     143            }
     144            catch (Exception e)
     145            {
     146                MessageBox.Show("MSI update failed: " + e.Message + ". CrypTool 2.0 will be restarted.", "Error");
     147            }
    117148        }
    118149
Note: See TracChangeset for help on using the changeset viewer.