如果我有一个窗口的句柄,当任何新的子窗口出现时,我如何截取它们的屏幕截图?现在,我的代码可以每隔.1秒截取一次windows窗体的屏幕截图。当我单击下拉列表框时,随后的屏幕截图不会包含它。使用spy++,我可以看到创建了一个新的子窗口,但不确定如何确保它包含在我的屏幕截图中。有谁有可能包含子窗口的代码吗?
提前谢谢你,
鲍勃
发布于 2009-03-19 13:51:59
是的,ComboBox的下拉列表是一个特殊的窗口,一个列表框。.NET没有提供获取句柄的内置方法,您可以P/Invoke SendMessage并发送CB_GETCOMBOBOXINFO消息。COMBOBOXINFO.hwndList包含句柄。
请注意,还有其他控件也具有这种行为,例如DateTimePicker。还要注意的是,窗口可以扩展到窗体的边界之外。
this thread中的代码应该有助于正确执行P/Invoke。
https://stackoverflow.com/questions/660676
复制相似问题