Changeset 773


Ignore:
Timestamp:
12/10/2008 6:25:27 AM (6 years ago)
Author:
lowjoel
Message:

Eraser now takes two command parameters for GUI mode: --atRestart and --quiet.

  • --atRestart tells Eraser that the program was started at a system boot and should run the erase at restart tasks
  • --quiet tells Eraser to run without displaying any UI and to hide itself in the system notification area
Location:
branches/eraser6
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/Eraser/MainForm.cs

    r745 r773  
    358358            closedFromNotificationIcon = true; 
    359359            Close(); 
     360            Application.Exit(); 
    360361        } 
    361362 
  • branches/eraser6/Eraser/Program.cs

    r761 r773  
    4646            //Trivial case: no command parameters 
    4747            if (commandLine.Length == 0) 
    48                 GUIMain(false); 
     48                GUIMain(commandLine); 
    4949 
    5050            //Determine if the sole parameter is --restart; if it is, start the GUI 
     
    5252            else if (commandLine.Length == 1) 
    5353            { 
    54                 if (commandLine[0] == "/restart" || commandLine[0] == "--restart") 
    55                 { 
    56                     GUIMain(true); 
     54                if (commandLine[0] == "--atRestart" || commandLine[0] == "--quiet") 
     55                { 
     56                    GUIMain(commandLine); 
    5757                } 
    5858                else 
     
    119119        /// Runs Eraser as a GUI application. 
    120120        /// </summary> 
    121         /// <param name="isRestart">True if the program was passed the --restart 
    122         /// switch.</param> 
    123         private static void GUIMain(bool isRestart) 
     121        /// <param name="commandLine">The command line parameters passed to Eraser.</param> 
     122        private static void GUIMain(string[] commandLine) 
    124123        { 
    125124            Application.EnableVisualStyles(); 
     
    153152                MainForm form = new MainForm(); 
    154153 
    155                 //Run tasks which are meant to be run on restart 
    156                 if (isRestart) 
    157                 { 
    158                     eraserClient.QueueRestartTasks(); 
    159                 } 
    160  
     154                bool showMainForm = true; 
     155                foreach (string param in commandLine) 
     156                { 
     157                    //Run tasks which are meant to be run on restart 
     158                    switch (param) 
     159                    { 
     160                        case "--atRestart": 
     161                            eraserClient.QueueRestartTasks(); 
     162                            goto case "--quiet"; 
     163 
     164                        //Hide the main form if the user specified the quiet command 
     165                        //line 
     166                        case "--quiet": 
     167                            showMainForm = false; 
     168                            break; 
     169                    } 
     170                } 
     171                 
    161172                //Run the program 
    162173                eraserClient.Run(); 
    163                 Application.Run(form); 
     174                if (showMainForm) 
     175                    Application.Run(form); 
     176                else 
     177                    Application.Run(); 
    164178 
    165179                //Save the task list 
     
    720734                    //that the server process isn't running. Start an instance. 
    721735                    Process eraserInstance = Process.Start( 
    722                         Assembly.GetExecutingAssembly().Location); 
     736                        Assembly.GetExecutingAssembly().Location, "--quiet"); 
    723737                    eraserInstance.WaitForInputIdle(); 
    724738 
  • branches/eraser6/Installer/DirectoryStructure.wxs

    r766 r773  
    4343                    <RegistryValue Id="EraserStartup" Root="HKLM" 
    4444                        Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Run" Name="Eraser" 
    45                         Value="&quot;[!EraserExe]&quot; --restart" Type="string" /> 
     45                        Value="&quot;[!EraserExe]&quot; --atRestart" Type="string" /> 
    4646                </Component> 
    4747                <Component Id="EraserShell" Guid="4C446C7E-BCBC-4561-B8F6-D406516D356F"> 
Note: See TracChangeset for help on using the changeset viewer.