通过索引查找相应控件句柄

前言

  之前在做一个小玩意,用于控制外部程序的某些控件,所以首先要通过FindWindowExFindWindow两个函数来检索外部程序的窗口句柄,再进行其他的操作。但是由于博主是第一次用这两函数,就出现了点问题,不知道如何检索同类名下无名或重名的控件句柄。好在经过一番搜索得知可通过索引来解决这个问题,故记录之。

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
static IntPtr FindWindowByIndex(IntPtr hwndParent, int index)
{
if (index == 0)
{
return hwndParent;
}
else
{
int ct = 0;
IntPtr result = IntPtr.Zero;
do
{
result = FindWindowEx(hwndParent, result, null, null);
if (result != IntPtr.Zero)
{
++ct;
}
} while (ct < index && result != IntPtr.Zero);
return result;
}
}

PS

  如果你有更好的办法,欢迎在下方评论告知博主,为博主扫一下盲,感谢。

-------------本文结束❤感谢阅读-------------

本文标题:通过索引查找相应控件句柄

文章作者:三水非冰

发布时间:2018年10月22日

最后更新:2018年10月22日

原始链接:https://www.sanshuifeibing.cn/posts/912dde7f.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

如果觉得我的文章对您有用,请随意打赏,您的支持将鼓励我继续创作。