如何实现在程序外光标当前位置插入字符

怎么实现在程序外光标当前位置插入字符~
自制自制程序浮在最上面,点击自制程序上的按钮,就能在记事本或者其它第三方程序的输入框的光标当前位置插入字符。
应该怎么实现这功能啊,有代码最好,谢谢~

------解决方案--------------------
打开一个空白记事本,运行下面的程序
Delphi(Pascal) code

procedure TForm1.Button1Click(Sender: TObject);
var
hNotePad:HWND;
hedit:HWND;
s1:string;//要插入的文字
begin
  s1:='向记事本插入文字';
  hNotePad:=FindWindow(nil,'无标题 - 记事本');
  if hNotePad<>0 then
  begin
    hedit:=FindWindowEx(hNotePad,0,'edit',nil);
    SendMessage(hedit,WM_SETTEXT,Length(s1),Integer(PChar(s1)));
  end;
end;