Главная страница
    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.036 c
3-1098197683
iat
2004-10-19 18:54
2004.11.21
Если спрятать колонку в DBGrid, то она исчезнет из отчета...


8-1093372758
miek
2004-08-24 22:39
2004.11.21
GLScene: техника массовых сцен


14-1099458845
080D:07BBh
2004-11-03 08:14
2004.11.21
Генератор XML


3-1098013171
Dobriy
2004-10-17 15:39
2004.11.21
транзакции в FIBPLUS


9-1088497561
Bizon's
2004-06-29 12:26
2004.11.21
Фоновый рисунок





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