基本上我正在寻找一个在C#中调用的win32方法,将焦点设置为非托管应用程序的子代。

但首先我需要找到子控件的句柄,这就是问题所在。任何有用的win32函数都可以解决这个问题吗?

有帮助吗?

解决方案

有一个库支持枚举和搜索窗口句柄,可在 http://mwinapi.sourceforge中找到。净/

这样你每次都不必重新发明轮子;)

开始
SystemWindow.AllToplevelWindows

然后深入挖掘(查看类名,进程名称,标题,对话框ID等)。

其他提示

使用 FindWindowEx 查找您的窗口句柄正在寻找。完成此操作后,使用 EnumChildWindows 找到你需要的正确孩子。我快速编写样本涉及的代码太多,但网上有足够的帮助。

来自Pinvoke.net: http://www.pinvoke.net/的Default.aspx / USER32 / EnumChildWindows.html

您是否尝试过使用FindWindowEx?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top