想捞分的请进:)(100分)

  • 主题发起人 主题发起人 micony
  • 开始时间 开始时间
M

micony

Unregistered / Unconfirmed
GUEST, unregistred user!
我已获得一个程序的文本筐(Edit)的句柄,请问怎样得到这个文本筐中的内容?

注意这个程序是一个任意的windows程序。

呵呵,懒得找资料了,就来这里送分`了,各位大小虾不要客气,尽量来那分:)
 
getwindowtext()
 
GetWindowText(EditHandle, str, 50)
 
getwindowtext() 不一定得到

我试过了,经常是什么都没得到

我也觉得奇怪

 
别的用getwindowtext() 都可以得到值,就是Edit得不到。

 
procedure TForm1.Button1Click(Sender: TObject);
  var
  Name:PChar;
  L:integer;
  begin
  L:=GetWindowTextLength(Edit1.handle)+1;
  GetMem(Name,L);
  GetWindowText(Edit1.handle,Name,L);
  label1.Caption:=String(Name);
  FreeMem(Name,0);
  end;
  
 
用GetWindowText可以得到,你一这定是没有给字符串分配空间。
 
对于98/me可以,对于2000/xp一切都失效,除非是同一个工程里面。
因为它对于显示密码以及获取密码进行了判断。[:D][:D][:D]
 
2000,xp,98全部可以得到,这里只取了密码,非密码的没取
passmark:=sendmessage(curwin,em_getpasswordchar,0,0);
if passmark<>0 then
begin
postmessage(curwin,em_setpasswordchar,0,0);
count:=sendmessage(curwin,wm_gettext,100,lparam(@text1));
postmessage(curwin,em_setpasswordchar,wparam(ord('*')),0);
end;
 
思考中、、、
 
是在不行的话如此这般:
SendMessage(Edit1.Handle, EM_SETSEL, 0, -1); //全选
SendMessage(Edit1.Handle, wm_copy, 0, 0); //拷贝到剪贴板
接受端
SendMessage(Edit2.Handle, wm_paste, 0, 0); //对密码型Edit不适合用
但GetWindowText或SendMessage(Edit1.Handle,wm_getText,0,LongInt(Pchar(s)))
应该可以
 
思考中、、、
 
xiao_min得方法太好了,谢谢
 
有个问题,对ComboBox怎么处理,如果它的style是csDropDownList,用settext就不能
更改其内容,怎么在它的下拉框中增加一项呢
 
多人接受答案了。
 

Similar threads

后退
顶部