커뮤니티

DDE 로 데이터 수신 시 한 글자만 전송되는 현상

프로필 이미지
브라이언7
2018-10-03 22:52:51
3218
글번호 224612
답변완료

첨부 이미지

안녕하세요. 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)