如果我有窗口的句柄,如何在出现任何新的子窗口时截取屏幕截图?现在我的代码每隔.1秒就会截取一次窗体。当我单击下拉列表框时,后续屏幕截图不包含它。使用spy ++我可以看到创建了一个新的子窗口,但不确定如何确保它包含在我的屏幕截图中。有人有任何可能包含子窗口的代码吗?
提前致谢,
鲍勃
答案 0 :(得分:1)
是的,ComboBox的下拉列表是一个特殊的窗口,一个LISTBOX。 .NET没有提供内置的方法来获取它的句柄,你可以P / Invoke SendMessage并发送CB_GETCOMBOBOXINFO消息。 COMBOBOXINFO.hwndList包含句柄。
请注意,还有其他控件的行为方式,例如DateTimePicker。另请注意,窗口可以超出表单的范围。
this thread中的代码应该有助于使P / Invoke正确。