句柄问题 ( 积分: 50 )

  • 主题发起人 主题发起人 gzccjz
  • 开始时间 开始时间
G

gzccjz

Unregistered / Unconfirmed
GUEST, unregistred user!
edit1.text 内容若为 5.57 然后用
var txtprice : array[0..254] of char;
GetWindowText(hprice,txtprice,255);
取不了其内容,txtprice总是空白,若edit1.text为字符则可取出,何解???
 
不对呀
我可以取的出啊
 
procedure TForm1.Button1Click(Sender: TObject);
var
txtprice : array[0..254] of char;
hprice : HWND;
begin
hprice:=edit1.Handle;
GetWindowText(hprice,txtprice,255);
showmessage(txtprice);
end;

没有问题啊,你是怎么取的?
 
恩 可以取的到的
 
我也是这样取的,晕。就是取不到,我是取一个股票软件里的 edit 控件,里面有股价
 
有可能他的TEidt做过处理
 
但我用第三方的软件(窗体属性设计器) 就可以取到,但我没它的源码。不知对方是怎样取的,我是用回调函数枚举出来的。那软件下载网址是
http://blacwet.yeah.net
 
AttachThreadInput,问 暗夜中独舞 的例子,我曾经告诉过他!
 
var
threadid : thandle;
function GetWndText(_hWnd: HWND): String;
Var
Ret:LongInt;
mText:PChar;
Buf:Integer;
begin
threadid := GetWindowThreadProcessId(_hWnd, nil);
AttachThreadInput(GetCurrentThreadId, threadid, true);
try
Ret:=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0)+1;
GetMem(mText,Ret);
try
Buf:=LongInt(mText);
SendMessage(hWnd,WM_GETTEXT,Ret,Buf);
Result:=StrPas(mText);
finally
FreeMem(mText,Ret);
end;
finally
AttachThreadInput(GetCurrentThreadId, threadid, false);
end;
end;
 
其实我觉的上面这段要是取的到的话 楼主你那段也应该取的到
 
这样居然取到了,谢谢暗夜中独舞

function Tform1.GetWndText(_hWnd: HWND): String;
Var
Ret:LongInt;
mText:PChar;
Buf:Integer;
begin

threadid := GetWindowThreadProcessId(_hWnd, nil);
AttachThreadInput(GetCurrentThreadId, threadid, true);
try
Ret:=SendMessage(_hWnd,WM_GETTEXTLENGTH,0,0)+1;
GetMem(mText,Ret);
try
Buf:=LongInt(mText);
SendMessage(_hWnd,WM_GETTEXT,Ret,Buf);
Result:=StrPas(mText);
finally
FreeMem(mText,Ret);
end;
finally
AttachThreadInput(GetCurrentThreadId, threadid, false);
end;
end;
 
浪费偶时间,你早说你取的不是自己程序的东西啊!!!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
820
import
I
I
回复
0
查看
1K
import
I
后退
顶部