2015年,我发布了一个关于如何Create DDE server in python and send data continously的问题。JayleoPlayGround发布的关于这个问题的答案和代码在Python2.7中运行得非常完美,我一直使用到最近
由于Python 2从2020年1月起不再受到积极支持,我想将代码转移到Python 3。我已经在python 3.7.6上使用pip安装了pywin32(版本227),并尝试使用与以前相同的代码:
# coded by JayleoPlayGround
# use Portable Python 2.7.5.1 + pywin32-214
import time
import win32ui, dde
from pywin.mfc import object
class DDETopic(object.Object):
def __init__(self, topicName):
self.topic = dde.CreateTopic(topicName)
object.Object.__init__(self, self.topic)
self.items = {}
def setData(self, itemName, value):
try:
self.items[itemName].SetData( str(value) )
except KeyError:
if itemName not in self.items:
self.items[itemName] = dde.CreateStringItem(itemName)
self.topic.AddItem( self.items[itemName] )
self.items[itemName].SetData( str(value) )
ddeServer = dde.CreateServer()
ddeServer.Create('Orbitron')
ddeTopic = DDETopic('Tracking')
ddeServer.AddTopic(ddeTopic)
while True:
yourData = time.ctime() + ' UP0 DN145000001 UMusb DMfm AZ040 EL005 SNNO SATELLITE'
ddeTopic.setData('Tracking', yourData)
win32ui.PumpWaitingMessages(0, -1)
time.sleep(0.1)
在Python3.7.6中运行上述代码并使用pywin32(版本227)时,我与之接口的外部DDE客户端应用程序能够连接到DDE服务器,但未正确接收数据字符串。如前所述,如果我将Python2.7与pywin32(版本214)一起使用,那么这很好
由于没有显示错误消息,我不知道python 3下的问题是什么。我为这个python版本(222到227)尝试了所有可用的pywin32版本,但没有成功。任何关于如何使这项工作的想法都将不胜感激
目前没有回答
相关问题 更多 >
编程相关推荐