#0
by vde69
отправляю: --------------------------------------------------- var MemHnd : HWND; AText: PChar; begin .... .... .... AText := 'Vasi'; SendMessage(HWND_BROADCAST, WM_OURMESSAGE, Length(AText) * SizeOf(Char), LParam(@AText)); sleep; .... .... ---------------------------------------------- принимаю: ----------------------------------------------- procedure TSDIAppForm.DefaultHandler(var Message); var FilenameForOpening: string; s: string; begin with TMessage(Message) do begin if (Msg = WM_OURMESSAGE) then begin SetLength(FilenameForOpening, WParam div SizeOf(Char)); p := Ptr(LParam); Move(PChar(p^), PChar(FilenameForOpening)^, WParam); s := FilenameForOpening; // вот тут "#0#0#0#0" ????? s := s + ' '; end .... .... .... initialization WM_OURMESSAGE := RegisterWindowMessage('Add_1c+_Server_block'); ------------------------------------------------- туплю уже давно, все примеры из инета перепробовал, нифига не переносит... может дело в типе мессаге? может пользовательские так не работают?
#5
by H A D G E H O G s
LParam(@AText) - адрес (числом, например $FC01FC01) в 1-ом приложении p := Ptr(LParam); - адрес (числом, например $FC01FC01) во втором приложении
#12
by H A D G E H O G s
Да вы программист (типа - ответ есть, он верен, но абсолютно не понятен). :-)
#15
by vde69
я только для своего собственого стартАпа, сервер будет создавать определенный файл в каталоге с базой и держать на нем блокировку, а стартап не будет давать запустить если такая ситуевина
#20
by H A D G E H O G s
Ага. А еще можно UDP/TCP заюзать. Нафиг этот изврат? MS дала инструмент WM_COPYDATA, так что его не пользовать то?
#25
by vde69
да нету тут секретов, просто есть некоторые споры, что лезть в процессы 1с нельзя (и тот же 1с++ попадает под эти заморочки), то я не юзаю ничего, что можно расценить как декомпеляция, внедрение кода и т.д.
#28
by Torquader
На самом деле можно использовать ClipBoard или просто глобальную память. hGlobal=GlobalAlloc(GPTR,Размер); Pointer=GlobalLock(hGlobal); CopyMemory(Pointer,НашУказатель,Размер); GlobalUnLock(Pointer); SendMessage(ДругоеПриложение,WM_USER,Размер,(LPARAM)hGlobal); В другом приложении: Pointer=GlobalLock(lParam); CopyMemory(НовоеМесто,Pointer,wParam); GlobalUnLock(Pointer); GlobalFree(lParam); Где-то так.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- ТЗ. Удаление строки сдвигает строки?
- поиск строки между От и До в выборке запроса
- для строки области таб дока с автовысотой не считается высота строки
- как из строки убрать символ перевода строки?
- Передача Таблицы Значений в Delphi
- Динамический список - выделенные строки - суммирование содержимого строки..
- Delphi class abstract (версия Delphi XE7)
- РИБ. Передача товаров между складами и организациями одним документом
- Передача товаров операция: передача товаров/материалов переработчику цена,сумма
- Таблица Значений отбор по индексу, номеру строки, как найти строки 1-100
В этой группе 1С
- Получить дату последнего поступления
- ЗУП. Семейное положение физ. лиц. - является ли значимым в каком - нибудь регламенте?
- И снова сообщение всем активным пользователям ...
- ЦветФона в таблице
- СКД: Как передать таблицу значений как параметр в СКД?
- ФС.УдалитьКаталог(Темп)
- В толстом клиенте нет вывода на печать табличного документа в 8.2.8.256
- Поиск по наименованию только среди групп справочника
- Фоновый рисунок в макете
- Добавить обработчик
- Разархивировать RAR архив
- Универсальный отчет по регисрам для 8-ки
- ТСД как тонкий клиент
- Как перебрать все метаданные в конфигурации?
- Зик Больничный прошлого периода
- Закрепление первых колонок в поле табличного документа
- 64 битный сервер, а клиенты?
- Проблема с Kyocera FS-1116MFP и Вистой
- Как программно отменить проведение документа?
- как при вводе пароля методом ВвестиСтроку() заменить символы на звездочки