使用.Net中的NDDE连接到ThinkOrSwim

时间:2012-08-09 23:50:54

标签: .net dde

我使用此单元格公式成功地将ThinkOrSwim交易平台的DDE数据接收到Excel中:

=TOS|Last!AAPL

但是,当我尝试使用.Net C#应用程序中的NDDE library连接到ThinkOrSwim DDE时,我收到以下错误消息,这与我在ThinkOrSwim平台未运行时所获得的相同所有:

客户端无法连接到“TOS | LAST”。确保服务器应用程序正在运行,并且它支持指定的服务名称和主题名称对。

与NDDE连接的完全相同的方法在2009年工作,并且在2012年重新使用它时失败了。也许ThinkOrSwim在他们的应用程序中做了一些改变来阻止它?我想知道下一步该做什么......要么找到一种方法让NDDE工作(更好),要么在我的.Net应用程序中运行excel电子表格(凌乱)。

希望有人在这里知道我可以继续使用NDDE并修复该连接问题。

Click to download small code library I created to demonstrate this problem (Visual Studio 2010)。在页面加载后,您必须单击文件 - >下载。

Bounty仅用于显示使用纯.Net / windows api解决方案的解决方案的答案。 bounty不接受.Net内的Excel自动化。

https://mediaserver.thinkorswim.com/installer/InstFiles/thinkorswim_jse6_installer.exe下载ThinkOrSwim 如果您需要登录详细信息,请私下与我联系。

2 个答案:

答案 0 :(得分:3)

右键单击thinkorswim.exe,转到兼容性选项卡

  

检查底部的“以管理员身份运行”框。

     

单击“应用”。

答案 1 :(得分:1)

终于找到了一个解决方案:我必须以管理员身份运行Visual Studio才能让它在调试中运行。为了使.exe工作,我不得不添加一个app.manifest文件,其中包含以下内容:

  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
     <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>