自己做了一个查看窗口和控件句柄的小程序,但是在word2003里的打印窗口中,无法显示出“确定”按钮(以及其他按钮如“取消”)的控件句柄,同理,excel2003也是一样;但是在在pdf和txt文档里就没有这种问题。请问这是为什么?
部分代码如下: public void LBTDown(Point curPoint)
{
//根据当前鼠标位置确定父窗口句柄
IntPtr CurPtHwnd = WindowFromPoint(curPoint);
//将窗口或控件的txt内容取出放在s中
StringBuilder s = new StringBuilder(512);
int strLen = GetWindowText(CurPtHwnd, s, s.Capacity); //将s和窗口(控件)句柄显示出来
if (strLen >= 0)
{
this.MouseStructInfoText.Text = "当前鼠标所指位置的文本内容为:\r\n" + s.ToString();
this.MouseStructInfoText.Text += "\r\n当前鼠标所指位置的控件句柄为" + CurPtHwnd.ToInt32();
}
else {
MessageBox.Show("获取当前鼠标所指控件的文本内容时失败");
}
}钩子程序句柄控件内容打印框
不要用WindowFromPoint取,
用FindWindow/FindWindowEx取。