c#如何获取其他程序文本框的文字

error5566 2013-03-24 11:16:22
现在有一个软件,工作时我要来查信息的,如ID,名字,年龄,日期等,该程序标题固定,如“查询”。
现在我想写一个程序,软件后台运行,按下全局快捷键后,获取上面程序内的文字内容,然后传回我自己的程序里
在论坛里搜了一下,都用到findwindows、getwindows等API,但都不是很详细,不是很明白,谁能提供一下带注释的代码参考一下呢
...全文
1638 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
error5566 2013-03-26
  • 打赏
  • 举报
回复
获取窗口中一个文本框的值的SendMessage方法:

[DllImport("user32.dll", EntryPoint = "SendMessageA")]
static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);
const int WM_GETTEXT = 0xd;
private void button1_Click(object sender, EventArgs e)
{
    const int buffer_size = 1024;    
    StringBuilder buffer = new StringBuilder(buffer_size);
    SendMessage(this.textBox1.Handle, WM_GETTEXT, buffer_size, buffer);
    MessageBox.Show(buffer.ToString());
}
_小黑_ 2013-03-25
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
用FindWindow(窗口标题)找到主窗口,用GetDlgItem(ID)找到文本框(ID用SPY++查),最后用SendMessage(WM_GETTEXT)获得文本。
分析的很透彻,学习了
error5566 2013-03-24
  • 打赏
  • 举报
回复
引用 1 楼 perock 的回复:
用ce找内存基址+偏移然后ReadProcessMemory()函数取其值即可。如果用GetWindowText也行但会很麻烦,因为你得罗列该窗口所有控件句柄。
有参考代码吗?
perock 2013-03-24
  • 打赏
  • 举报
回复
用ce找内存基址+偏移然后ReadProcessMemory()函数取其值即可。如果用GetWindowText也行但会很麻烦,因为你得罗列该窗口所有控件句柄。
error5566 2013-03-24
  • 打赏
  • 举报
回复 1
引用 4 楼 caozhy 的回复:
用FindWindow(窗口标题)找到主窗口,用GetDlgItem(ID)找到文本框(ID用SPY++查),最后用SendMessage(WM_GETTEXT)获得文本。
总算有回答了,谢谢啦 另外我是业余的,所以问题比较白痴,不好意思阿
threenewbee 2013-03-24
  • 打赏
  • 举报
回复 1
p.s. 这是我回答的最有耐心的一次,平时我也就说一个API名字,绝对不会告诉你主要参数用什么,你要是再要代码,我就建议你改行算了!
threenewbee 2013-03-24
  • 打赏
  • 举报
回复 1
用FindWindow(窗口标题)找到主窗口,用GetDlgItem(ID)找到文本框(ID用SPY++查),最后用SendMessage(WM_GETTEXT)获得文本。
error5566 2013-03-24
  • 打赏
  • 举报
回复
顶一顶,有人帮帮忙吗?

111,097

社区成员

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

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

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