teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

誤字修正

2020/03/03 10:25

投稿

FKD
FKD

スコア268

answer CHANGED
@@ -20,4 +20,4 @@
20
20
 
21
21
  と、ここまで書いておいて 追記・修正欄にTDdeServerConv等の記述があるのに気づきました・・・
22
22
  単純にいままで通りDDE通信で連携できないのでしょうか?(DDEは古代から伝わるアプリケーション間通信機能です)
23
- 私は.netでDDE使用経験はないのですが、検索すると直接WindowsAPIを直接使用しなくても良いライブラリ(NDde等)あるようです。
23
+ 私は.netでDDE使用経験はないのですが、検索すると直接WindowsAPIを使用しなくても良いライブラリ(NDde等)あるようです。

1

ウィンドウハンドルについて追記、DDEについて確認

2020/03/03 10:25

投稿

FKD
FKD

スコア268

answer CHANGED
@@ -4,4 +4,20 @@
4
4
  Windowメッセージ送信(WindowsAPIのSendMessage)が一番楽ではないでしょうか?
5
5
 
6
6
  Delphi7側にウィンドウが無いプログラムでも AllocateHWnd を利用すればメッセージ受け取り可能です。
7
- (メッセージIDは異なるプログラム間なのでRegisterWindowMessageを利用する)
7
+ (メッセージIDは異なるプログラム間なのでRegisterWindowMessageを利用する)
8
+
9
+ ---
10
+ 追記1
11
+
12
+ .net側から送信先ウィンドハンドルを見つけるには WindowsAPIのFindWindow を使用します。
13
+ 受信ウィンドウのタイトルに GUIDを文字化した物をセットしておくと見つけやすいです。
14
+
15
+ プログラムが単体起動のみなら、GUIDを決め打ちして良いと思います。
16
+ 複数起動するなら、GUIDを毎回生成し、Delphi7プログラム起動時のコマンドラインで渡すと重複を避けられます。
17
+
18
+ ---
19
+ 追記2
20
+
21
+ と、ここまで書いておいて 追記・修正欄にTDdeServerConv等の記述があるのに気づきました・・・
22
+ 単純にいままで通りDDE通信で連携できないのでしょうか?(DDEは古代から伝わるアプリケーション間通信機能です)
23
+ 私は.netでDDE使用経験はないのですが、検索すると直接WindowsAPIを直接使用しなくても良いライブラリ(NDde等)あるようです。