如何取得别的系统窗口中的控件的内容!!!!????

kv2002 2004-11-23 06:45:43
我输入别的系统窗口名后,想取得其窗口中控件的值。
我测试了一下,系统中放了三个TEdit控件,可以取的第一个控件的句柄,但是取不到它的内容!!
还有我如何取到这三个TEdit控件的句柄呢!
function EnumChildWndProc(AhWnd:LongInt;
AlParam:lParam):boolean;stdcall;
var
WndClassName: array[0..254] of Char;
WndCaption: array[0..254] of Char;
begin
GetClassName(AhWnd,wndClassName,254);
GetWindowText(aHwnd,WndCaption,254);

with form1.memo1 do
begin
lines.add( string(wndClassName));
lines.add( string(wndCaption));
lines.add('-------');
end;
result:=true;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
hWnd,hWnd_edit:Integer;
str:String;
begin
memo1.Lines.Clear;
Memo1.Lines.Add(Edit1.Text+' 有如下控件类名称');
hWnd:=FindWindow(nil,pchar(Edit1.Text));//输入系统窗口名称
hWnd_edit:=findwindowex(hWnd,0,'Tedit',nil);
if ((hWnd<>0)and(hWnd_edit<>0) )then
begin
//EnumChildWindows(hWnd,@EnumChildWndProc,0);
SendMessage(hWnd_edit,WM_SETTEXT,0,Integer(pchar('HHHH')));
SendMessage(hWnd_edit,WM_GETTEXT,0,Integer(pchar(str)));
Edit2.Text:=IntToStr(hWnd_edit);
ShowMessage(str); ///执行时这个显示的时空字符,事实上我给那个控件写入了'HHHH'.
end
else MessageBox(self.handle,'没找到该窗口句柄','提示',0);
end;
...全文
115 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kv2002 2004-11-26
  • 打赏
  • 举报
回复
up
kv2002 2004-11-25
  • 打赏
  • 举报
回复
自己顶上去!!
beyondtkl 2004-11-24
  • 打赏
  • 举报
回复
SendMessage(hWnd_edit,WM_GETTEXT,0,Integer(pchar(str)));
//
SendMessage(hWnd_edit,WM_GETTEXT,255 ,Integer(pchar(str))); //wParam 为你这个str的长度 为0的话 它就不写到你的缓冲区了...

str2:=''''+Edit5.Text+''''; //我手动输入控件类型

->
str2:=Edit5.Text; //我手动输入控件类型
// 不需要那么多引号.....
kv2002 2004-11-24
  • 打赏
  • 举报
回复
为什么我通过参数传进去值,不能用呢?
str:string;
str2:=''''+Edit5.Text+''''; //我手动输入控件类型
hWnd_edit:=findwindowex(hWnd,0,PAnsiChar(str2),nil);
找不到我指定类型的控件,我用
hWnd_edit:=findwindowex(hWnd,0,'TEdit',nil);
就可以找到为什么呢?

kv2002 2004-11-24
  • 打赏
  • 举报
回复
谢谢, beyondtkl。参数传过去了。
可是我用了SendMessage(hWnd_edit,WM_GETTEXT,255 ,Integer(pchar(str)));
还是不能取到值啊。请给再指点一下。

1,184

社区成员

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

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