TTouchKeyboard:发送键盘到同一个程序?

时间:2011-10-07 17:18:13

标签: delphi key send

我看到了你的提示:TTouchKeyboard: send keystroke to other program

如何将密钥发送到同一个Delphi应用程序中的其他表单?

如何使用TTouchKeyboard调用表单? (显示,showModal,参数?)

谢谢!

1 个答案:

答案 0 :(得分:1)

ShowModal是一个坏主意......你关注来电者......

您仍然可以使用与包含键盘的表单相同的提示,以便保持禁用...

然后,您可以添加一个属性,该属性具有应该获得击键的表单句柄。

最后,您破解TTouchKeyboard将焦点设置为具有您之前设置的句柄的表单...

例如,您的TTouchKeyboard黑客可能是这样的:

type
  TMyKeyboard = class(TTouchKeyboard)
  protected
    procedure WndProc(var Message: TMessage); override;
  end;
type
  TForm1 = class(TForm)

...

  private
    fHandleOfTheTargetForm: HWND;
  public
    property HandleOfTheTargetForm: HWND read fHandleOfTheTargetForm write fHandleOfTheTargetForm;

...

procedure TMyKeyboard.WndProc(var Message: TMessage);
begin
  if (Assigned(Form1)) then
  begin
    if Form1.HandleOfTheTargetForm <> 0 then
    begin
      SetForegroundWindow(HandleOfTheTargetForm);
    end;
  end;
  inherited;
end;

您可以找到一个快速演示项目here