关于delphi用消息机制在两个应用程序间传递变量的问题 我做了一个用消息机制在两个应用程序间传递变量,当程序一第一次打开程序二的时候可通过消息传递变量,但关闭程序二,再次通过程序一打开的时候变量就传递不过去。必须关闭程序一后重新打开程序一,并访问程序二才能传递过变量。请各位老大帮忙分析一下问题出在什么地方?应如何改正。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关键之处是你怎么取得对方程序目标窗口的Handle。你可以试着在每次传递之前都使用FindWindow来去的目标窗口的Handle 这个函数确实写的取数的函数procedure Tfrm_main.sendstr(var str:string);var HWndProc : HWnd; ds: TCopyDataStruct; // WM_COPYDATA所需要的结构begin //showmessage(str); HWndProc :=0; HWndProc := Winprocs.FindWindow(nil, 'kjbb'); if HWndProc <> 0 then begin if ZcBbWindowHandle = 0 then begin SendMessage(HWND_BROADCAST,ZcBbMessage,handle,0); // 进行广播 // 已经连接到用户程序 application.ProcessMessages; end; ds.cbData := Length (str) + 1; GetMem (ds.lpData, ds.cbData ); //为传递的数据区分配内存 StrCopy (ds.lpData, PChar (str)); SendMessage(ZcBbWindowHandle,WM_COPYDATA,handle,Cardinal(@ds)); // 已经连接过,直接发消息 freemem(ds.lpdata); BringWindowToTop(HWndProc); end;end;这个函数确实是每次传之前都调用的阿? 我觉得SendMessage(ZcBbWindowHandle,WM_COPYDATA,handle,Cardinal(@ds));中的ZcBbWindowHandle应该换成HWndProc吧 delphi7 variant变量操作excel出现的内存问题。 小弟想把DBGRID中的数据保存成文件,再导入 送分问题 怎样获取表的主键? 招兵买马 在Delphi中怎样用ModalMaker建模? sql server 运行之前用Delphi编写的程序出现乱码。 如何解决sqlserver的uniqueidentifier 类型的字段在delphi中取出来前后加上{}的问题? 在DELPHI的循环中如何实现再次输入数值(对文本框,变量等)? RzCheckTree相关问题 如何去掉一个字符串里去掉非字符?
procedure Tfrm_main.sendstr(var str:string);
var
HWndProc : HWnd;
ds: TCopyDataStruct; // WM_COPYDATA所需要的结构
begin
//showmessage(str);
HWndProc :=0;
HWndProc := Winprocs.FindWindow(nil, 'kjbb');
if HWndProc <> 0 then
begin
if ZcBbWindowHandle = 0 then
begin
SendMessage(HWND_BROADCAST,ZcBbMessage,handle,0); // 进行广播
// 已经连接到用户程序
application.ProcessMessages;
end;
ds.cbData := Length (str) + 1;
GetMem (ds.lpData, ds.cbData ); //为传递的数据区分配内存
StrCopy (ds.lpData, PChar (str));
SendMessage(ZcBbWindowHandle,WM_COPYDATA,handle,Cardinal(@ds)); // 已经连接过,直接发消息
freemem(ds.lpdata);
BringWindowToTop(HWndProc);
end;
end;
这个函数确实是每次传之前都调用的阿?