SendMessage WM_GETTEXT 的问题

piqimiss4 2011-07-08 02:28:59
var th1,th2,th3:Thandle;
buffer: Array[0..255] of Char;
begin
th1:=FindWindow(nil,'2.txt - 记事本');
th2:=GetDlgItem(th2,15) ;
SendMessage(th2, WM_GETTEXT, 256, integer(@buffer));
memo1.Text:=buffer;
end;


我想得到 txt里面的内容

如何得到??我这样写 新的memo中没有内容~
...全文
353 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
orxor 2011-07-16
  • 打赏
  • 举报
回复
有些控件是非标准的,WM_GETTEXT获取不到内容
有些控件做过特殊处理,不让你获取WM_GETTEXT内容,如密码
ADSLAN 2011-07-11
  • 打赏
  • 举报
回复
只要句柄对了
SendMessage(th2, WM_GETTEXT, 256, integer(@buffer));
用这句就行 长度可以长大点
piqimiss4 2011-07-09
  • 打赏
  • 举报
回复
/////觲w2@

var aa:array[1..10]of byte;
th1,th2,th3:Thandle;
bb:integer;
cc:pchar;
begin
th1:=FindWindow(nil,'JJ德州扑克[1.0.3.18] -- 初级场(无限注) TN8501.27 总第196局');
///TKGameChatFrame
th2:=FindWindowEx(th1,0,nil,'TKGameChatFrame');
/////showmessage(inttostr(th2));
th3:=GetDlgItem(th2,9000) ;
cc:=@aa;
bb:=10;
sendmessage(th3,wm_gettext,bb,integer(@aa));
memo1.text:=string(cc);
end;



我这样写的代码 可就读取出 乱码来 读取出来的内容是 觲w2@

该怎么写代码
piqimiss4 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 sgzhou12345 的回复:]

直接读取不行吗,还是想一块显示出来呀
[/Quote]


就是想读取这一块的 文本内容 保存下来
山东蓝鸟贵薪 2011-07-08
  • 打赏
  • 举报
回复
直接读取不行吗,还是想一块显示出来呀
piqimiss4 2011-07-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mjp1234airen4385 的回复:]

参考
这个是以前写的一个小工具。
使用这个读取到记事本里的内容是没有问题的。
是C++的,你看看,参考。
C/C++ code

LRESULT CALLBACK EnumChildProc(HWND hwnd, LPARAM)
{
char text[128], title[128];
char Result[1024];
GetClassName(hwnd, tex……
[/Quote]我刚才改的 读取记事本也没问题 就是读取棋牌的句柄没内容~

句柄也是正确的 就是没内容
mjp1234airen4385 2011-07-08
  • 打赏
  • 举报
回复
参考
这个是以前写的一个小工具。
使用这个读取到记事本里的内容是没有问题的。
是C++的,你看看,参考。

LRESULT CALLBACK EnumChildProc(HWND hwnd, LPARAM)
{
char text[128], title[128];
char Result[1024];
GetClassName(hwnd, text, 128);
SendMessage(hwnd, WM_GETTEXT, (WPARAM)128, (LPARAM)title);
memset(Result, 0, 1024);
sprintf(Result, "%s\r%s\r%d", text, title, hwnd);
AddDataToStringGrid(Result);
return true; //true表示继续取,false表示不取
}
piqimiss4 2011-07-08
  • 打赏
  • 举报
回复
为什么 棋牌的客户端 我用这个办法 没法得到想要的内容呢??


var th1,th2,th3:Thandle;
buffer: Array[0..255] of Char;
begin
th1:=FindWindow(nil,'JJ德州扑克[1.0.3.18] -- 初级场(无限注) TN8501.40 总第3局');
///TKGameChatFrame
th2:=FindWindowEx(th1,0,nil,'TKGameChatFrame');
/////showmessage(inttostr(th2));
th3:=GetDlgItem(th2,9000) ;
SendMessage(th3, WM_GETTEXT, 256, integer(@buffer));
memo1.Text:=buffer;
end;


句柄都找对了 就是内容 获取不了 何解
纯冰糖 2011-07-08
  • 打赏
  • 举报
回复
窗体句柄传错了
专制的网站 2011-07-08
  • 打赏
  • 举报
回复
SendMessage(th1, WM_GETTEXT, 256, integer(@buffer));
lght 2011-07-08
  • 打赏
  • 举报
回复
th1:=FindWindow(nil,'2.txt - 记事本');
th2:=GetDlgItem(th2,15) ;

th2:=GetDlgItem(th1,15) ;吧

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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