掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
exeが異なるPGM間での値の受け渡し (ID:33533)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
送信側と受信側で同じクラス名のフォームだとFindWindowは使えないのでそれが原因なのではないかなぁ、と。 もしそうなら送信側と受信側のクラス名を違うものにするか、あるいはFindWindowではなくEnumWindowsを使って受信側のフォームを探すとかでしょうか。 function ClassNameGet(hHandle: HWND): String; //ウィンドウハンドルhHandleのクラス名を返す const lci_LEN = 256; var lp_Buff: PChar; begin Result := ''; lp_Buff := AllocMem(lci_LEN +1); try GetClassName(hHandle, lp_Buff, lci_LEN); Result := String(lp_Buff); finally FreeMem(lp_Buff); end; end; procedure TForm1.Button1Click(Sender: TObject); function FindReceiver(hWindow: HWND; hHandle: LPARAM): BOOL; stdcall; begin Result := True; if (hWindow <> HWND(hHandle)) then begin if (ClassNameGet(hWindow) = 'TForm1') then begin { 送信処理を書く } Result := False; //複数に送信するならコメントアウト end; end; end; begin EnumWindows(@FindReceiver, LPARAM(Handle)); end; こんな感じで。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.