コンピュータで現在アクティブなすべての DDE サーバー (および可能であればトピック) のリストを表示したいと考えています。どうやってやるの?各 DDE サーバーに対して何らかのサービスが開始されていますか?
インターネットとスタックオーバーフローをしばらく検索しましたが、何も見つかりませんでした。
コンピュータで現在アクティブなすべての DDE サーバー (および可能であればトピック) のリストを表示したいと考えています。どうやってやるの?各 DDE サーバーに対して何らかのサービスが開始されていますか?
インターネットとスタックオーバーフローをしばらく検索しましたが、何も見つかりませんでした。
私が頻繁に使用するツールの中で、tcl がそれを実行できます。
dde services {} {}
すべてのアクティブなサービスとトピックのペアを返します。
TCL ソース ツリー (win/tclWinDde.c) で実装を確認できます。基本的に、ウィンドウとメッセージで退屈な作業がたくさんあります。まず、DDE クライアント ウィンドウが作成されます。次に、WM_DDE_INITIATE が (EnumWindows を使用して) 各ウィンドウに送信され、クライアント ウィンドウ ハンドルが WPARAM として渡されます。クライアント ウィンドウ プロシージャは WM_DDE_ACK を処理し、LOWORD(lParam) と HIWORD(lParam) のアトムからサービスとトピックを追加します。