想获取其他程序界面里文本栏中的数据?

pengfeu 2007-08-14 06:09:29
我想用C#做一个程序,可以获取某个程序界面上文本栏中的数据,无从下手。请高手给点指点吧。
pengfeu@yahoo.com.cn
...全文
164 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengfeu 2007-08-15
  • 打赏
  • 举报
回复
有一些思路了。
sadever 2007-08-15
  • 打赏
  • 举报
回复
Mark
麦壳饼 2007-08-15
  • 打赏
  • 举报
回复
c#下使用api别告诉我你不会就行了。
麦壳饼 2007-08-15
  • 打赏
  • 举报
回复
Public Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE

Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long


GetCursorPos 函数取得当前鼠标位置
WindowFromPoint 取得当前位置下的对象
先用 SendMessage 发送WM_GETTEXTLENGTH 获得文本长度。
然后使用SendMessage WM_GETTEXT 取得文本即可。
如果要获得指定标题的窗体中的什么文本框之类的, 哪就需要您使用FindWindowEx 找到对象, 然后枚举出来该窗体中的对象, 然后你想取谁文本就取谁的文本。
jx0797 2007-08-15
  • 打赏
  • 举报
回复
hwnd=FindWindow();
byte[] buffer=new byte[255];
SendMessage(hwnd,WM_GETTEXT,255,buffer); || GetWindowText();




Console.WriteLine(Encoding.Default.GetString(buffer));
brucenan999 2007-08-15
  • 打赏
  • 举报
回复
获取程序的handle以及控件的handle,然后取值.

用一下SPY++,找找感觉...
Konig2007 2007-08-15
  • 打赏
  • 举报
回复
把文本栏的Modifey属性改为Public
pengfeu 2007-08-15
  • 打赏
  • 举报
回复
自己顶一下
zhqs1000 2007-08-14
  • 打赏
  • 举报
回复
up

110,537

社区成员

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

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

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