问题标签 [com-server]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 用 C# 创建的 COM 服务器所需的客户端
我查看了 StackOverflow,但没有看到已发布的问题/解决方案(但可能错过了)。
我正在寻找一种方法来测试我在 C# 中创建的 COM 服务器(即注册为 COM 互操作)。当我尝试在不同的 C# 项目中添加对 COM 对象的引用时,我收到错误“...COMTest.tld 是从 .NET 程序集导出的,无法添加为引用。” 我从 VB 中尝试过,当然,同样的错误。C# 和 VB 中的新项目的引用是在右键单击解决方案时选择添加引用后从 COM 选项卡完成的。最后,我去了Visual C++,但没有看到添加引用和访问COMTest的方法。
感谢您的关注和任何帮助!如果需要任何澄清,请随时告诉我。
c# - .NET - 是否可以在 WinForms 应用程序中运行进程外 COM 服务器?
我想将 COM 服务器(进程外)作为 WinForms 应用程序的一部分运行 - 针对 .NET 2.0
我在这里找到的示例代码:http: //support.microsoft.com/kb/977996使用消息循环,这很可能会干扰 WinForms 应用程序
是否可以在 WinForms 应用程序中创建 COM 服务器?我的备份计划是使用独立的 COM 服务器 EXE(根据示例),并通过命名管道 WCF 调用将信息发送到我的应用程序,但由于安装和管理另一个应用程序的开销,我不希望这样做.
谢谢!
c# - Excel 在工作表中仍有活动的 RTD 公式时调用 IRTD.ServerTerminate
我有一个RtdServer
从TCPListener
. 它按预期运行,除了在某些时候它仍然在工作RTD()
表中有活动的 sServerTerminate()
被调用,我似乎无法弄清楚为什么。
我的理解ServerTerminate()
被称为如果:
- 删除所有 rtd 公式
ServerStart()
不返回 1
excel调用还有什么其他原因ServerTerminate()
?
编辑:
这是我设置HeartBeat
机制的方式:
这是HeartBeat
代码
从上面看,我希望HeartBeat
每 60 秒(60 公里)看到一次呼叫,但我没有看到记录。我很难过 - 有什么想法吗?
python - 如何使用带有 telnetlib 的 python 脚本通过 telnet 重置 comserver
我想编写一个自动重置 com 服务器的 python 脚本。为此,脚本必须传输命令“2”、“5”、“y” 我已经写了这个小程序:
该程序使用我的 Telnet 类:
但这整个程序不起作用。我认为与服务器的连接已建立,但未发送或执行命令。我也没有从 telnet 会话中得到任何反馈。只有在开始时,才建立连接。
我希望你有一个想法,可以帮助我:-)
最好的。
c# - COM 服务器 C#(在 x64 应用程序中使用 x86 dll)
我想在我的 x64 C# 应用程序中使用 x86 dll!在论坛上我读到 com 对象会帮助我!这是我的 ComServerSample。它像 x86 一样编译。
这是使用此 com 服务器的测试应用程序
当测试应用程序是 x86 时!这两个应用程序工作正常!但是当测试应用程序是 x64 时,会出现 eroor :
由于以下错误,无法获取具有 CLSID {7B9F9A71-8E1B-3470-8A79-EEB4DA9B25A4} 的组件的 COM 类工厂:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。
如何解决问题?我需要在 x64 应用程序中使用我的 x86 dll!
c++ - Out of Process COM Server - 每个调用进程一个服务器进程?
我有一个进程外的 com 服务器,将 CLSCTX_LOCAL_SERVER 指定为上下文,将 REGCLS_MULTIPLEUSE 指定为连接类型。这导致单个服务器进程被来自多个客户端的多个调用重用。
我现在想对服务器进行一些更改,不幸的是它不能与客户端之间共享的单个进程一起使用(这是有原因的,但它们很啰嗦)。我知道您可以将服务器设置为使用 REGCLS_SINGLEUSE 作为连接类型,这将为 OOP 服务器每次调用创建一个新进程。这解决了我的问题,但在流程使用方面并非首发;短时间内多次调用会导致许多进程,并且这个特定的服务器可能会被频繁地击中。
有没有人碰巧知道混合这两种连接类型的机制?基本上我想要的是每个调用进程都有一个服务器进程。(即,客户端 1 创建一个进程,该进程被该客户端的后续调用重用。客户端 2 尝试调用服务器,并创建一个新进程)。我怀疑我可以通过强制 REGCLS_SINGLEUSE 服务器在客户端中永久保持打开状态来实现它,但这既不优雅也不可能(因为我无法更改其中一个客户端)。
想法?
更新 正如预期的那样,似乎没有办法做到这一点。如果时间和资源允许,我很可能会将其转换为 In-Proc 解决方案。不过,就目前而言,我不得不采用用于任何呼叫客户端的新行为。幸运的是,这种变化的影响非常小,客户可以接受。稍后我将研究更剧烈和适当的更改。
注意 我已将 Hans 的回复标记为答案,因为它确实为维护 OOP 解决方案的问题提供了解决方案。我只是没有能力实施它。
卡路里
windows - 当用户没有足够的权限时隐藏 COM-Server OLE 错误消息
我正在升级一个带有 COM 自动化接口的 Delphi 软件项目,以简化一些批处理任务(通过 WSH 脚本)。这本身很容易......但是,该软件的大多数“实际”用户不需要(甚至不知道)这个界面,我想让他们免于注册 COM-Server 或错误消息弹出,当程序无法启动 com 服务器时(目前该软件没有安装程序 - 它只是复制和运行。注册任何东西对用户来说都是一个额外的步骤。它是内部的,所以客户端已经习惯了。 ..)。
这是实际的问题:我能否以编程方式找出运行该软件的当前用户是否有足够的权限来注册 COM 服务器,然后(如果没有)避免尝试创建服务器?我想要一种行为,即当用户没有足够的权限时,自动化服务器不存在(没有错误消息)。
我尝试在周围添加一个try-catch,TAutoObjectFactory.Create(...)
但这并不能防止错误。添加启用服务器的命令行参数也不起作用,因为从脚本创建自动化对象将在没有该参数的情况下启动程序,因此也不会创建服务器。
c# - 使用 InvokeMember 调用从 COM 获取 ref 参数
我正在尝试使用 InvokeMember 调用 COM 服务器的方法。该方法具有以下签名:
我的问题是取回 inIdOperInst 参数值。以下代码不起作用:
调用参数 [4] 后不会更改值
以下代码工作正常:
调用参数后 inId 值改变了
为什么 InvokeMember 不起作用?
visual-c++ - 如何在 CANoe COM 服务器接口中创建多个应用程序实例
我正在尝试将客户端应用程序写入 CANoe(Vector 应用程序)。我可以通过 COM 服务器对象完全控制一个应用程序,但是如果我创建一个新的应用程序实例 gCanAppB,则原始实例 gCanAppA 将关闭。我如何告诉 COM 服务器,在新应用程序窗口中打开新实例?
我的源代码:
service - 来自服务的 COMserver 的 CreateInstance 所需的权限
我创建了一个简单的 Windows 服务(例如 MyService.exe)和一个(ATL)COMserver(例如 MyCOMServer.exe)。
我希望该服务创建 MyCOMServer 公开的接口实例。COMserver 目前什么都不做。
如果服务帐户是“本地系统”,或者是管理员组成员的用户,但不是标准用户或“本地服务”,它可以工作
我的问题是,所需的最低用户帐户权限是多少?还是仅适用于具有管理员权限的帐户?