请问怎样用sendmessage发一个WM_GETTEXT消息给指定窗口?(50分)

  • 主题发起人 主题发起人 AKang
  • 开始时间 开始时间
给窗口发消息:<br>SendMessage(handle,message,Wparam,lparam);<br>Handle为窗口句柄,message为消息类型,<br>wparam和lparam为消息参数;<br><br>
 
这个应该很简单啊:<br>var<br>&nbsp; h:Thandle;//指定窗口的句柄<br>&nbsp; p:pchar;<br>&nbsp; size:integer;<br>begin<br>&nbsp; size:=128;<br>&nbsp; getmem(p,size+1);<br>&nbsp; sendmessage(h,wm_gettext,size,p);<br>&nbsp; Showmessage(string(p));<br>&nbsp; freemem(p);<br>end;<br>其实使用这个消息等于用GetwindowText<br>
 
to coolx:<br>但我这样用却出错,提示wParam和wLParam都不能用Integer和PChar!<br>why?
 
WM_GETTEXT好像是针对控件的消息,具体使用可以这样做。<br>var<br>&nbsp;h:HWND;<br>&nbsp;buffer:array[0..255] of char;<br>begin<br>&nbsp;h:=FindWindow('TForm1','MyForm');<br>&nbsp;if h&lt;&gt;0 then<br>&nbsp; &nbsp;SendMessage(h,WM_GETTEXT,255,LongInt(@buffer));<br>end; &nbsp;
 
对不起,我没注意,这样:<br>var<br>&nbsp; h:Thandle;//指定窗口的句柄<br>&nbsp; p:pchar;<br>&nbsp; size:cardinal;<br>begin<br>&nbsp; size:=128;<br>&nbsp; getmem(p,size+1);<br>&nbsp; sendmessage(h,wm_gettext,size,integer(p));<br>&nbsp; Showmessage(string(p));<br>&nbsp; freemem(p);<br>end; &nbsp;应该没问题,或者按liguang的方法也行。<br>
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
813
SUNSTONE的Delphi笔记
S
S
回复
0
查看
723
SUNSTONE的Delphi笔记
S
D
回复
0
查看
821
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
后退
顶部