通过textbox的句柄得到并且修改其值

zzmsyt 2011-03-03 12:49:29
我想获取浏览器中网址的信息,然后再网址后面继续添加一些内容!
我利用spy++获取了浏览器中的textbox的句柄值,现在要获取其中的值,看网上说GetWindowTxt不行,得利用sendmessage这个函数,没怎么弄过api求解答!
我的代码
[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
const int WM_GETTEXT = 0x000D;
const int WM_SETTEXT = 0x000C;


int a = int.Parse("000203AA", NumberStyles.HexNumber);//00203AA是spy++获取的
IntPtr p=(IntPtr)a;
StringBuilder st= new StringBuilder(256);
SendMessage(p, WM_GETTEXT,IntPtr.Zero, st.ToString());
MessageBox.Show(st.ToString());
...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzmsyt 2011-03-04
  • 打赏
  • 举报
回复
我又试试别的,那个都取不到值 无语。。。。
zzmsyt 2011-03-04
  • 打赏
  • 举报
回复
改成stringbuilder还是空,难道浏览器里的取不到值?
xingyuebuyu 2011-03-03
  • 打赏
  • 举报
回复
  [DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, StringBuilder lParam);
const int WM_GETTEXT = 0x000D;
const int WM_SETTEXT = 0x000C;

int a = int.Parse("000203AA", NumberStyles.HexNumber);//00203AA是spy++获取的
IntPtr p=(IntPtr)a;
StringBuilder st= new StringBuilder(256);
SendMessage(p, WM_GETTEXT,IntPtr.Zero, st);
MessageBox.Show(st.ToString());


传StringBuilder才能获取到值

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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