Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.12;
Скачать: CL | DM;

Вниз

Как передать переменные из программы в программу   Найти похожие ветки 

 
bobtubob ©   (2003-12-01 09:20) [0]

Как передать переменные из закрываемой програмы в программу которая запускала закрываемую программу

Короче из ЕХЕ запустили программу там чтото нахомутали и закрывают надо передать переменные в родительскую програму

Есть мысль сбрасывать их в буфер обмена но как инициировать событие в родительской програме????


 
Юрий Зотов ©   (2003-12-01 09:29) [1]

1. WM_COPYDATA
2. CreateFileMapping + MapViewOfFile


 
bobtubob ©   (2003-12-01 09:44) [2]

Большое спасибо а поподробнее можна


 
Юрий Зотов ©   (2003-12-01 09:51) [3]

Можно. Но давайте договоримся - сначала Вы смотрите справку по WinAPI (что конкретно смотреть - сказано выше), а потом, если что-то осталось неясным, задаете конкретные вопросы. Потому что просто пересказывать здесь справку совершенно незачем.


 
bobtubob ©   (2003-12-01 09:58) [4]

Справку смотрел.
По какому событию активизировать материнскую программу
Для анализа мапфайла


 
Романов Р.В. ©   (2003-12-01 10:00) [5]

В параметрах командной строки можно передать. Если переменных не много.


 
TUser ©   (2003-12-01 10:26) [6]


> В параметрах командной строки можно передать.

То есть вызывать родительскую прогу. А если ее не надо запускать дважды, то придется научиться ее прибивать. Тогда - см [3] "сначала Вы смотрите справку по WinAPI".


 
frost ©   (2003-12-01 10:27) [7]

Лучше обмениватся пользовательскими сообщениями WM_USER


 
Юрий Зотов ©   (2003-12-01 10:36) [8]

> bobtubob © (01.12.03 09:58) [4]
> По какому событию активизировать материнскую программу
> Для анализа мапфайла

Например, любым сообщением. Но можно передавать данные и в самом сообщении WM_COPYDATA, не используя мап-файл в явном виде.

> frost © (01.12.03 10:27) [7]

ЧЕМ лучше?


 
REA ©   (2003-12-01 10:37) [9]

IPC: pipes, DDE, mailslots, sokets, COM...


 
bobtubob ©   (2003-12-01 13:44) [10]

А теперь для ТЕХ КТО ОЧЕНЬ УМНЫЙ И КОМУ БЫЛО СЛОЖНО МЕ РОЗЖЕВАТЬ

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
Procedure WMGetSysCommand(var Message : TMessage) ; message WM_COPYDATA;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
Procedure TForm1.WMGetSysCommand(var Message : TMessage) ;
begin
button1.Caption:=inttostr(Message.wParam);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SendMessage( form1.Handle, WM_COPYDATA,strtoint(edit1.text),1);
end;

end.

Где form1.Handle код получателя его можно передать при запуске
Первая процедура естествено находиться на материнской форме


 
Юрий Зотов ©   (2003-12-01 13:53) [11]

> bobtubob © (01.12.03 13:44) [10]

Странно. Складывается ощущение, что Вы остались недовольны. Разве здесь кто-то обязан Вам что-то разжевывать?

Способ решения Вам дали. Где смотреть и что смотреть - сказали. Что еще было нужно? Перевести справку? Написать за Вас элементарный код? Еще что-то?

Странно. Знаете, некоторые в таких случаях говорят "спасибо".


 
bobtubob ©   (2003-12-01 14:04) [12]

bobtubob © (01.12.03 09:44) [2]
Большое спасибо а поподробнее можна


 
Юрий Зотов ©   (2003-12-01 14:22) [13]

> bobtubob © (01.12.03 14:04) [12]

См. [3].
Что не так?


 
frost ©   (2003-12-01 14:40) [14]

Для Юрий Зотов >
Лучше или нет возможно я погаречился но пользоватся буфером для передачи данных не стал бы, не надежное место хранения :)


 
Юрий Зотов ©   (2003-12-01 14:57) [15]

> frost © (01.12.03 14:40) [14]

Конечно, ненадежное. Но при чем тут WM_COPYDATA?

Как раз WM_COPYDATA лучше, чем WM_USER - потому что позволяет передавать данные ЛЮБОГО размера.

> bobtubob © (01.12.03 13:44) [10]

Кстати, WM_COPYDATA Вы использовали неверно. Смотрите справку внимательнее.



Страницы: 1 вся ветка

Текущий архив: 2003.12.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
1-36678
iWorm
2003-12-03 02:42
2003.12.12
Задержка


6-36778
Fredericco
2003-10-15 19:10
2003.12.12
Кушается память при отправке большой порции данных.


1-36639
SDW_syscoder
2003-12-01 09:56
2003.12.12
Преобразование HEX-кода в ASCII


3-36528
KDS
2003-11-21 12:41
2003.12.12
Ответ на постоянный вопрос: DBF без BDE


1-36647
Вадим
2003-12-03 02:28
2003.12.12
Объеденить несколько форм с настройками в одну