home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softwarová Záchrana 3
/
Softwarova-zachrana-3.bin
/
StartRight
/
source.zip
/
UnitFrmMain.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2004-10-08
|
4KB
|
191 lines
unit UnitFrmMain;
{
Purpose:
Let the user Install ME, Restore settings to the system,
or edit startup programs
Updates:
Fix for large fonts :(
New Options button
}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls,
UnitMyRegistry, UnitStartupMover, UnitStartupRunner,
ShellAPI, ExtCtrls;
type
TfrmMain = class(TForm)
Image1: TImage;
Label5: TLabel;
Shape1: TShape;
Shape2: TShape;
Label4: TLabel;
Label3: TLabel;
btnRestore: TButton;
Label2: TLabel;
Label1: TLabel;
btnInstall: TButton;
btnEditSort: TButton;
Label6: TLabel;
bAbout: TButton;
bOptions: TButton;
Label7: TLabel;
procedure FormDestroy(Sender: TObject);
procedure btnInstallClick(Sender: TObject);
procedure btnRestoreClick(Sender: TObject);
procedure btnEditSortClick(Sender: TObject);
procedure bAboutClick(Sender: TObject);
procedure bOptionsClick(Sender: TObject);
private
{ Private declarations }
procedure UpdateButtons;
public
{ Public declarations }
sm : TStartupMover;
sr : TStartupRunner;
procedure MyCreate;
end;
var
frmMain: TfrmMain;
implementation
uses UnitFormEdit, UnitFrmAbout, UnitFrmDummyRunner, UnitFrmOptions,
UnitUtils, UnitCPUUsage, UnitFrmAutoTuneError;
{$R *.dfm}
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
sr.Free;
sm.Free;
end;
procedure TfrmMain.btnInstallClick(Sender: TObject);
begin
if (sm.IsFirstMove) then begin
if MessageDlg('This is the first installation. Make sure StartRight is'
+ ' in its permanent folder location before installing' + #13#10
+ ' Continue?',
mtConfirmation, [mbOK, mbCancel], 0) = mrCancel then begin
exit;
end;
end;
sm.SetupSelfToRun;
//sm.MoveRunKeyItems;
//sm.MoveStartupFolderItems;
sr.RefreshItems;
showMessage('Install complete. StartRight will manage your applications next reboot.');
self.UpdateButtons;
end;
procedure TfrmMain.btnRestoreClick(Sender: TObject);
var i : integer;
begin
sm.RestoreRunKeyItems;
sm.RestoreStartupFolderItems;
sr.RefreshItems;
i := MessageDlg(
'Also remove all StartRight Options registry entries?' + #13#10#13#10 +
'If you are troubleshooting StartRight, click NO. Your programs will '+
'still be restored if you press NO.',
mtConfirmation,
[mbYes,mbNo],
0
);
if (i = mrYes) then begin
sm.DestroyHomekey ;
end;
ShowMessage('Restore Complete. StartRight will not run next reboot.');
self.UpdateButtons;
end;
procedure TfrmMain.btnEditSortClick(Sender: TObject);
begin
FrmEdit.InitGUI;
FrmEdit.ShowModal;
end;
procedure TfrmMain.bAboutClick(Sender: TObject);
begin
frmAbout.show;
end;
procedure TfrmMain.bOptionsClick(Sender: TObject);
begin
FrmOptions.ShowModal;
end;
procedure TfrmMain.UpdateButtons;
begin
if not sm.GetIsSetupToRun then begin
self.btnRestore.Enabled := false;
self.btnInstall.enabled := true;
end else begin
self.btnRestore.Enabled := true;
self.btnInstall.enabled := false;
end;
end;
procedure TfrmMain.MyCreate;
var s : string;
begin
// Runner requires the Options form to check for AutoTune status
// This init must not be called by Create();
sm := TStartupMover.Create(self.handle);
sr := TStartupRunner.Create(self.Handle);
if not (Application.ShowMainForm) then EXIT;
self.UpdateButtons;
if (not sm.UserHasPermission(s)) then begin
ShowMessage(
'The current user does not have permission'+
' to install, remove, or edit system settings.' +
' Please re-run this program from and account with Administrator permissions.'
+ #13#10#13#10 +
'Failed location: ' + s
);
self.btnInstall.Enabled := false;
self.btnEditSort.Enabled := false;
self.btnRestore.Enabled := false;
end;
self.Show;
s := IntToStr(trunc(UnitCPUUsage.GetCPUUsage));
FrmAutoTuneError.CheckForError;
end;
end.