Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как передать данные другому приложению? 
:(
    Опции темы
Staraus
Дата 18.9.2009, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



Здравствуйте, у меня вопрос, как можно узнать значение переменной из одного приложения другому приложению?
Например, 1-ое приложение представляет собою часы, а 2-ая программа, которая показывает время. По запросу 2-ого приложения как можно провести синхронизацию времени с 1-ым приложением?
PM MAIL   Вверх
bems
Дата 18.9.2009, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Если для конкретно этого примера, то можно отправить сообщение, в WParam передать одну половину времени, в LParam - другоую. Для более сложных случаев есть много способов: memory-mapped files, mailslots, named/unnamed pipes и тд


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Staraus
Дата 19.9.2009, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 4.12.2008

Репутация: нет
Всего: нет



А можно поконкретней для этого примера разобрать поподробнее? Или дать ссылку на лит-ру,  а то я немного не понимаю))
PM MAIL   Вверх
bems
Дата 19.9.2009, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 18
Всего: 88



Код

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 это переменная которая проинициализирована вточности(!) той же строкой что и одноименная переменная из передающей проги


--------------------
Обижено школьников: 8
PM MAIL   Вверх
CodeMonkey
Дата 19.9.2009, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 29
Всего: 89





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.