home *** CD-ROM | disk | FTP | other *** search
/ Softwarová Záchrana 3 / Softwarova-zachrana-3.bin / StartRight / source.zip / UnitFrmMain.pas < prev    next >
Pascal/Delphi Source File  |  2004-10-08  |  4KB  |  191 lines

  1. unit UnitFrmMain;
  2. {
  3.     Purpose:
  4.         Let the user Install ME, Restore settings to the system,
  5.         or edit startup programs
  6.  
  7.     Updates:
  8.         Fix for large fonts :(
  9.         New Options button        
  10. }
  11.  
  12. interface
  13.  
  14. uses
  15.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  16.   Dialogs, StdCtrls, ComCtrls,
  17.   UnitMyRegistry, UnitStartupMover, UnitStartupRunner,
  18.   ShellAPI, ExtCtrls;
  19.  
  20.  
  21.  
  22. type
  23.   TfrmMain = class(TForm)
  24.     Image1: TImage;
  25.     Label5: TLabel;
  26.     Shape1: TShape;
  27.     Shape2: TShape;
  28.     Label4: TLabel;
  29.     Label3: TLabel;
  30.     btnRestore: TButton;
  31.     Label2: TLabel;
  32.     Label1: TLabel;
  33.     btnInstall: TButton;
  34.     btnEditSort: TButton;
  35.     Label6: TLabel;
  36.     bAbout: TButton;
  37.     bOptions: TButton;
  38.     Label7: TLabel;
  39.     procedure FormDestroy(Sender: TObject);
  40.     procedure btnInstallClick(Sender: TObject);
  41.     procedure btnRestoreClick(Sender: TObject);
  42.  
  43.     procedure btnEditSortClick(Sender: TObject);
  44.     procedure bAboutClick(Sender: TObject);
  45.     procedure bOptionsClick(Sender: TObject);
  46.   private
  47.     { Private declarations }
  48.     procedure UpdateButtons;
  49.  
  50.   public
  51.     { Public declarations }
  52.     sm : TStartupMover;
  53.     sr : TStartupRunner;
  54.     procedure MyCreate;
  55.   end;
  56.  
  57.  
  58.  
  59. var
  60.   frmMain: TfrmMain;
  61.  
  62. implementation
  63.  
  64. uses UnitFormEdit, UnitFrmAbout, UnitFrmDummyRunner, UnitFrmOptions,
  65.   UnitUtils, UnitCPUUsage, UnitFrmAutoTuneError;
  66.  
  67. {$R *.dfm}
  68.  
  69.  
  70.  
  71.  
  72. procedure TfrmMain.FormDestroy(Sender: TObject);
  73. begin
  74.     sr.Free;
  75.     sm.Free;
  76. end;
  77.  
  78. procedure TfrmMain.btnInstallClick(Sender: TObject);
  79. begin
  80.     if (sm.IsFirstMove) then begin
  81.         if MessageDlg('This is the first installation. Make sure StartRight is'
  82.         + ' in its permanent folder location before installing' + #13#10
  83.         + ' Continue?',
  84.  
  85.             mtConfirmation, [mbOK, mbCancel], 0) = mrCancel then begin
  86.             exit;
  87.         end;
  88.     end;
  89.     sm.SetupSelfToRun;
  90.     //sm.MoveRunKeyItems;
  91.     //sm.MoveStartupFolderItems;
  92.     sr.RefreshItems;
  93.  
  94.  
  95.     showMessage('Install complete. StartRight will manage your applications next reboot.');
  96.     self.UpdateButtons;
  97.  end;
  98.  
  99. procedure TfrmMain.btnRestoreClick(Sender: TObject);
  100. var i : integer;
  101. begin
  102.     sm.RestoreRunKeyItems;
  103.     sm.RestoreStartupFolderItems;
  104.     sr.RefreshItems;
  105.  
  106.     i := MessageDlg(
  107.         'Also remove all StartRight Options registry entries?' + #13#10#13#10 +
  108.         'If you are troubleshooting StartRight, click NO. Your programs will '+
  109.         'still be restored if you press NO.',
  110.         mtConfirmation,
  111.         [mbYes,mbNo],
  112.         0
  113.     );
  114.     if (i = mrYes) then begin
  115.         sm.DestroyHomekey ;
  116.     end;
  117.  
  118.     ShowMessage('Restore Complete. StartRight will not run next reboot.');
  119.     self.UpdateButtons;    
  120. end;
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. procedure TfrmMain.btnEditSortClick(Sender: TObject);
  131. begin
  132.     FrmEdit.InitGUI;
  133.     FrmEdit.ShowModal;
  134. end;
  135.  
  136. procedure TfrmMain.bAboutClick(Sender: TObject);
  137. begin
  138.     frmAbout.show;
  139. end;
  140.  
  141. procedure TfrmMain.bOptionsClick(Sender: TObject);
  142. begin
  143.     FrmOptions.ShowModal;
  144. end;
  145.  
  146. procedure TfrmMain.UpdateButtons;
  147. begin
  148.     if not sm.GetIsSetupToRun then begin
  149.         self.btnRestore.Enabled := false;
  150.         self.btnInstall.enabled := true;
  151.     end else begin
  152.         self.btnRestore.Enabled := true;
  153.         self.btnInstall.enabled := false;
  154.     end;
  155. end;
  156.  
  157. procedure TfrmMain.MyCreate;
  158. var s : string;
  159. begin
  160.     // Runner requires the Options form to check for AutoTune status
  161.     // This init must not be called by Create();
  162.  
  163.     sm := TStartupMover.Create(self.handle);
  164.     sr := TStartupRunner.Create(self.Handle);
  165.  
  166.     if not (Application.ShowMainForm) then EXIT;
  167.  
  168.     self.UpdateButtons;
  169.  
  170.     if (not sm.UserHasPermission(s)) then begin
  171.         ShowMessage(
  172.             'The current user does not have permission'+
  173.             ' to install, remove, or edit system settings.' +
  174.             ' Please re-run this program from and account with Administrator permissions.'
  175.             + #13#10#13#10 +
  176.             'Failed location: ' + s
  177.         );
  178.         self.btnInstall.Enabled := false;
  179.         self.btnEditSort.Enabled := false;
  180.         self.btnRestore.Enabled := false;
  181.     end;
  182.  
  183.     self.Show;
  184.     s := IntToStr(trunc(UnitCPUUsage.GetCPUUsage));
  185.     FrmAutoTuneError.CheckForError;
  186. end;
  187.  
  188. end.
  189.  
  190.  
  191.