Ho due applicazioni che ho bisogno di comunicare via PostMessage (SendMessage è escluso, come ho bisogno di avere la seconda applicazione in grado di output a Excel, pur essendo chiamato.Delphi: Come ricevere un messaggio di Windows personalizzato da PostMessage?
Finora Applicazione 1 effettua una chiamata a Applicazione 2, assicurandosi che sia aperta, e quando lo è, App 1 è impostato su disabilitato.
quando l'utente ha terminato con Applicazione 2 ho bisogno di inviare un messaggio torna al applciation 1 a a Lascialo per sbloccare.
ho registrato lo stesso messaggio di Windows in ogni applicazione utilizzando:
const
MyMessage = 'My-Message';
var
MyMessageID: cardinal;
procedure TMF.FormCreate(Sender: TObject);
begin
MyMessageID := RegisterWindowMessage(MyMessage);
end;
e in applicazione 2 posso pubblicare il messaggio a Application 1 utilizzando:
targetHandle := FindWindow(Pchar('TMF'), Pchar('Send Test'));
...
if PostMessage(targetHandle, (MyMessageID), 0, 0) then
...
Quello che non capisco è come dichiaro il gestore per il messaggio nell'applicazione 1.
Se si stesse utilizzando un messaggio standard di Windows, ad esempio WM_COPYDATA, avrei dichiarato una procedura
procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
Ma quello cade perché non posso dichiarare MyMessageID
abbastanza presto.
Forse è perché è venerdì pomeriggio, ma cosa mi manca?