在制作一個小程序的過程中,遇到程序間通訊的問題,而且兩個程序分別是用pb跟delphi開發的,查閱網上資料,根據程序對于響應時間的要求,我選擇了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') //注冊系統消息,返回系統唯一消息號
  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');//返回系統唯一消息號,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;
新聞熱點
疑難解答