Mam dwie aplikacje, które muszę komunikować poprzez PostMessage (SendMessage jest wykluczone jako muszę mieć drugiego wniosku stanie wyjście do programu Excel podczas gdy miano.Delphi: Jak odebrać niestandardową wiadomość systemu Windows z PostMessage?
Dotychczas Zastosowanie 1 sprawia, że wezwanie do Zastosowanie 2, upewniając się, że jest ona otwarta, a gdy to jest, App 1 ustawiony jest wyłączone.
gdy użytkownik jest wykończony aplikacja 2 muszę wysłać wiadomość powrotem do Applciation 1 do opuść go, aby odblokować.
Zarejestrowałem tego samego systemu Windows wiadomość w każdej aplikacji przy użyciu:
const
MyMessage = 'My-Message';
var
MyMessageID: cardinal;
procedure TMF.FormCreate(Sender: TObject);
begin
MyMessageID := RegisterWindowMessage(MyMessage);
end;
I w zgłoszeniu 2 można wysłać wiadomość do aplikacji za pomocą 1:
targetHandle := FindWindow(Pchar('TMF'), Pchar('Send Test'));
...
if PostMessage(targetHandle, (MyMessageID), 0, 0) then
...
Co ja nie rozumiem jest sposób deklarowania obsługi wiadomości w aplikacji 1.
Jeśli korzystałem ze standardowej wiadomości systemu Windows, takiej jak WM_COPYDATA, zadeklarowałem procedurę
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
Ale to spada, ponieważ nie mogę zadeklarować odpowiednio wcześnie MyMessageID
.
Może dlatego, że jest piątkowe popołudnie, ale czego mi brakuje?