Einzelnen Beitrag anzeigen

Benutzerbild von cheatzs
cheatzs

Registriert seit: 31. Aug 2003
Ort: Altenburg
81 Beiträge
 
#6

Re: WindowMessage COPYDATA ohne Window empfangen

  Alt 27. Mär 2004, 13:59
Also so wie ich das aus der Funktion lese bekommt die ihr Handle auch nur durch das Erstellen eines unsichtbaren Fensters.
Deshalb hab ich es jetzt mal so probiert: (nach Luckie's Tutorial)

Delphi-Quellcode:
function WndProc(wnd: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM):LRESULT; stdcall;
begin
  Result := 0;
  case uMsg of
    WM_CREATE:
      startcalculating;
    WM_COPYDATA:
      ShowMessage(String(ShortString(PCopyDataStruct(lp)^.lpData^)));
    WM_DESTROY:
      PostQuitMessage(0);
  else
    Result := DefWindowProc(wnd,uMsg,wp,lp);
  end;
end;

begin
  wc.hInstance := hInstance;
  RegisterClassEx(wc);
  CreateWindowEx(0, ClassName, AppName, WS_POPUP, 0, 0, 0, 0, 0, 0, hInstance, nil);
  while(GetMessage(msg,0,0,0)) do
  begin
    TranslateMessage(msg);
    DispatchMessage(msg);
  end;
  ExitCode := msg.wParam;
end.
Das Problem ist er empfängt jetzt WM_COPYDATA nur 1 mal und zeigt die Nachricht in nem MessageDialog an. Dann kann ich es so oft senden wie ich will, es passiert nix mehr.

Hab ich irgendwas vergessen?
Thomas Low
THX und viel Spaß beim Coden
Cheatzs
  Mit Zitat antworten Zitat