使用 ServerSocket 和 ClientSocket 进行连接,发送字符串即可。或者使用 NMUDP 控件发送也很好。这是在远程或本地机都可以的方法。要是本地机,直接使用共享内存的方法,看看CreateSharedMemory 函数的说明吧。
解决方案 »
- 菜鸟求救!请问各位大虾~分享到:
- Delphi2007的IntraWeb技术如何读写UserSession
- ADO怎麼有這個問題!大家進來看看,謝謝!
- 请问一个ADOQuery问题?见者有分!
- 难道就没有DLL高手了吗??? 奇怪......(分可加呀!!!就算穷家当产)
- CSDN的版主進來,請封殺這個搗蛋家伙的ID...
- 如何SQL结果返回到LABEL里面
- daehappy进来取分,感谢给分!
- 高分求解关于DBGrid的指定行的颜色设置问题!!!
- 在dbgrid中如何让回车键起作用(如回车后到下一个cell,本行结束后再回车就等于添加记录)
- 好难得问题!
- Could not create output file*.*dcu是什么错误
你可以sendmessage
begin
sendmessage(findwindowEx(findwindow('tform1','form1'),0,'tmemo1','memo1'),
wm_settext,0,'hello,World!');
end;
wm_settext,0,integer(pchar('helloWorld!')));
用上面的代码无法实现,大虾请赐教!
2。postmessage(handle,WM_USER(自定义),0,0)另一个程序收到消息后再去都这块内存。再窗口中添加过程,
procedure RecvMsg(Msg:TMessage);message WM_USER;再这个过程中去查询那个内存的值
procedure TfrmSendMsg.Button1Click(Sender: TObject);
var
Win:HWND;
Post:Pointer;
pStr:PShortString;
Str:String;
begin
Str:=Edit1.Text;
MapHandle:=CreateFileMapping(DWord(-1),nil,PAGE_READWRITE,0,250,'summer');
if (MapHandle>0) then
begin
Post:=MapViewOfFile(MapHandle,FILE_MAP_WRITE,0,0,0);
pStr:=Post;
pStr^:=Str; //写共享内存
end;
Win:=FindWindow('TfrmRecvMsg',nil);
If Win>0 then
Begin
PostMessage(Win,WM_USER+100,0,0); //发消息给接收程序的主窗口...
Edit1.SetFocus;
Label2.Caption:='发送完成!';
end
Else
Begin
Label2.Caption:='接收器没有运行!';
end;
end;这是接收部分:
主窗口包含一个Memo1.unit RecvMsg;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TfrmRecvMsg = class(TForm)
Memo1: TMemo;
Label1: TLabel;
private
procedure GetMsg(var Msg: TMessage);Message WM_USER+100; //在这里增加接收的过程
{ Private declarations }
public
{ Public declarations }
end;var
frmRecvMsg: TfrmRecvMsg;implementation{$R *.DFM}{ TfrmRecvMsg }procedure TfrmRecvMsg.GetMsg(var Msg: TMessage);
var
MapHandle:THandle;
pStr:Pointer;
Str:String;
begin
MapHandle:=CreateFileMapping(DWord(-1),nil,PAGE_READWRITE,0,255,'summer');
if (MapHandle>0) then
begin
pStr:=MapViewOfFile(MapHandle,FILE_MAP_READ,0,0,10); //得到共享内存的指针
Memo1.Lines.Add('收到一条消息!!');
Memo1.Lines.Add(Pchar(pStr));
end;
CloseHandle(MapHandle);
end;end.