【问题标题】:TTouchKeyboard: send keystroke to other program?TTouchKeyboard:将击键发送到其他程序?
【发布时间】:2011-11-22 12:11:38
【问题描述】:

如何在 Delphi 中使用 TTouchKeyboard,以便它可以将击键发送到其他程序。例如,我想使用 TTouchKeyboard 组件在浏览器中输入密码。我不知道如何在我点击键盘时让浏览器保持焦点。

【问题讨论】:

    标签: delphi virtual-keyboard


    【解决方案1】:

    TTouchKeyboard 将键发送到当前控制焦点:因此,如果您有一个带有 focusTEdit,TEdit 将接收键...

    您可以创建一个包含TTouchKeyboard 的表单并添加此过程:

      protected
        procedure CreateParams(var Params: TCreateParams); override;
    
    ...
    
    procedure TForm1.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      with Params do
      begin
        ExStyle   := ExStyle or WS_EX_NOACTIVATE;
        WndParent := GetDesktopwindow;
      end;
    end;
    

    您的表单无法获得焦点...因此,密钥被发送到上一个获得焦点的控件。 (我刚刚测试过,它可以工作:密钥已发送到此网页)

    【讨论】:

    • 宾果游戏! WS_EX_NOACTIVATE 是我需要的。
    • 这似乎对我不起作用,因为当我按下虚拟键盘上的某个键时,控件会失去焦点。我错过了什么?在这种情况下,我使用的是 XE2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 2020-12-20
    相关资源
    最近更新 更多