rt

解决方案 »

  1.   

    FindWindowEx(GetActiveWindow(),0,'Edit',0);
      

  2.   

    sorry上面的有问题。procedure TForm1.Button1Click(Sender: TObject);
    var
      s1: string;
      hwndEdit,hwndNotepad: HWND;
    begin
      s1 := 'Hello!';
      ShowMessage(s1);
      hwndNotepad := FindWindow(0,PChar('无标题 - 记事本'));
      hwndEdit := FindwindowEx(hwndNotepad,0,'Edit',0);
      //SetWindowText(hwndEdit,PChar(s1));
      SendMessage(hwndEdit,WM_SETTEXT,0,lParam(PChar(s1)));
    end;
      

  3.   

    有没有可以直接获取当前焦点所在的窗口(包括控件)的API?
    比如焦点落在任意一个程序的任意一个文本框内,如何获得这个文本框的Handle??
      

  4.   

    可以用GetFocus();
    除非你的程序在后台运行,否则的话焦点会在你的程序中。
      

  5.   

    windowformpoint,等等吧,如果要在后台运行,可以选择插入当前线程去得到句柄,具体的函数不记得了,去看看msdn,好像是:AttachThreadInput几个函数需要配合使用的
      

  6.   

    procedure TForm1.Memo1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    var p:Tpoint;
        h:hwnd;
    begin
       p.X:=x;
       p.Y:=y;
       h:=WindowFromPoint(p);
    end;
      

  7.   

    WindowFromPoint是取鼠标指针下的Hwnd,但如果焦点在一个文本框内,鼠标不在文本框内,这时怎么取拥有输入焦点的文本框的Hwnd呢?