在触摸键盘上输入密码而不被其他人看到

问题描述 投票:0回答:1

我有一个安全问题。

在 Delphi 中我使用

Vcl.Touch.Keyboard.TTouchKeyboard
因为机器上没有真正的键盘。这台机器周围有4个显示器,都显示相同的屏幕。

输入常规文本时没有问题,但一旦用户必须在其中一个屏幕上输入密码,其他人就可以轻松看到他正在输入的内容并检索密码!

Delphi 控件

TTouchKeyboard
显然不提供任何隐藏鼠标光标以及不显示当前单击的按钮的可能性。

如何在不更改此控件的来源的情况下禁用 TTouchKeyboard 的 OnMouseDown 事件?或者有什么更好的解决办法吗?
另一种可能性是每次点击光学激活多个字母以迷惑“密码观察者”。但这怎么办呢?

security delphi touch password-protection on-screen-keyboard
1个回答
0
投票

TTouchKeyboard
允许覆盖用于按钮的类。您可以从
TKeyboardButton
派生,重写
Paint
方法,当按钮
inherited
State
时跳过
dsPressed
调用。

type
  TMyKeyboardButton = class(TKeyboardButton)
  public
    procedure Paint(Canvas: TCustomCanvas = nil); override;
  end;

procedure TMyKeyboardButton.Paint(Canvas: TCustomCanvas);
begin
  if State <> TDrawState.dsPressed then
    inherited;
end;

要使用此类,请将其分配给键盘

DefaultButtonClass
属性。

  TouchKeyboard1.DefaultButtonClass := TMyKeyboardButton;

您可能需要切换其

Layout
属性才能触发重建按钮。

© www.soinside.com 2019 - 2024. All rights reserved.