C# DDE数据接收问题

quentin66 2016-11-15 11:08:26
private void Form1_Load(object sender, EventArgs e)
{
try
{
//申明并实例化一个DdeClient对象
DdeClient client = new DdeClient("DDEServer", "TEST");
client.Advise += client_Advise;
//连接到DDE服务器
client.Connect();
//循环获取数据
client.StartAdvise("MainPro_0", 1, true, 60000);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void client_Advise(object sender, DdeAdviseEventArgs args)
{
//显示更新数据
label1.Text = "OnAdvise: " + args.Text;
}

CSDN上找到上述例子,但是获取不到对应的数据。单步执行时,根本运行不到client_Advise。请大侠指教,谢谢!
...全文
657 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
裸奔的蜗牛 2017-10-23
  • 打赏
  • 举报
回复
我这边测试都OK的, 用的是NDde.dll ,测试IDE vs2015
裸奔的蜗牛 2017-10-23
  • 打赏
  • 举报
回复
你可以先连接Excel,用Excel测试一下,如果连接的通就说明你的DDEClient没有问题,如果连接不上看看你的配置, 一个服务名(service),一个主题(topic) ,在连接前 先启动DDEServer
qq_37119061 2017-07-18
  • 打赏
  • 举报
回复
请问楼主问题解决了吗,我现在也遇到同样的问题,求指教!!!!!
quentin66 2016-11-24
  • 打赏
  • 举报
回复
用VB了,结贴,感谢大家的回复。
xuzuning 2016-11-22
  • 打赏
  • 举报
回复
你应该检查 DdeClient client = new DdeClient("DDEServer", "TEST"); 和 client.StartAdvise("MainPro_0", 1, true, 60000); 的参数是否正确
quentin66 2016-11-22
  • 打赏
  • 举报
回复
引用 10 楼 xuzuning 的回复:
那服务端启动了吗? 如果服务端是包含在有界面的程序中时,应先运行该程序 VB 中是怎么调用的?是否是你移植错了
服务器端已启动的,VB提供的测试界面中可以读取到DDE的数据,但是我做的就获取不到
xuzuning 2016-11-22
  • 打赏
  • 举报
回复
那服务端启动了吗? 如果服务端是包含在有界面的程序中时,应先运行该程序 VB 中是怎么调用的?是否是你移植错了
quentin66 2016-11-22
  • 打赏
  • 举报
回复
引用 7 楼 shingoscar 的回复:
DdeClient是啥?
我就不科普了
quentin66 2016-11-22
  • 打赏
  • 举报
回复
引用 4 楼 xuzuning 的回复:
你的 DDE 服务端是怎么写的?
DDE是之前别人写的,VB做的。
quentin66 2016-11-22
  • 打赏
  • 举报
回复
引用 12 楼 xuzuning 的回复:
你应该检查 DdeClient client = new DdeClient("DDEServer", "TEST"); 和 client.StartAdvise("MainPro_0", 1, true, 60000); 的参数是否正确
应该是没问题的,有问题会抛出异常
  • 打赏
  • 举报
回复
DDE现在用的不多吧,替代方案太多,有文件打开方式,扩展名关联的应用程序那里可以设置是否启用DDE(有个复选框),具体你可以去看下office那几个扩展名的找开方式扩展名的高级属性
xuzuning 2016-11-21
  • 打赏
  • 举报
回复
你的 DDE 服务端是怎么写的?
quentin66 2016-11-21
  • 打赏
  • 举报
回复
继续刷
Poopaye 2016-11-21
  • 打赏
  • 举报
回复
DdeClient是啥?
quentin66 2016-11-21
  • 打赏
  • 举报
回复
引用 5 楼 dongxinxi 的回复:
DDE现在用的不多吧,替代方案太多,有文件打开方式,扩展名关联的应用程序那里可以设置是否启用DDE(有个复选框),具体你可以去看下office那几个扩展名的找开方式扩展名的高级属性
感谢回复,DDE服务器端是别人已有的东西,我们需要从DDE端口获取数据
quentin66 2016-11-16
  • 打赏
  • 举报
回复
刷刷刷,大神看到
quentin66 2016-11-15
  • 打赏
  • 举报
回复
坐等大神

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧