我使用这个单元格公式成功地将ThinkOrSwim交易平台的DDE数据接收到excel:
=TOS|Last!AAPL
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用.Net C#应用程序中的NDDE库连接到ThinkOrSwim DDE时,我收到以下错误消息,这与我在ThinkOrSwim平台根本没有运行时会得到的相同:
客户端无法连接到"TOS | LAST".确保服务器应用程序正在运行,并且它支持指定的服务名称和主题名称对.
与NDDE连接的完全相同的方法在2009年工作,并且在2012年重新使用它时失败了.也许ThinkOrSwim在他们的应用程序中做了一些改变来阻止它?我想知道下一步该做什么......要么找到一种方法让NDDE工作(更好),要么在我的.Net应用程序中运行excel电子表格(凌乱).
希望有人在这里知道我可以继续使用NDDE并修复该连接问题.
单击下载我创建的小代码库以演示此问题(Visual Studio 2010).页面加载后,您必须单击文件 - >下载.
Bounty仅用于显示使用纯.Net/windows api解决方案的解决方案的答案.bounty不接受.Net内的Excel自动化.
从以下网址下载ThinkOrSwim:https://mediaserver.thinkorswim.com/installer/InstFiles/thinkorswim_jse6_installer.exe 如果您需要登录详细信息,请私下与我联系.
终于找到了解决方案:我必须以管理员身份运行 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>
Run Code Online (Sandbox Code Playgroud)