查询Powerbuilder下的DDE通信

时间:2010-03-15 11:42:58

标签: powerbuilder dde

我有第三方工具可以发送或接收DDE戳。我一直在使用DDE间谍来监视它与第三方DDE服务器模拟器之间的通信,以便使用Powerbuilder复制它。据我所知,这是使用热链接。我尝试使用openchannel,然后是execremote,但调用类型被描述为'execute'。 同样,当客户端和模拟器启动时,它们出现在已注册的服务器列表中,但我的应用程序没有/ 我考虑过使用user32.dll,但我知道大多数DDE调用都无法与Powerbuilder一起使用,因为PB不支持回调。 任何人都能指出我在这个领域的信息方向吗? ..... 经过一些调整后,我尝试打开一个热链接。单击应用程序上的“戳”按钮,我的powerbuilder触发了hotlinkalarm事件。我可以拿起源等,但没有数据。此外,我需要发送一条指令,但所有的响应远程都会发送是真还是假。 我有一些来自DDE模拟器的Delphi / Pascal代码,但DDE调用看起来与Powerbuilder的调用完全不同。

1 个答案:

答案 0 :(得分:2)

你找到了答案吗?我不确定我是否完全明白你在做什么,但这里有我认为你需要看的东西。

StartServerDDE 函数将您的应用程序建立为DDE服务器,请注意您必须打开一个窗口作为DDE对话的句柄,然后代码窗口事件(应用程序级事件将不起作用)。这可能是您没有看到注册服务器的原因。结束DDE服务器时使用StopServerDDE。

DDE服务器窗口中以下事件的代码,用于完成接收,发送数据以满足您的需求,所有这些都是:

RemoteExec 事件(客户端已发送请求)   使用GetCommandDDE获取客户端发送的命令字符串   使用GetCommandDDEOrigin查看发送命令的客户端应用程序名称

RemoteSend 事件(客户端已发送数据)   使用GetDataDDE从客户端应用程序获取数据(通过ref字符串)   使用GetDataDDEOrigin查看客户端应用程序发送数据

RemoteRequest 事件(客户端已请求数据)   使用SetDataDDE将数据发送到客户端DDE应用程序

我希望这会有所帮助。