如果不是你的程序,用Gofocus,再配合什么什么API,忘了

解决方案 »

  1.   

    给你一段程序,向任何Focus的控件发送字符的。程序运行后,按Win+A,发送字符procedure TForm1.FormCreate(Sender: TObject);
    begin
      RegisterHotKey(Handle, 1001, MOD_Win, 65);
    end;{消息重载 WM_HOTKEY}
    procedure TForm1.WMHotKey(var Msg: TMessage);  
    const
      S = 'Message';  //发送的信息字符串
    var
      ActiveHandle: THandle;  //当前活动窗体ThreadID
      FocusHandle: THandle;  //焦点控件
      CurHandle: THandle;    //本程序ThreadID
      I: Integer;
      C: Char;
    begin
      if Msg.WParam = 1001 then  //
      begin
        CurHandle := GetCurrentThreadID;
        ActiveHandle := GetWindowThreadProcessID(GetForeGroundWindow, nil);
        AttachThreadInput(CurHandle, ActiveHandle, True);
        FocusHandle := GetFocus;
        for I := 1 to Length(S) do
        begin
          C := S[I];
          SendMessage(FocusHandle, WM_Char, Ord(C), 0);
        end;
        AttachThreadInput(CurHandle, ActiveHandle, False);
      end;
      inherited;
    end;   
      

  2.   

    to taxi(游少爷):你弄错我的意思了 sorry!是我表达不对
    我的意思是在程序运行后,比如从这个edit到那个edit,怎样获取现在的活动窗体(edit)
      

  3.   

    to copy_paste(木石三) 谢谢!
    有没有更简单一点的办法
      

  4.   

    Application那有个ActiveForm,你看看,我这没机。
    好像是
    Application.ActiveForm.ActiveControl
      

  5.   

    Application那有个ActiveForm,你看看,我这没机。
    好像是
    Application.ActiveForm.ActiveControl