關(guān)鍵詞:程序間相互通訊問(wèn)題的解決
在制作一個(gè)小程序的過(guò)程中,遇到程序間通訊的問(wèn)題,而且兩個(gè)程序分別是用pb跟delphi開(kāi)發(fā)的,查閱網(wǎng)上資料,根據(jù)程序?qū)τ陧憫?yīng)時(shí)間的要求,我選擇了postmessage函數(shù)來(lái)解決通訊問(wèn)題,代碼如下
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') //注冊(cè)系統(tǒng)消息,返回系統(tǒng)唯一消息號(hào)
post(ll_winhandle,li_result,0,0) messagebox("提示","知道") else messagebox("提示","沒(méi)有找到") 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)唯一消息號(hào),1111為自定義消息內(nèi)容 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;
|