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

Вниз

Контекстное меню Проводника и передача данных   Найти похожие ветки 

 
MikeZ   (2006-05-14 13:25) [0]

Добрый день.

Есть желание вставить свой пункт в контекстное меню. Вставить - вставил (contmenu.dpr в демках). Но возник косяк при передаче даннх: если программа запущена, то данные передаем по WM_COPYDATA и нет проблем. Но если НЕ запущена, то надо ее (программу) запустить и передать строку.  COPYDATA не подходит (некуда пересылать - программа может не быть еще запущена или еще не готова к приему).

Поэтому надо строку (любой длины) поместить в память и передать как параметр адрес памяти (другие варианты типа сохранить в файл и передать имя файла не рассматриваем).

Тут и косяк.
Функции (взял с этого же сайта)
Function StrToMem(Const inStr: String): Integer;
Var
 F, S                        : Integer;
 P                           : PChar;
Begin
 S := Length(inStr);
 GetMem(P, S + 1);
 For F := 0 To S - 1 Do
   P[F] := inStr[F + 1];
 P[S] := #0;
 Result := Integer(P);
End;

Function MemToStr(Const inAddr: Integer): String;
Var
 P                           : PChar;
Begin
 Try
   P := PChar(inAddr);
   Result := P;
 Finally
   If Assigned(P) Then
     Begin
       Freemem(P);
       P := Nil;
     End;
 End;
End;

работают в пределах 1-го приложения.

Хочу попросить помощи в плане переделки их для передачи в другое приложение (даже если первое будет закрыто)

Заранее спасибо!


 
MikeZ   (2006-05-14 20:41) [1]

Опечатка:
"для передачи данных в другое приложение (даже если первое будет закрыто)
:)


 
Slym ©   (2006-05-15 06:31) [2]

Создай COM объект и не парься система сама запустит если не запущено и сообщений не надо



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

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

Наверх




Память: 0.47 MB
Время: 0.057 c
1-1153979909
Calibr
2006-07-27 09:58
2006.09.10
Как определить запускающую программу по расширению


2-1155879537
Начинающий_1
2006-08-18 09:38
2006.09.10
Универсальное объявление типа переменной.


15-1155631422
Александр Иванов
2006-08-15 12:43
2006.09.10
Мартин Файлер "Рефакторинг"


2-1155871671
apic
2006-08-18 07:27
2006.09.10
Подключение к инету...


2-1156339913
zdm
2006-08-23 17:31
2006.09.10
OnKeyDown