我對所有正在運行的DDE服務器感到好奇,試過TDdeClientConv
類但感到困惑(可能只是沒有弄清楚如何),最後推出了我自己的低級(通常應用程序應該使用DDEML抽象層)「客戶端「:是否可以使用`TDdeClientConv`類來枚舉所有可用的DDE服務器?
procedure TForm6.FormClick(Sender: TObject);
begin
{ initiate DDE conversation with all top-level windows }
SendMessage(
HWND_BROADCAST,
WM_DDE_INITIATE,
Handle,
MakeLParam(
0, // all services
0 // all topics
)
);
end;
procedure TForm6.WMDDE_Ack(var Message: TWMDDE_Ack);
begin
{ this message handler receives acknowledgements }
{ and prints service-topic pairs to console }
Writeln('"' + GetAtom(Message.App) + '"', #9, '"' + GetAtom(Message.Topic) + '"');
end;
問題:是否有可能做同樣的TDdeClientConv
類,也就是說,啓動與所有可用服務的DDE對話和接收多個確認?或者TDdeClientConv
僅代表DDE對話的客戶端,因此我的方案超出了範圍?