怎样判断其他程序用了什么控件? (10分)

  • 主题发起人 主题发起人 franczx
  • 开始时间 开始时间
F

franczx

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说别人编了一个程序,可能用到了TEdit控件,在运行这个程序时,我想知道这个
程序是否用了Tedit控件,如果是TEdit控件,就显示TEdit控件的内容,怎么搞?
是不是药用API函数,或者是其他的什么,谢谢!
另外,是不是如果不是delphi编的,是不是就不行了
 
有个API函数,可以得到CLASSNAME,另外可以用WINSIGHT
 
具体的应该怎么做呢?
 
在一个GETWINDOW的递归中用GETCLASSNAME函数
如果是取EDIT的内容,可以用SENDMESSAGE发送WM_GETTEXT
 
EnumChildWindows(Handle,@EnumChildProc,0);
{ ---------------------------------------------- }
function EnumChildProc(Hwnd:THandle;lParam:LParam):boolean;
var
wndClassName:array[0..254] of Char;
wndClassString:String;
buf:array of char;
len:integer;
begin
GetClassName(Hwnd,wndClassName,255);
wndClassString:=string(wndClassName);
if UpperCase(wndClassName))='TEDIT' then
begin
len:=sendmessage(hwnd,wm_gettextlength,0,0);
setlength(buf,len+1);
getwindowtext(hwnd,pchar(buf),len+1);
showmessage(string(buf));
buf:=nil;
//break;
end;
result:=true;
end;
 
Spy++可以,曾看到过一个类似的程序,是使用delphi写的,不过找不到了。[:)]
 
参见看*号的程序
 
接受答案了.
 
后退
顶部