Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我得到了一个使用 DLL 的表单。有办法通过 DLL 获取表单的句柄吗?
像这样的东西:
SetWindowText(HandleOfTheForm, 'This Program is using my DLL');
语法错误抱歉。
如果没有一些关于它的先验知识,DLL 无法自动发现窗体窗口。表单本身需要告诉 DLL 使用哪个 HWND,例如通过 DLL 导出的函数,或者通过为表单提供 DLL 可以查找的已知/可预测的类名和/或窗口标题,例如通过使用FindWindow()或EnumWindows()。
FindWindow()
EnumWindows()
更好的选择是编写 DLL 以公开表单可以分配处理程序的回调,然后让 DLL 在需要时调用它,并让表单决定调用时要做什么。这样,DLL 根本不需要知道有关 Form 的任何信息。