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

解決策は、この行を変更することでした

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は、Unicodeではなく、初期化子のANSIバージョンです。

于 2012-03-07T21:09:56.203 に答える