我正在尝试使用DDE向Bloomberg Terminal发送命令。 例如:显示我可以发送的Microsoft页面:
<blp-1><CANCEL><CANCEL><HOME>MSFT<EQUITY><GO>
使用EXCEL的VBA库可以正常工作。但是我试图从Python脚本中做同样的事情。我在这里使用代码(由于一些限制,我不能使用更标准的win32ui / dde python模块)
http://code.activestate.com/recipes/577654-dde-client/
消息正在传递给彭博终端但未被正确解释,例如:
de = DDEClient('WinBlp', 'bbk')
de.execute('<blp-1><CANCEL><CANCEL><HOME>MSFT<EQUITY><GO>')
导致Bloomberg窗口弹出,但命令区域中出现乱码,如
????A?????
有人看起来像这样吗?
答案 0 :(得分:6)
解决方案是改变这一行
Initialize = get_winfunc(“user32”,“DdeInitializeW”,UINT,(LPDWORD,DDECALLBACK,DWORD,DWORD))
到
Initialize = get_winfunc(“user32”,“DdeInitializeA”,UINT,(LPDWORD,DDECALLBACK,DWORD,DWORD))
来自MS文档:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648757(v=vs.85).aspx
DdeInitializeA是初始化程序的ANSI版本,而不是unicode。