如何使用 delphi 7 将密钥发送到另一个应用程序?

2023-12-23

好吧,我几乎正在尝试将字符串的击键从编辑框发送到活动窗口,然后按回车键。这里有人知道在delphi 7中执行此操作的工作方法吗?

我已经为此搜索了大约一个半小时,但我似乎找不到任何东西,我找到的东西是新版本的delphi的以太币,或者它根本不起作用。我尝试过 TTouchKeyboard 但这仅适用于 delphi 10 及更高版本。


我用它来发送文本到一个烦人的弹出式 3G 应用程序,没有界面,这是一个黑客,我们没有留下任何选项。

procedure TForm1.TypeMessage(Msg: string);
var
  CapsOn: boolean;
  i: integer;
  ch: char;
  shift: boolean;
  key: short;
begin
  CapsOn := (GetKeyState( VK_CAPITAL ) and $1) <> 0;

  for i:=1 to length(Msg) do
  begin
    ch := Msg[i];
    ch := UpCase(ch);

    if ch <> Msg[i] then
    begin
      if CapsOn then
      begin
        keybd_event( VK_SHIFT, 0, 0, 0 );
      end;
      keybd_event( ord(ch), 0, 0, 0 );
      keybd_event( ord(ch), 0, KEYEVENTF_KEYUP, 0 );
      if CapsOn then
      begin
        keybd_event( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 );
      end;
    end
    else
    begin
      key := VKKeyScan( ch );
      // UpperCase
      if ((not CapsOn) and (ch>='A') and (ch <= 'Z')) or
         ((key and $100) > 0) then
      begin
        keybd_event( VK_SHIFT, 0, 0, 0 );
      end;
      keybd_event( key, 0, 0, 0 );
      keybd_event( key, 0, KEYEVENTF_KEYUP, 0 );
      if ((not CapsOn) and (ch>='A') and (ch <= 'Z')) or
         ((key and $100) > 0) then
      begin
        keybd_event( VK_SHIFT, 0, KEYEVENTF_KEYUP, 0 );
      end;
    end;
  end;
end;

希望有帮助

UPDATE

编辑以允许其他字符(非字母),即移位数字!“£$等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 delphi 7 将密钥发送到另一个应用程序? 的相关文章

随机推荐