Сейчас на форуме: tyns777 (+5 невидимых) |
eXeL@B —› Программирование —› Как мне из СВОЕЙ программы послать сообщение ДРУГОЙ программе |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 01 октября 2007 23:59 · Личное сообщение · #1 |
|
Создано: 13 октября 2007 08:56 · Личное сообщение · #2 |
|
Создано: 13 октября 2007 14:06 · Поправил: intro · Личное сообщение · #3 AVE а тут www.trichview.com/forums/ <-- не судьба поискать? официальный форум поддержки компонента. учись искать инфу сам. там точно есть ответ на вопрос про чтение данных. ищи. и ещё, кстати, вот: Veliant пишет: в общем по f2 считывает в квипе набранный текст и его транслит вбивает на его место...там тоже используется TRichViewEdit.....сорри что комментов нет...так для ради интереса пробывал делать=) посмотри как там происходит считывание данных |
|
Создано: 13 октября 2007 19:36 · Личное сообщение · #4 |
|
Создано: 13 октября 2007 22:07 · Личное сообщение · #5 |
|
Создано: 13 октября 2007 23:56 · Личное сообщение · #6 |
|
Создано: 14 октября 2007 00:03 · Поправил: Isaev · Личное сообщение · #7 |
|
Создано: 14 октября 2007 00:27 · Личное сообщение · #8 Подскажите что не верно, тип для nm правильно указал? Как считать данные в memo var h,EditWnd: HWND; nm : Integer; begin h := findwindow(nil, 'Form1'); EditWnd := FindWindowEx(h,0,'TRichViewEdit', nil); if EditWnd = 0 then exit; Memo1.Text := IntToStr(SendMessage(EditWnd,WM_GETTEXT,1024,LPARAM(@nm)));; end; |
|
Создано: 14 октября 2007 06:38 · Личное сообщение · #9 nm - это должен быть указатель на массив символов, куда положить данные, а у тебя это указатель на целую переменную. ппц, справку в MSDN читал? И куда проще было воспользоваться GetWindowText var
----- Security through obscurity is just an illusion |
|
Создано: 14 октября 2007 08:55 · Личное сообщение · #10 |
|
Создано: 14 октября 2007 14:40 · Личное сообщение · #11 |
|
Создано: 15 октября 2007 07:44 · Личное сообщение · #12 |
|
Создано: 15 октября 2007 23:50 · Личное сообщение · #13 |
|
Создано: 16 декабря 2007 16:42 · Поправил: SnikerS · Личное сообщение · #14 Да уж... Я то думал что форумы нужны чтоб делиться информацией и опытом... Ну да ладно. О великие гении!!! Помогите бедному, начинающему программисту в таком вопросе: LRESULT SendMessage(
Меня интересуют эти параметры: Msg, wParam, lParam Раскажите плиз по всем трем. Какой магией вы пользуетесь чтоб узнать что в эти параметры записывать чтоб считать данные с чужой проги. Пример: SendMessage(EditWnd,WM_GETTEXT,1024,LPARAM(@nm)); WM_GETTEXT - бывают же всякие разные месаги, в том числе и самописные. Как их-то узнать? 1024 - это вообще ставит в тупик... Всегда 0 использовал. LPARAM(@nm)-это понял почему, но мне кажется если Msg будет другой то обом... П.С.: Если вас воротит от тупости вопроса и не компетентности автора - плиз, воздержитесь от ответа |
|
Создано: 16 декабря 2007 17:52 · Личное сообщение · #15 |
|
Создано: 16 декабря 2007 21:10 · Личное сообщение · #16 Вот описание: function SendMessage(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint; Посылает сообщение оконной функции указанного окна. Возвpат из функции осуществляется только после обpаботки сообщения. Wnd: Окно, пpинимающее сообщение или $FFFF для посылки всем всплывающим окнам в системе. Msg: Тип сообщения. wParam: Дополнительная инфоpмация о сообщении. lParam: Дополнительная инфоpмация о сообщении. Возвpащаемое значение: Значение, возвpащенное пpинимающей оконной функцией. Я знаю тока такой способ |
|
Создано: 16 декабря 2007 21:15 · Личное сообщение · #17 |
|
Создано: 17 декабря 2007 00:30 · Поправил: SnikerS · Личное сообщение · #18 k2007 пишет: function SendMessage(Wnd: HWnd; Msg, wParam: Word; lParam: Longint): Longint; Спасибо конечно, но я и по англ. читать умею... То что я написал выше из MSDN по англ., то что ты написал - тоже самое только по русски. А вот если бы ты описал с примерами все значения этих параметров: wParam: Дополнительная инфоpмация о сообщении. lParam: -//-. Т.е. какие они бываю для каждого отдельного события(message). P.S.: На самом деле мне уже не нужен ответ на этот вопрос. Буду делать по другому - с гемором - через ReadProcessMemory, т.к. сколько я не искал, к сожалению, ничего не нашел для решения своего проблемы. |
|
Создано: 17 декабря 2007 14:13 · Личное сообщение · #19 |
|
Создано: 17 декабря 2007 15:07 · Поправил: Grom_ · Личное сообщение · #20 SnikerS попробую обьяснить если все расскрыть то получим -Послать мессагу - вызвать функцию системы! - Msg - тип int , по сути это просто КОД сообщения(функции), по нему разбор что те нуно от системы. - wParam и lParam - это дополнительные параметры через которые ты передаешь нужные(для мессаги/функции) данные , параметры эти DWORD следовательно , ты можешь туда впихнуть все что угодно , начиная от простого числа(тип) , заканчивая АДРЕСОМ массива или класса . Что туды пихать , это зависит от мессаги!!!!! (как она возмет данные и в качестве каких типов из wParam и lParam ), мессаги разные так же как и функции , не все же функции с одинаковыми параметрами. Для этого и сделали (как я думаю) универсально через DWORD. А по твоему случаю нуно разбираться, как у тя текст для выдергивания устроен, может он действительно тупо рисуется и т.п. , в каком обьекте(класс) текст отображается. З.Ы. Стандартные мессаги обрабатывают стандартные средства(обьекты) , или тех кто их поддерживает , а самопал может и не видеть твои мессаги |
|
Создано: 21 декабря 2007 01:55 · Личное сообщение · #21 Я пытаюсь что-нибудь придумать с клиентом покерного рума. Кое какие данные я беру с элементов которые находятся в окне. А кое что выдергиваю из памяти. Уже полностью управляю окном клиента из своей проги В основном всю инфу нашел на специализированных по программированию сайтах. Но и вам спасибо тоже. |
|
Создано: 21 декабря 2007 02:52 · Поправил: HiEndsoft · Личное сообщение · #22 |
|
Создано: 22 декабря 2007 15:27 · Личное сообщение · #23 AVE Короче, тут уже много чего написано было (мне аж всё читать лень), так что начнём, собственно, с вопроса. Послать сообщение из своей проги другой проге - это неправильное выражение, мы посылаем сообщение не проге, а окну, и нам в данном случае пофиг, какой проге/процессу/потоку оно принадлежит. Delphi - это тяжёлый случай, поэтому будем исходить из структуры окон в проге на делфях. Вначале найдём главное окно, на котором находятся все компоненты - выражаясь нормально, через FindWindowA определим хэндл окна, которое будет являться родительским для всех компонентов формы. В качестве параметров передаём только класс окна. Это канает, потому что класс формы уникален, но далее нам нужно будет работать со структурой дочерних элементов, к примеру, твой TRichViewEdit расположен на объекте класса TPanel,тогда через FindWindowExA и GetWindow ты дойдёшь до именно того объекта с классом TPanel, а потом опять вызовешь FindWindowExA + GetWindow, чтоб получить хэндл именно того TRichEdit, который тебе нужен, а далее посылай ему какие хочешь сообщения. Справка по API - в MSDN ----- Stuck to the plan, always think that we would stand up, never ran. |
<< . 1 . 2 . |
eXeL@B —› Программирование —› Как мне из СВОЕЙ программы послать сообщение ДРУГОЙ программе |