| Код | procedure SendDateTime(dt: TDateTime); var DestWnd: HWND; begin DestWnd := GetDestWnd; PostMessage(DestWnd, DateTimeMessage, Integer(LARGE_INTEGER(dt).LowPart), LARGE_INTEGER(dt).HighPart); end;
|
Это процедура отправки. Тут предполагается что GetDestWnd это функция, которая возвращает хендл окна которому отправить. Её реализация зависит от того, как ты собираешся узнавать, а кому собственно отправлять время. Например можно искать по имени класса (FindWindow)
DateTimeMessage это переменная типа cardinal, которая проинициализирована как-то так
| Код | DateTimeMessage := RegisterWindowMessage('{4386904C-451C-4EAB-BB3A-4FC46BE78EB9}')
|
В принимающей проге ты перекрываешь процедуру окна| Код | protected procedure WndProc(var Message: TMessage); override;
|
и в реализации пишеш
| Код | procedure TForm1.WndProc(var Message: TMessage); var dt: TDateTime; begin if Message.Msg = DateTimeMessage then begin Integer(LARGE_INTEGER(dt).LowPart) := Message.WParam; LARGE_INTEGER(dt).HighPart := Message.LParam; HandleDateTimeMessage(dt); end else inherited; end;
|
Тут HandleDateTimeMessage это процедура, которая будет делать с полученым временем то что тебе нужно, а DateTimeMessage это переменная которая проинициализирована вточности(!) той же строкой что и одноименная переменная из передающей проги |