Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.013 c
14-36815
viktor_mixalich
2003-11-19 22:47
2003.12.12
Возможна ли сеть 100/10 по 1й паре провода??


1-36640
Viper-Omsk
2003-11-22 17:51
2003.12.12
Перемещение файла


4-36883
Ascan_
2003-10-21 17:36
2003.12.12
Пункт меню Help справо, а не в одном ряду с остальными


1-36656
Agent13
2003-11-30 19:27
2003.12.12
Регистрация почтового клиента


1-36610
Valday
2003-11-30 21:54
2003.12.12
Сохранение приложения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский