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

Вниз

Обмен между приложениями.   Найти похожие ветки 

 
Lera   (2004-10-05 11:25) [0]

Уважаемые профи, такая проблема - запущено приложение созданное
в Delphi, например Application.exe. Из него вызывается другое,
например Application2.exe. Необходимо передать несколько
символьных параметров из Application.exe в Application2.exe.
Подскажите как это сделать.


 
xShadow ©   (2004-10-05 11:27) [1]

SendMessage - чем тебе не подходит?


 
Плохиш ©   (2004-10-05 11:30) [2]

Application2.exe param1 param2 param3 ...


 
XProger ©   (2004-10-05 22:45) [3]

А потом читай в Application2.exe:

for i := 1 to ParamCount do
if ParamStr(i) = "что-то там" then
 сделать то-то;

Причём в ParamStr(1) будет храниться полный путь к исполняемому файлу...


 
Ihor Osov'yak ©   (2004-10-05 23:32) [4]

2 [3] XProger ©   (05.10.04 22:45)

> Причём в ParamStr(1) будет храниться полный путь к исполняемому файлу...

в ParamStr(0), однако..

и  

for i := 1 to ParamCount do
if ParamStr(pred(i)) = "что-то там" then
сделать то-то;


 
Pashko   (2004-10-05 23:55) [5]

Хорошо, а как правильно организовать обмен строками между двумя уже работающими приложениями?
В документации нашёл сообщение WM_COPYDATA, если оно подходит, то как с его помощью правильно отправить напр. строку?


 
GanibalLector ©   (2004-10-05 23:59) [6]

2 Pashko  
Хорошо, а как правильно организовать обмен строками между двумя уже работающими приложениями?

procedure ReceiveMessage (var Msg: TMessage);
message WM_COPYDATA;
...
procedure TFormReceive.ReceiveMessage;
var
pcd: PCopyDataStruct;
begin
pcd := PCopyDataStruct(Msg.LParam);
Caption := PChar(pcd.lpData);
end;

отправитель:

procedure TFormXXX.Button1Click(Sender: TObject);
var
cd: TCopyDataStruct;
begin
cd.cbData := Length(Edit1.Text) + 1;
cd.lpData := PChar(Edit1.Text);
SendMessage(FindWindow("TFormReceive", nil), WM_COPYDATA, 0, LParam(@cd));
end;


 
Classic   (2004-10-09 23:45) [7]

А если создать в памяти некую область данных, затем изменяя в ней какие-то данные одной программой, информировать другую об этои изменении - мол, я там что-то изменила (записала), читай сама и усваивай :)
Как реализовать не знаю, но мастеров много, может подскажут...


 
CDF   (2004-10-10 00:03) [8]

Для разделения памяти можно попробовать использовать отображаемые файлы (функция CreateFileMapping). А для уведомления изменили/записали использовать сообщения...


 
Prov   (2004-10-10 08:03) [9]

Не можно, а только так и нужно.. Самый надежный вариант



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

Форум: "WinAPI";
Текущий архив: 2004.11.21;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
14-1099648659
Соловьев
2004-11-05 12:57
2004.11.21
Программа востановления данных


14-1099894188
тихий вовочка
2004-11-08 09:09
2004.11.21
как же нам не стыдно


8-1093273628
redlord
2004-08-23 19:07
2004.11.21
вывод текста не по прямой линии


1-1099642844
hh
2004-11-05 11:20
2004.11.21
Как объект привести в первоначальное состояние?


1-1099594290
Sanek1234
2004-11-04 21:51
2004.11.21
Выравнивание текста по ширине в TRichEdit.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский