问题标签 [rtd]

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.

0 投票
2 回答
11894 浏览

python - 如何使用 pyrtd/pythoncom 解决 `pywintypes.com_error`?

我正在尝试使用 Python 的pyrtd模块来获取可以通过 RTD 在 Excel 中获取的信息。

但是,当我尝试运行示例 python 脚本时,我收到以下错误:

我尝试了其他几个 RTD 功能,有时(当我Dllname.function_name用作 的参数时RTDClient())我得到:

所有这些 RTD 函数都在 Excel 2010 中运行良好。

我还没有找到 Python 的解决方案,但我已经了解了一些适用于 C# 的技巧:

基本思想是:

  1. 从注册表中获取 rtd 服务器的类类型ProgID(例如,如果您已经使用regsvr32注册了 dll ,则RTDTime.RTD可以在 中找到它们)。HKEY_LOCAL_MACHINE\SOFTWARE\Classes\RTDTime.RTD

    在 C# 中,函数是Type.GetTypeFromProgID(). 我相信 Python 模块中有相同的功能win32com

  2. 将服务器类强制转换为IRtdServer( Microsoft.Office.Interop.Excel.IRtdServer)。

  3. 然后可以IRtdServer.ConnectData(topicID, topics, newData)用来获取数据:

    • topicID似乎是随机的int
    • topics是你在Excel中使用的参数,它是一个数组;
    • newData是 a boolTrue如果您请求新数据而不是缓存数据,请将其设置为。
  4. 但是,我相信如果想要自动更新数据,则需要一个回调事件。

根据链接的博客文章,事件类也可以通过progID但我在 reg 表中没有找到任何内容

在 C# 中,我认为可以创建一个IRTDUpdateEvent. 但我不知道如何用 Python 处理它。

有人可以帮我解决这些错误吗?

0 投票
1 回答
198 浏览

c# - Excel RTD 服务器出现意外的 ServerTerminate

当我的 RTD 服务器启动时,它会通过 ServerStart 和 ConnectData 调用,然后就在数据开始到达时,它会调用 ServerTerminate 来关闭一切。我添加了一个堆栈跟踪转储,但这并没有告诉我任何有用的信息:


什么可能导致对 ServerTerminate 的调用?

0 投票
1 回答
3322 浏览

c# - R6025 纯虚函数调用

我收到随机 R6025 - 将这个自定义 c# RTD 客户端用于 ThinkOrSwim 时随机出现纯虚函数调用错误。

我怎样才能a)调试它以找出问题所在,b)修复它?

当windows弹出消息框说有错误时,代码会一直在后台运行,不会抛出异常。但是当我在消息框上单击“确定”时,Windows 会关闭应用程序。

这是请求 RTD 数据的代码片段:

这是 RTD 客户端实现:

0 投票
2 回答
1407 浏览

delphi - Delphi 上的 RTD 客户端

如何在 Delphi 上创建 RTD 客户端?我不知道如何开始,我需要像 Excel 电子表格一样获取值,例如

0 投票
1 回答
1804 浏览

excel - LibreOffice 的 RTD 等效项

是否有与 RTD 做同样事情的 LibreOfficeCalc 函数?

我找不到一个。

干杯

0 投票
1 回答
1578 浏览

vba - VBA中的Excel RTD

我正在尝试在 VBA中获取RTD输出。问题是数据有时需要几秒钟才能返回,所以当我运行一个循环的一半时间它错误地返回 0。显然 RTD 正在异步运行。如何将其设置为同步运行以等待正确的输出?

如果我把公式放在一个单元格中,它通常会立即返回,有时需要一秒钟。如果我尝试在 VBA 中循环,它会过快地转到下一个值并返回误报,因为它没有等待数据返回。我已经尝试过 RTD.RefreshData,但它的加载速度不足以跟上我的循环。(我的目标是使用 RTD 遍历数千个字段,这就是我需要这样做的原因)

0 投票
1 回答
606 浏览

excel - 如何创建 RTD 函数输出的历史日志

我想存储不断变化的 RTD 函数的值。假设我设置单元格A1 = SomeRTDFunction()。我应该如何处理这个?

我想到的一种可能性是创建一个Sub在某个计时器上连续运行的值,而不是从该单元格复制值并将其连续放入另一个单元格。

有一个更好的方法吗?

0 投票
3 回答
2715 浏览

c# - C# 中的 RTD 服务器 - 从哪里开始

我在 Excel 中有 RTD 服务器,它从 thinkorswim 应用程序中提取数据。我想将数据提取到 C# 中。我的编程经验有限,因此阅读了多篇关于用 C# 实现 RTD 服务器的教程,但其中大部分对我来说都是高级的。所以我想知道是否有人可以推荐一些介绍性阅读材料。这是我正在尝试实现的示例代码:

http://awkwardcoder.com/2014/01/24/excel-rtd-client-in-c/

我将它复制并粘贴到 Visual Studio (VS) 中并调用类 RtdClient.cs。VS 立即突出显示以下行:

并写了找不到类型和命名空间。

我错过了任何参考吗?我添加了对 COM 类型 Tos.RTD 的引用,但没有帮助。

同样在注册表中,我找到了带有 Tos.RTD 和 CLSID 的文件夹。我假设 CSLID 指向 COM 类型?

在 VS Tos.RTD 中有几个接口。在上面的链接中,我没有看到这些接口的方法的实现。怎么了?

我还通过反射阅读了 RTD,我知道第二个链接依赖于反射。这两种方法的优点/缺点是什么?哪一个在概念上更有意义?

如您所见,我迷路了,因此将不胜感激任何建议。

0 投票
2 回答
2487 浏览

excel - 在 Excel 中暂停 RTD 服务器并保存工作表

我有通过以下公式从 RTD 服务器获取数据的工作表:

我想每隔 1 分钟左右保存一次带有上述公式的工作表。挑战在于暂停 VBA 代码并确保在我们保存之前,单元格中的值已更新。我已经尝试了以下代码。

代码不起作用,仅仅是因为 DoEvents 一直等到 RTD 完成更新,而这永远不会。我还看到了显式暂停与 DB 的连接的示例,但我不知道如何调整它的 RTD 服务器案例。我试图从 C# 运行 RTD 服务器,但失败得很惨。C# 中的 RTD 用于傻瓜有 什么建议吗?

0 投票
2 回答
2689 浏览

excel - Excel VBA 中的 RTD(需要从 rtd 调用数据)

我正在寻找需要从 RTD 服务器调用数据的相同答案

当我从 Excel 中提取数据时

它工作正常并给出一个数字。