안녕하세요. YesSpot 에 있는 DDE 객체를 이용해서
python 에서 데이터를 전송하는 프로그램을 만들었는데,
한 글자 밖에 전송이 안되는 현상이 발생하고 있습니다.
참고 예제: https://booja.blogspot.com/2017/05/dde.html
실행환경:
Windows 10
Anaconda 64비트 설치
Python 3.6.4
Python 소스는 다음과 같습니다.
ABC 를 전송했는데 예스스팟에서 첫 글자인 A 밖에 받지 못합니다. 해결책이 뭘까요?
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(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(value)
ddeServer = dde.CreateServer()
ddeServer.Create('PYTHON')
ddeTopic = DDETopic('hello')
ddeServer.AddTopic(ddeTopic)
while 1:
ddeTopic.setData('item1', 'ABC')
win32ui.PumpWaitingMessages(0, -1)
time.sleep(1)
답변 1
예스스탁
예스스탁 답변
2018-10-23 08:32:33
> 브라이언7 님이 쓴 글입니다.
> 제목 : DDE 로 데이터 수신 시 한 글자만 전송되는 현상
> 안녕하세요. YesSpot 에 있는 DDE 객체를 이용해서
python 에서 데이터를 전송하는 프로그램을 만들었는데,
한 글자 밖에 전송이 안되는 현상이 발생하고 있습니다.
참고 예제: https://booja.blogspot.com/2017/05/dde.html
실행환경:
Windows 10
Anaconda 64비트 설치
Python 3.6.4
Python 소스는 다음과 같습니다.
ABC 를 전송했는데 예스스팟에서 첫 글자인 A 밖에 받지 못합니다. 해결책이 뭘까요?
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(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(value)
ddeServer = dde.CreateServer()
ddeServer.Create('PYTHON')
ddeTopic = DDETopic('hello')
ddeServer.AddTopic(ddeTopic)
while 1:
ddeTopic.setData('item1', 'ABC')
win32ui.PumpWaitingMessages(0, -1)
time.sleep(1)