"紅輝" wrote
about "SendMessageのパラメーターは4個から3個に変わったのでしょうか?"
on Mon, 27 Nov 2006 04:49:02 -0800
>Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, (WPARAM)Form1->Handle, (LPARAM)&cds);
>の様に使いたいのですが、3個のパラメーターしか受け付けてくれません。
MFC ですか?
::SendMessage() としてはどうですか?
2006/11/28(Tue) 00:56:07
--
Word by DSS
D...@mbj.nifty.com
http://homepage2.nifty.com/DSS/
> MFC ですか?
> ::SendMessage() としてはどうですか?
>
> 2006/11/28(Tue) 00:56:07
> --
> Word by DSS
> D...@mbj.nifty.com
> http://homepage2.nifty.com/DSS/
>
>
DSSさん お返事有難うございます。
MFCです。 仰せの通りに::を入れてみましたが、巧く動きません。相変わらず、3個までしか受け付けません。
チョット長くなりますが、肝心なところだけをリストアップいたしますと、
int cmmd;
HWND Hwnd1, Hwnd2;
COPYDATASTRUCT cds;
Char buffs[256];
Hwnd1 = FindWindow(_T("TThwin"), NULL);
cmmd = 1;
cds.dwData = cmmd;
strcpy(buffs, _T("ABCDEF"));//文字列
cds.cbData = strlen(buffs);//文字の長さ
cds.lpData = &buffs[0];// 文字のポインタ
Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, (WPARAM)Form1->Handle, (LPARAM)&cds);
if (Hwnd2 > 0) SetForegroundWindow(Hwnd2);
この方法は、昔のバージョンをお持ちの方より教わりましたが、2005では巧く動かないので、
HANDLE Hwnd1, Hwnd2に変更しました。
実は、Form1も定義されていないという表示も出ていまして、お手上げなのです。好い参考書なども探しましたが、見つからず困っています。
現状では、自分のアプリにある文字列を、他のアプリケーションに5項目の文字列を一々手作業でタイプ打ちをして書き写しています。これでは不便なので、何とかしたいのです。 よろしくお願い申します。なお、他のアプリはcmmdが1~5までありまして、このcmmdと文字列を順に他のアプリに送れば、それぞれの項目に自動的に入るとのことでした。 よろしくご教授お願い申します。