如何获取一个 第三方窗口 中的相关控件信息?

jingxijun 2004-09-09 10:06:05
对应一个 第三方窗口,如:
姓名: _______ (需输入)
密码: _______ (需输入)

确定 退出 注册

如何获得如 “姓名”后的TEXTBOX的ID或确定等的ID?
注意:
若用鼠标定位再获取其ID的方法不行,因为我在这次取得ID号后,确定进去后,再
返回到此窗口,这些ID会变。
如果能象自己写的那样 有 textBox1,textBox2,Button1等ID就好了。
...全文
237 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wtyjl 2004-11-22
  • 打赏
  • 举报
回复
结帐
jingxijun 2004-10-29
  • 打赏
  • 举报
回复
up
jingxijun 2004-09-28
  • 打赏
  • 举报
回复
本来以为可以,但没成功啊。
谁做过?
hivak47 2004-09-27
  • 打赏
  • 举报
回复
用api获得当前窗口的资源不可以吗?
jingxijun 2004-09-24
  • 打赏
  • 举报
回复
我坚持
jingxijun 2004-09-21
  • 打赏
  • 举报
回复
up
jingxijun 2004-09-20
  • 打赏
  • 举报
回复
谢谢。
程序间谍和SPY++差不多,好象没用
comeon_data 2004-09-18
  • 打赏
  • 举报
回复
到最后一页了,帮你顶到前面去
dldl 2004-09-17
  • 打赏
  • 举报
回复
我的邮箱是:bianjingyu@dlyy.com.cn
发邮件给我,我发程序给你。
jingxijun 2004-09-17
  • 打赏
  • 举报
回复
up
jingxijun 2004-09-14
  • 打赏
  • 举报
回复
恕俺水平低凹:
"使用api函数,得到窗体的handle,然后再得到窗体上面控件的handle,然后postmessage就行了"中的 窗体handle可以根据窗体名称容易求得,但困难就是如何求得该窗体上的某个控件
的handle,若知道了此handle也可以容易postmessage了。
“程序间谍”:能否告诉下载地址?
dldl 2004-09-14
  • 打赏
  • 举报
回复
jingxijun(大梦)已经说得很清楚了,使用api函数,得到窗体的handle,然后再得到窗体上面控件的handle,然后postmessage就行了。我们单位的100多台电脑瑞星升级就是我这么做的。你还可以使用程序间谍这个软件察看窗体的名称,控件的名称……。然后就自己做了。
xjliang007 2004-09-14
  • 打赏
  • 举报
回复
up
jingxijun 2004-09-14
  • 打赏
  • 举报
回复
如何获得?
zoti 2004-09-13
  • 打赏
  • 举报
回复
先要获得句柄
yingshis 2004-09-13
  • 打赏
  • 举报
回复
up
yellowhwb 2004-09-13
  • 打赏
  • 举报
回复
你试试,用反射把dll里的类的属性,方法等信息给搞出来。或者,直接用ildasm.exe把第三方窗口的dll的中间语言代码给显示出来,再研究一下!
jingxijun 2004-09-13
  • 打赏
  • 举报
回复
怎么办呢?
jingxijun 2004-09-10
  • 打赏
  • 举报
回复
急啊
jingxijun 2004-09-09
  • 打赏
  • 举报
回复
我也是这么想的,但如何能准确获得 窗口中的资源?
虽然可以用FindWindow()找到某标题的窗口,但再用FindWindowEx()
继续查找该窗口中的某个资源的ID时,却不成功,如我例中的“确定”,
我的部份代码如下:

例:
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
  
[DllImport("user32.dll")]
public static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter,string lpszClass,string lpszWindow);

[DllImport("user32.dll",CharSet=CharSet.Unicode)]
public static extern IntPtr PostMessage(IntPtr hwnd,int wMsg,IntPtr wParam,IntPtr lParam);

IntPtr hwnd_textbox;
string strtext;

hwnd_win = FindWindow(null, this.textBox9.Text.Trim());
if (hwnd_win == IntPtr.Zero)
{
MessageBox.Show("警告:找不到目标窗口:" + this.textBox9.Text.Trim());
return;
}
//this.textBox10.Text.Trim()是我指定窗口中的某个资源,如“确定”,textBox1等
hwnd_textbox = FindWindowEx(hwnd_win, new IntPtr(0), null, this.textBox10.Text.Trim());
加载更多回复(5)

111,120

社区成员

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

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

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