Changeset 2197


Ignore:
Timestamp:
Dec 11, 2010, 9:16:00 PM (11 years ago)
Author:
sauer
Message:

AutoUpdate:

  • info tab: restart button fix
  • changed default settings
  • CrypUpdater: improved error handling
Location:
trunk
Files:
3 edited

Legend:

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

    r2153 r2197  
    99using System.Threading;
    1010using System.Windows.Threading;
     11using System.IO;
    1112using Ionic.Zip;
     13using System.ComponentModel;
    1214
    1315
     
    5153                if (p.WaitForExit(1000 * 30))
    5254                {
    53                     unwantedProcesses = FindCrypToolProcesses(CryptoolExePath);
     55                    unwantedProcesses = FindCrypToolProcesses(CryptoolFolderPath);
    5456                    if (unwantedProcesses.Count == 0)
     57                    {
    5558                        UnpackZip(ZipFilePath, CryptoolFolderPath);
     59                        RestartCryptool();
     60                    }
    5661                    else
    5762                    {
     
    7277                            p.Kill();
    7378                            p.WaitForExit();
    74                             unwantedProcesses = FindCrypToolProcesses(CryptoolExePath);
     79                            unwantedProcesses = FindCrypToolProcesses(CryptoolFolderPath);
    7580                            if (unwantedProcesses.Count == 0)
     81                            {
    7682                                UnpackZip(ZipFilePath, CryptoolFolderPath);
     83                                RestartCryptool();
     84                            }
    7785                            else
    7886                            {
     
    8290                        catch (Exception)
    8391                        {
    84                             unwantedProcesses = FindCrypToolProcesses(CryptoolExePath);
     92                            unwantedProcesses = FindCrypToolProcesses(CryptoolFolderPath);
    8593                            if (unwantedProcesses.Count == 0)
     94                            {
    8695                                UnpackZip(ZipFilePath, CryptoolFolderPath);
     96                                RestartCryptool();
     97                            }
    8798                            else
    8899                            {
     
    119130            catch (ArgumentException) // the invoking process has already exited (no such process with this id exists)
    120131            {
    121                 unwantedProcesses = FindCrypToolProcesses(CryptoolExePath);
     132                unwantedProcesses = FindCrypToolProcesses(CryptoolFolderPath);
    122133                if (unwantedProcesses.Count == 0)
     134                {
    123135                    UnpackZip(ZipFilePath, CryptoolFolderPath);
     136                    RestartCryptool();
     137                }
    124138                else
    125139                {
     
    155169                KillOtherProcesses(unwantedProcesses);
    156170                UnpackZip(ZipFilePath, CryptoolFolderPath);
     171                RestartCryptool();
    157172            }
    158173            else
     
    214229            try
    215230            {
     231
    216232                using (ZipFile zip = ZipFile.Read(ZipFilePath))
    217233                {
     234
    218235                    int count = zip.Entries.Count;
    219236                    int i = 0;
     
    228245                    }
    229246
    230                     RestartCryptool();
    231 
    232                 }
    233             }
    234             catch (Exception)
    235             {
    236                 MessageBox.Show("Update failed. CrypTool 2.0 will be restarted.", "Error");
    237                 RestartCryptool();
    238             }
    239 
    240         }
    241 
    242 
    243         private List<Process> FindCrypToolProcesses(string cryptoolExePath)
     247                }
     248
     249            }
     250            catch (Exception e)
     251            {
     252                MessageBox.Show("Extraction failed: "+e.Message+". CrypTool 2.0 will be restarted.", "Error");
     253                RestartCryptool();
     254            }
     255
     256        }
     257
     258
     259        private List<Process> FindCrypToolProcesses(string cryptoolFolderPath)
    244260        {
    245261            List<Process> processList = new List<Process>();
    246262
    247             foreach (Process p in Process.GetProcesses())
    248             {
    249                 if (p.ProcessName == "CrypStartup" && p.MainModule.FileName == cryptoolExePath)
    250                     processList.Add(p);
     263            try
     264            {
     265                foreach (Process p in Process.GetProcesses())
     266                {
     267                    if (Path.GetDirectoryName(p.MainModule.FileName) == cryptoolFolderPath)
     268                        processList.Add(p);
     269                }
     270            }
     271            catch (Win32Exception)
     272            {
     273                //32 bit updater cannot check for 64 bit processes
    251274            }
    252275
Note: See TracChangeset for help on using the changeset viewer.