![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.04.2009
Сообщений: 19
|
![]()
собственно отправляю своему приложению сообщение так:
Код:
Код:
Код:
Последний раз редактировалось fack00; 04.12.2010 в 23:02. |
![]() |
![]() |
![]() |
#2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Специально не поленился проверить:
Код:
Где-то ты накосячил в другом месте. Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 25.04.2009
Сообщений: 19
|
![]()
Stilet, создал новый проект и да, все работает (по вашему коду).
В моей же программе текст передается не самому себе, а другой копии программы.. ЗЫ paramstr(0)<>0 ошибочка) |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
дык естественно, вы в курсе про раздельное адресное пространство?
с этого и надо было начинать. используйте WM_COPYDATA Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.04.2009
Сообщений: 19
|
![]()
Пепел Феникса,
в курсе. только почему один текст передается, а другой нет? к примеру: пусть paramstr(0)='C:\123.exe' и s:='C:\123.exe'; так первое отправит, а второе нет.. я хочу вариант без буфера обмена.. |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а приложение одно и тоже?
![]() думаю да, просто совпал адрес константы.(а второе переменная и адрес не совпадет, да и не с чем) Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 25.04.2009
Сообщений: 19
|
![]()
Пепел Феникса, да. Налаживаю работу нескольких копий..)
про совпадение констант не понял.. Цитата:
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
текстовая константа(как и любая другая, но там хитрости бывают) хранится внутри процесса всегда, и внутри копий одного и того же процесса имеют одинаковый адрес, вспомните историю Ирония Любви или с легким паром. почти тоже самое.
а если переменная, а не константа(то что вы присвоили константу-строку переменной строке не считается, до тех пор пока переменная не изменена), а Paramstr всегда вернет переменную, то это получается, что приперлись в чужой дом, по определенному адресу(вы его передаете сами), ломитесь, и в итоге конечно остаетесь ни с чем(а то и с AV). надеюсь объяснил. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 25.04.2009
Сообщений: 19
|
![]()
Пепел Феникса,
если я правильно понял: это не текстовая константа, а числовая и т.к. Цитата:
Paramstr(0) - путь до exe копии программы и он может быть у каждой копии своей. (тип-строка) я же передаю эту строку, как текст, а не запускаю или что-то еще.. в заключение, все должно работать, как часы. Но в силу каких-то невомых мне сил - don`t work! |
|
![]() |
![]() |
![]() |
#10 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
приведения типов вспомните, и посмотрите что есть PChar.(это указатель)
в итоге вы передаете адрес строки. Цитата:
Цитата:
поэтому я и советую применить сообщение WM_COPYDATA, которое за нас копирует данные из П1 в П2.(почитайте про него, не мало написано) Цитата:
Цитата:
напомню что SendMessage принимает два Integer параметра, а не строки. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 05.12.2010 в 00:03. |
||||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
SendMessage | Damien4Damien | Общие вопросы Delphi | 3 | 29.09.2010 21:27 |
SendMessage | ASЯ | Помощь студентам | 0 | 20.05.2010 10:38 |
Сообщения чужому окну - SendMessage | Mufer | Win Api | 11 | 10.01.2010 23:48 |
Обработка сообщения отжатия левой кнопки мыши на компоненте TrackBar | CyberJohn | Общие вопросы Delphi | 5 | 08.02.2009 12:34 |
Не работает SendMessage | MaTBeu | Win Api | 6 | 01.10.2008 19:00 |