我试图用python编写一个DDE服务器,它需要向作为DDE客户端连接的程序发送一个不断变化的字符串。
连接到DDE服务器的程序使用以下DDE设置连接[服务:Orbitron,主题:跟踪,项目:跟踪]。 程序必须接收DDE服务器以以下字符串格式发送的信息: “UP0 DN145000001 UMusb DMfm AZ040 EL005 SNNO卫星”。
此字符串的内容大约每秒更改一次,我希望DDE服务器将新字符串发送到连接的DDE客户端,例如每秒一次。
我目前正在使用下面的代码,这是对原来的ddeserver.py文件see here的一个稍加修改的版本。
import win32ui
from pywin.mfc import object
import dde
class MySystemTopic(object.Object):
def __init__(self):
object.Object.__init__(self, dde.CreateServerSystemTopic())
def Exec(self, cmd):
print "System Topic asked to exec", cmd
class MyOtherTopic(object.Object):
def __init__(self, topicName):
object.Object.__init__(self, dde.CreateTopic(topicName))
def Exec(self, cmd):
print "Other Topic asked to exec", cmd
class MyRequestTopic(object.Object):
def __init__(self, topicName):
topic = dde.CreateTopic(topicName)
topic.AddItem(dde.CreateStringItem(""))
object.Object.__init__(self, topic)
def Request(self, aString):
print "Request Topic sent: ", aString
a="UP0 DN145800001 UMusb DMfm AZ040 EL005 SNNO SATELLITE"
print a
return(a)
server = dde.CreateServer()
server.AddTopic(MyRequestTopic("Tracking"))
server.Create('Orbitron')
while 1:
win32ui.PumpWaitingMessages(0, -1)
当我运行代码时,我可以成功地与程序连接,并且字符串(如代码中提供的)会被接收一次。我尝试了一些不同的方法,但是我想不出一种方法来改变python代码,以便让DDE服务器以循环或类似的方式不断地重新发送字符串。
任何建议都是非常欢迎的。
另外,我对python、DDE和这个论坛还比较陌生,如果有什么不清楚的地方我会道歉。告诉我就行了。
相关问题 更多 >
编程相关推荐