在制作一個小程序的過程中,遇到程序間通訊的問題,而且兩個程序分別是用pb跟delphi開發(fā)的,查閱網上資料,根據程序對于響應時間的要求,我選擇了postmessage函數來解決通訊問題,代碼如下
pb:
string ls_Classname,ls_WindowName
ulong ll_winhandle
uint li_result
setnull(ls_ClassName)
ls_WindowName ="Form1" //delphi程序窗口名稱
ll_winhandle = findwindow(ls_ClassName,ls_WindowName)
if ll_winhandle>0 then //撥通
li_result = RegisterWindowMessage('1111') //注冊系統(tǒng)消息,返回系統(tǒng)消息號
post(ll_winhandle,li_result,0,0)
messagebox("提示","知道")
else
messagebox("提示","沒有找到")
end if
============================
delphi:
聲明部分:
private
Msg: LongInt;
hWndC : THandle;
{ Private declarations }
protected
procedure WndProc(var Message: TMessage); override;
procedure TForm1.FormCreate(Sender: TObject);
begin
Msg := RegisterWindowMessage('1111');//返回系統(tǒng)消息號,1111為自定義消息內容
Self.BringToFront;
end;
procedure TForm1.WndProc(var Message: TMessage);
var
mypt:Tpoint;
s:string;
begin
if Message.msg = msg then begin
ShowMessage(inttostr(message.lparam) );
end ;
inherited;
end;
pb:
string ls_Classname,ls_WindowName
ulong ll_winhandle
uint li_result
setnull(ls_ClassName)
ls_WindowName ="Form1" //delphi程序窗口名稱
ll_winhandle = findwindow(ls_ClassName,ls_WindowName)
if ll_winhandle>0 then //撥通
li_result = RegisterWindowMessage('1111') //注冊系統(tǒng)消息,返回系統(tǒng)消息號
post(ll_winhandle,li_result,0,0)
messagebox("提示","知道")
else
messagebox("提示","沒有找到")
end if
============================
delphi:
聲明部分:
private
Msg: LongInt;
hWndC : THandle;
{ Private declarations }
protected
procedure WndProc(var Message: TMessage); override;
procedure TForm1.FormCreate(Sender: TObject);
begin
Msg := RegisterWindowMessage('1111');//返回系統(tǒng)消息號,1111為自定義消息內容
Self.BringToFront;
end;
procedure TForm1.WndProc(var Message: TMessage);
var
mypt:Tpoint;
s:string;
begin
if Message.msg = msg then begin
ShowMessage(inttostr(message.lparam) );
end ;
inherited;
end;

