2

我正在尝试使用 DDE 向彭博终端发送命令。例如:显示我可以发送的 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>')

结果会弹出一个彭博窗口,但在命令区域中出现乱码,例如

????A?????

有没有人看起来像这样?

4

1 回答 1

6

解决方案是改变这条线

初始化 = get_winfunc("user32", "DdeInitializeW", UINT, (LPDWORD, DDECALLBACK, DWORD, DWORD))

初始化 = 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。

于 2012-03-07T21:09:56.203 回答