如何实现这样的效果(有点像输入法)急,先谢啦哦

sysirm 2003-09-10 10:06:30
想实现如下效果,但不知怎么写代码
在Edit框中输入字符,回车后能够将字符发送到WINDDOWS其它程序中,
比如记事本,WORD文档中,
有点像输入法的效果
请问代码怎么写呢?
...全文
55 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanhuizen 2003-09-18
  • 打赏
  • 举报
回复
那不成了剪切版了!再做一个热键!!
hongqi162 2003-09-17
  • 打赏
  • 举报
回复
学习....
year2000bug 2003-09-17
  • 打赏
  • 举报
回复
把naughtyboy(重归起跑线)的
h := FindWindow(nil,pchar('a.txt - 记事本'));
改为
h=GetWindow(GetDesktopWindow(), GW_HWNDNEXT);
再加个while循环。。。。。
FrameSniper 2003-09-16
  • 打赏
  • 举报
回复
学习!
sysirm 2003-09-16
  • 打赏
  • 举报
回复
to:naughtyboy(重归起跑线)
谢谢你了
不过,你这样只是对一个固定'a.txt - 记事本'进行字符的发送
怎么样能够使其发送到任意的程序当中呢

hch_d 2003-09-12
  • 打赏
  • 举报
回复
UP
seawavefj 2003-09-11
  • 打赏
  • 举报
回复
up
naughtyboy 2003-09-11
  • 打赏
  • 举报
回复
只要记得先得到原来的文本就行了
下面是刚写的,向一个打开的文本文件里面输入文字(a.txt)
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
h: HWND;
str: pchar;
hEdit: HWND;
len: Integer;
text: String;
begin
if key=vk_return then
h := FindWindow(nil,pchar('a.txt - 记事本'));
if h > 0 then
begin
//Showmessage('found');
hEdit := FindWindowEx(h,0,'Edit',nil);
if hEdit > 0 then
begin
//先得到原来的文本
try
len := SendMessage(hEdit,WM_GETTEXTLENGTH,0,0);
Getmem(str,len+1);
SendMessage(hEdit,WM_GETTEXT,len+1,LPARAM(str));
//showmessage('found edit');
text := Strpas(str) + Edit1.Text;
SendMessage(hEdit,WM_SETTEXT,length(text),LPARAM(text));
finally
FreeMem(str);
end;
end;
end;
end;
tanqth 2003-09-11
  • 打赏
  • 举报
回复
UP
海天候 2003-09-11
  • 打赏
  • 举报
回复
sendmessage
vchoushen6 2003-09-11
  • 打赏
  • 举报
回复
使用全局钩子自已处理键盘消息就行了。

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧