Вниз
Скачать: CL | DM;

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

 
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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.026 c
14-1099604866
Knight
2004-11-05 00:47
2004.11.21
Подскажите с Access ом... плз


6-1095235552
SashkoSoft
2004-09-15 12:05
2004.11.21
Передача данных php-скрипту


14-1099051141
Knight
2004-10-29 15:59
2004.11.21
Опишите ваши впечатления от первого общения с VMware...


6-1095185263
-MS-
2004-09-14 22:07
2004.11.21
Delphi+CGI+ServerSocket


1-1100152104
Sidek
2004-11-11 08:48
2004.11.21
Навигация в ClientDataSet-е




   Наверх