用vm_gettext取不到第三方软件的文本值

zhao8848jun 2008-11-07 01:44:46
ProHandle:=WindowFromPoint(CP);//根据坐标点取得控件Handle
if ProHandle<>0 then
BEGIN
SendMessage(ProHandle,WM_GETTEXT,255,LPARAM(GetTextPchar));
end;
Result:=GetTextPchar;
注:第三方软件中此Edit控件为灰色(估计enable为false)
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhao8848jun 2008-11-07
  • 打赏
  • 举报
回复
谢谢你的热心,自己已经解决,原因是GetTextPchar没有分配内存空间
y:=sendmessage(ProHandle,wm_gettextlength,0,0)+1;
getmem(GetTextPchar,y);
SendMessage(ProHandle,WM_GETTEXT,y,LPARAM(GetTextPchar));
僵哥 2008-11-07
  • 打赏
  • 举报
回复
正常情况下WM_GETTEXT是不会因为Enabled /Disabled而受限制的.但是如果是带密码属性的则就不支持WM_GETTEXT.在早期的程序当中可以通过SetPasswordChar为0来处理.但是现在的程序对WM_GETTEXT就有了进一步的安全处理.
zhao8848jun 2008-11-07
  • 打赏
  • 举报
回复
不行的
僵哥 2008-11-07
  • 打赏
  • 举报
回复
SendMessage前EnableWindow试一下.

1,183

社区成员

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

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