300分都没有人能回答这个问题吗?不够再加。 ( 积分: 300 )

  • 主题发起人 主题发起人 nanshan
  • 开始时间 开始时间
N

nanshan

Unregistered / Unconfirmed
GUEST, unregistred user!
控件是DLL的,不知道什么开发的,但想获取它里面显示的文本,不知道用什么好办法没有,很急呀,先谢谢了,在线急等。。。。。
现在是能取得句柄,不能取得文字呀。
 
控件是DLL的,不知道什么开发的,但想获取它里面显示的文本,不知道用什么好办法没有,很急呀,先谢谢了,在线急等。。。。。
现在是能取得句柄,不能取得文字呀。
 
在WIN98下用诺顿DISKEDITER
 
如果dll里的窗体是用delphi写的话,这样应该可以的
var
handle1,handle2:THandle;
text:pChar;
textLength:integer;
begin
handle1:=findWindow(nil,'form2')
//form2为DLL窗体caption
handle2:=findWindowEx(handle1,0,'tedit',nil)
//tedti为文本框类名
textLength:=sendMessage(handle2,WM_GETTEXTLENGTH,0,0);
getMem(text,textLength);
sendMessage(handle2,WM_GETTEXT,textLength,integer(text));
showMessage(text);
end;
 
上网下载个汉化工具就可以打开了,呵呵
 
www.51merit.com
上第一个下载就又这个功能!
当然有利呵楼上的相同
 
是在同一个窗体里的控件呀,这个控件是个DLL的,里面显示的文字是动态的,我想获取里面的所有文字,屏幕取此可以做到。我想通过事件取到EDIT里呀。谢谢各位了
 
这样啊,还是能实现的。
第一步
 getcursorpos(p);     //得到当前光标的位置
 h:=windowfrompoint(p);   //当到光标处窗口的句柄
第二步
getClassName(h,className,20);//取类名
showMessage(className);//用笔写记下来
第三步
直接用className代入到我上一段的程序中,发一个getText就行了
 
能不能给点具体的,谢谢,
我照上面的试过了,好象不行呀
 
var
p : TPoint;
h : handle;
n : integer
//取多长自己定
pa : PChar
//就存在这里了,自己去读吧
begin
getcursorpos(p);
h := WindowFromPoint(p);
sendmessage(h,WM_GETTEXT,n,pa);
 
。。。。
就是先想办法得到dll控件的句柄(第一步,第二步),然后就发消息取文本
 
我就是这样的,不能获取文字呀,DLL的句柄是可以拿到的,能不能用QQ交流一下,时间紧急呀,谢谢老兄了 QQ:78670285
 
procedure TForm1.GetMousePosHwndAndClassName(Sender: TPoint);
var
hWnd: THandle;
aName: array[0..255] of char;
TempText: string;
begin
hWnd := WindowFromPoint(Sender);
Label1.Caption := 'Handle : ' + IntToStr(hWnd);
if boolean(GetClassName(hWnd, aName, 256)) then
lbNumber.Caption := 'ClassName : ' + string(aName)
else
lbNumber.Caption := 'ClassName : not found';
if hWnd <> 0 then
begin
SetLength(TempText, 21);
SendMessage(hWnd, WM_GETTEXT, 20, Integer(PChar(TempText)));
Label2.Caption := TempText;
end;
end;

这样我可以获取窗体上的所有DELPHI控件的字符,但不能获取一个ActiveX控件里的字符,大家帮帮忙呀。
 
学习一下
 
想获取它里面显示的文本?
如果没有加密的话,用UltraEdit打开看一下最快了!
 
算了,散分,用一个笨办法解决了。参与就有份
 
多人接受答案了。
 
后退
顶部