Здравствуйте все! Можно ли из одного процесса установить текст в editbox'e, принадлежащего другому процессу, т.е. сделать так, чтобы данные отображались ( == попали в адресное пространство процесса )? Или это невозможно?
Я вот не телепат, говори с каой целью и опиши подробно, а то это можно понять двояко, можно просто посоветовать sendmessage.
сажаешь хук на WM_GETMESSAGE и когда длл попадёт на тот процесс который надо (если ты определяешь нужный процесс по имени файла то юзай GetCommandLine в дллке для определения имени файла в который загрузилась длл, или если по заголовку окна GetWindowText(GetActiveWindow(),.......)), а потом перечисляешь CHILD окна в ентом процессе: сначала GetActiveWindow, потом bWnd = GetWindow(tWnd, GW_CHILD) Do //тут берёшь класс или имя окна(эдит бокса) bWnd = GetWindow(bWnd, GW_HWNDNEXT) Loop вот и всё
в эдитбокс писать можно. через Код (Text): invoke SendMessage,[hWnd],WM_SETTEXT,0,txtbuff точно. hWnd можно узнать через FindWindowEx/GetDlgItem
вот кусок кода, который применяется для вызова контекстной справки из мсдн: пишет прямо dexplore-ру в комбобокс панели "Index". без хуков и ремоут процессов _568691156__solver.zip
Потому, что описание не читал: The SetWindowText function changes the text of the specified window's title bar (if it has one). If the specified window is a control, the text of the control is changed. However, SetWindowText cannot change the text of a control in another application.