我有第三方应用。我有一个TMainDlg的句柄,以及它的孩子TListBox。如何选择项目2?现在我(并不奇怪)在地址"进入" EAccessViolation错误。
任何提示,技巧或建议?
add_filter('loop_shop_columns', 'loop_columns');
if (!function_exists('loop_columns')) {
function loop_columns() {
return 2; // 2 products per row
}
}
显示消息发生错误。
答案 0 :(得分:2)
h2
是一个窗口句柄,用于另一个进程中的窗口。您可以将其转换为TListBox
,但这不会使h2
实际上成为列表框。因此运行时错误。基本上,你通过声称h2
不是它来欺骗编译器。
您需要使用一些自动化。您可以发送其他窗口句柄列表框消息并以这种方式检索数据。请注意列表框窗口处于不同的进程中。因此,您必须注意所有使用的消息都会封送任何数据。
在这里,您要查找列表中有多少项。这样做:
Count := SendMessage(h2, LB_GETCOUNT, 0, 0);
执行一些错误检查是明智的。您如何知道h2
实际上不是0
?
也许更好的方法是使用平台自动化API,UI Automation。