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?