【发布时间】:2019-01-02 20:35:31
【问题描述】:
我的任务是处理一个应用程序,其中 Excel 电子表格需要直接从客户端上并排运行的 Windows 窗体应用程序中检索/访问值。我一直在阅读将 .NET 组件暴露给 COM 的内容,并且我已经能够从 excel 中编译、注册和使用它们。但是,到目前为止,我所阅读的任何内容都不允许我直接进入正在运行的 Windows 进程/窗体并访问窗体本身的一些值,因为我总是必须在 VBA 中“新建”.NET 对象并且无法访问当前线程。我的问题是:
- 是否可以有直接进程来处理 Excel 电子表格和 Windows 窗体应用程序之间的通信(无中间数据库或文件)?
- 是否可以将 .NET Windows 窗体应用程序的输出编译成 .dll?到目前为止,我只能让它生成一个.exe。
如果措辞不当,请告诉我,我可以尝试更好地解释问题。
感谢您的帮助。
【问题讨论】:
-
从未尝试过类似 thsi 的方法,但我认为您应该能够使用 WinAPI 函数来获取表单应用程序的 HWND 的句柄。
-
如果您创建类库而不是控制台应用程序,那么它将编译为 DLL 而不是 EXE stackoverflow.com/questions/15567893/… 另请参阅:social.msdn.microsoft.com/Forums/en-US/… 和 stackoverflow.com/questions/4350542/…
-
非常感谢您提供从 exe 创建 dll 的提示链接。那行得通。
标签: excel vba winforms-interop