var
PassForm: TPassForm;
DelphiReg: TRegistry;
Password, TrayIcon, Language: string;
implementation
uses MainUnit;
{$R *.dfm}
procedure TPassForm.CancelButtonClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TPassForm.FormShow(Sender: TObject);
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
if DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False) then
begin
if DelphiReg.ValueExists('P') then Password := DelphiReg.ReadString('P');
if DelphiReg.ValueExists('T') then TrayIcon := '1' else TrayIcon := '0';
if DelphiReg.ValueExists('L') then Language := DelphiReg.ReadString('L') else Language := 'E';
end;
DelphiReg.Destroy;
if Language = 'E' then
begin
PassForm.Caption := 'Password';
PassLabel.Caption := 'Enter password:';
OKButton.Caption := 'OK';
CancelButton.Caption := 'Cancel';
end;
if Language = 'MC' then
begin
PassForm.Caption := 'Øèôðà';
PassLabel.Caption := 'Âíåñåòå øèôðà:';
OKButton.Caption := 'Äîáðî';
CancelButton.Caption := 'Îòêàæè';
end;
if Language = 'ML' then
begin
PassForm.Caption := 'Sifra';
PassLabel.Caption := 'Vnesete sifra:';
OKButton.Caption := 'Dobro';
CancelButton.Caption := 'Otkazi';
end;
end;
procedure TPassForm.OKButtonClick(Sender: TObject);
begin
if PassEdit.Text = Password then
begin
Password := '';
if TrayIcon = '0' then PassTimer.Enabled := True;
if TrayIcon = '1' then PassTimer2.Enabled := True;
end
else
begin
if Language = 'E' then MessageDlg('Wrong password!', mtWarning, [mbOK], IDOK);
if Language = 'MC' then MessageDlg('Ïîãðåøíà øèôðà!', mtWarning, [mbOK], IDOK);
if Language = 'ML' then MessageDlg('Pogresna sifra!', mtWarning, [mbOK], IDOK);
end;
PassEdit.Clear;
PassEdit.SetFocus;
end;
procedure TPassForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Password = '' then MainForm.Show else Application.Terminate;
end;
procedure TPassForm.PassEditKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then OKButton.Click;
end;
procedure TPassForm.PassTimerTimer(Sender: TObject);
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False);
PassForm.Hide;
MainForm.Show;
PassTimer.Enabled := False;
DelphiReg.Destroy;
end;
procedure TPassForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var Spot: TPoint;
begin
{If you forget password just click there - Form top left corner (1, 1)}
Spot.X := 1;
Spot.Y := 1;
if (X = Spot.X) and (Y = Spot.Y) then
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False);
PassEdit.Text := DelphiReg.ReadString('P');
DelphiReg.Destroy;
end;
end;
procedure TPassForm.PassTimer2Timer(Sender: TObject);
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False);
PassTimer2.Enabled := False;
DelphiReg.DeleteValue('T');
MainForm.ApplyButton.Click;
PassForm.Hide;
DelphiReg.Destroy;
end;
end.
var
PassForm: TPassForm;
DelphiReg: TRegistry;
Password, TrayIcon, Language: string;
implementation
uses MainUnit;
{$R *.dfm}
procedure TPassForm.CancelButtonClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TPassForm.FormShow(Sender: TObject);
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
if DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False) then
begin
if DelphiReg.ValueExists('P') then Password := DelphiReg.ReadString('P');
if DelphiReg.ValueExists('T') then TrayIcon := '1' else TrayIcon := '0';
if DelphiReg.ValueExists('L') then Language := DelphiReg.ReadString('L') else Language := 'E';
end;
DelphiReg.Destroy;
if Language = 'E' then
begin
PassForm.Caption := 'Password';
PassLabel.Caption := 'Enter password:';
OKButton.Caption := 'OK';
CancelButton.Caption := 'Cancel';
end;
if Language = 'MC' then
begin
PassForm.Caption := 'Øèôðà';
PassLabel.Caption := 'Âíåñåòå øèôðà:';
OKButton.Caption := 'Äîáðî';
CancelButton.Caption := 'Îòêàæè';
end;
if Language = 'ML' then
begin
PassForm.Caption := 'Sifra';
PassLabel.Caption := 'Vnesete sifra:';
OKButton.Caption := 'Dobro';
CancelButton.Caption := 'Otkazi';
end;
end;
procedure TPassForm.OKButtonClick(Sender: TObject);
begin
if PassEdit.Text = Password then
begin
Password := '';
if TrayIcon = '0' then PassTimer.Enabled := True;
if TrayIcon = '1' then PassTimer2.Enabled := True;
end
else
begin
if Language = 'E' then MessageDlg('Wrong password!', mtWarning, [mbOK], IDOK);
if Language = 'MC' then MessageDlg('Ïîãðåøíà øèôðà!', mtWarning, [mbOK], IDOK);
if Language = 'ML' then MessageDlg('Pogresna sifra!', mtWarning, [mbOK], IDOK);
end;
PassEdit.Clear;
PassEdit.SetFocus;
end;
procedure TPassForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Password = '' then MainForm.Show else Application.Terminate;
end;
procedure TPassForm.PassEditKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then OKButton.Click;
end;
procedure TPassForm.PassTimerTimer(Sender: TObject);
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False);
PassForm.Hide;
MainForm.Show;
PassTimer.Enabled := False;
DelphiReg.Destroy;
end;
procedure TPassForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var Spot: TPoint;
begin
{If you forget password just click there - Form top left corner (1, 1)}
Spot.X := 1;
Spot.Y := 1;
if (X = Spot.X) and (Y = Spot.Y) then
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False);
PassEdit.Text := DelphiReg.ReadString('P');
DelphiReg.Destroy;
end;
end;
procedure TPassForm.PassTimer2Timer(Sender: TObject);
begin
DelphiReg := TRegistry.Create;
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False);
PassTimer2.Enabled := False;
DelphiReg.DeleteValue('T');
MainForm.ApplyButton.Click;
PassForm.Hide;
DelphiReg.Destroy;
end;
end.
type
TPassForm = class(TForm)
// removed
private
fLanguage: string;
fPassword: string;
fTrayIcon: string;
protected
public
protected Language: string read fLanguage;
end;
var
PassForm: TPassForm;
implementation
{$R *.dfm}
procedure TPassForm.CancelButtonClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TPassForm.FormShow(Sender: TObject);
var DelphiReg: TRegistry;
begin
DelphiReg := TRegistry.Create;
try
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
if DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False) then
begin
if DelphiReg.ValueExists('P') then fPassword := DelphiReg.ReadString('P');
if DelphiReg.ValueExists('T') then fTrayIcon := '1' else fTrayIcon := '0';
if DelphiReg.ValueExists('L') then fLanguage := DelphiReg.ReadString('L') else fLanguage := 'E';
end else ShowMessage('No Wordpad !');
finally
DelphiReg.Free;
end;
if fLanguage = 'E' then
begin
Caption := 'Password';
PassLabel.Caption := 'Enter password:';
OKButton.Caption := 'OK';
CancelButton.Caption := 'Cancel';
end;
if fLanguage = 'MC' then
begin
Caption := 'Øèôðà';
PassLabel.Caption := 'Âíåñåòå øèôðà:';
OKButton.Caption := 'Äîáðî';
CancelButton.Caption := 'Îòêàæè';
end;
if fLanguage = 'ML' then
begin
Caption := 'Sifra';
PassLabel.Caption := 'Vnesete sifra:';
OKButton.Caption := 'Dobro';
CancelButton.Caption := 'Otkazi';
end;
end;
procedure TPassForm.OKButtonClick(Sender: TObject);
begin
if PassEdit.Text = fPassword then
begin
fPassword := '';
if fTrayIcon = '0' then PassTimer.Enabled := True;
if fTrayIcon = '1' then PassTimer2.Enabled := True;
end
else
begin
if fLanguage = 'E' then MessageDlg('Wrong password!', mtWarning, [mbOK], IDOK);
if fLanguage = 'MC' then MessageDlg('Ïîãðåøíà øèôðà!', mtWarning, [mbOK], IDOK);
if fLanguage = 'ML' then MessageDlg('Pogresna sifra!', mtWarning, [mbOK], IDOK);
end;
PassEdit.Clear;
PassEdit.SetFocus;
end;
procedure TPassForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if fPassword <> '' then
Application.Terminate
else
Application.MainForm.Show;
end;
procedure TPassForm.PassEditKeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then OKButton.Click;
end;
procedure TPassForm.PassTimerTimer(Sender: TObject);
begin
PassTimer.Enabled := False; // move this to top otherwise you may get circular calls
Hide;
Application.MainForm.Show;
end;
procedure TPassForm.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Spot: TPoint;
DelphiReg: TRegistry;
begin
{If you forget password just click there - Form top left corner (1, 1)}
Spot.X := 1;
Spot.Y := 1;
if (X = Spot.X) and (Y = Spot.Y) then
begin
DelphiReg := TRegistry.Create;
try
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
if DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False) then
PassEdit.Text := DelphiReg.ReadString('P')
else
ShowMessage('No Wordpad !');
finally
DelphiReg.Free;
end;
end;
end;
procedure TPassForm.PassTimer2Timer(Sender: TObject);
var DelphiReg: TRegistry;
begin
PassTimer2.Enabled := False;
DelphiReg := TRegistry.Create;
try
DelphiReg.RootKey := HKEY_CLASSES_ROOT;
if DelphiReg.OpenKey('Wordpad.Document.1\CLSID', False) then
DelphiReg.DeleteValue('T');
finally
DelphiReg.Free;
end;
Hide;
TButton(Application.MainForm.FindComponent('ApplyButton')).Click;
end;
end.
you will need to be a lot more specific