|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.02.2013, 12:02 | #1 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
Изменение окна в другом процессе
всем привет
Не могу разобраться, какие использовать функции для того, что бы можно было из одного процесса считать информацию из окна в другом процессе. И какие еще есть функции по изменению окон, которые в другом процессе.
мой сайт http://wanes101.16mb.com/myblog
|
14.02.2013, 12:28 | #2 |
Форумчанин
Регистрация: 22.05.2012
Сообщений: 352
|
EnumWindows() возвратит хандлы всех топовых окон. Берете нужный хендл и мучаете окошко..
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx |
14.02.2013, 13:02 | #3 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
Порылся у вас на форме, нашел след полезные функции, смотрите может кому тоже будет нужно:
GetForegroundWindow - получение хендла окна с которым работает user http://vsokovikov.narod.ru/New_MSDN_...oundwindow.htm GetWindowThreadProcessId - получение хендла потока окна http://vsokovikov.narod.ru/New_MSDN_...dprocessid.htm GetGUIThreadInfo - получение информации об активном окне http://vsokovikov.narod.ru/New_MSDN_...threadinfo.htm
мой сайт http://wanes101.16mb.com/myblog
|
14.02.2013, 19:02 | #4 | |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
Цитата:
|
|
20.02.2013, 12:56 | #5 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
А как быть с текстом.
Ведь текст передается через указатель, а сами данные не передаются и следовательно, в контексте другого потока либо процесса ссылка не работает, ибо разный контекст и разные физические адреса. Пока писал вопрос мне пришла мысль, что в таком случае лучше передавать через буфер обмена с помощью сообщений: на подобии WM_COPY. Кому интересно сами погуглите. Раз вопрос состоялся, то может кто-то и по другому бы сделал?
мой сайт http://wanes101.16mb.com/myblog
|
20.02.2013, 13:03 | #6 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
В документации вроде прямым текстом написано как...
Ref: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx |
20.02.2013, 13:40 | #7 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
Там сказано, что setwindowtext и getwindowtext не может получить или изменить текст окна в другом процессе, может я, что не понял на английском?
И говорится, что нужно отправить сообщение, но этот вариант у меня не прокатил. Может это связано с тем, что я посылаю сообщение из глобального хука?
мой сайт http://wanes101.16mb.com/myblog
|
20.02.2013, 14:17 | #8 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
И через буфер обмена не работает. Почему то если в глобальном хуке используется SendMessage, и сообщение адресовано окну из другого процесса, то хук вообще перестает работать, даже в окне своего процесса.
мой сайт http://wanes101.16mb.com/myblog
|
20.02.2013, 15:56 | #9 |
Форумчанин
Регистрация: 04.06.2010
Сообщений: 212
|
К стати я заметил ешё кое-что это при посылки сообщений из глобального хука и в случае если хук срабатывает из процесса другого окна (не родной процесс), то хук перестает работать. Тут назрел вопрос по другой теме. вот переход на этот вопрос http://www.programmersforum.ru/showthread.php?t=228382
мой сайт http://wanes101.16mb.com/myblog
Последний раз редактировалось wanes101; 20.02.2013 в 16:02. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Изменение сообщения notifyicon в другом классе | Красноглаз | C# (си шарп) | 2 | 29.02.2012 19:18 |
Изменение параметров JFrame в процессе выполнения программы | X@OC | Общие вопросы по Java, Java SE, Kotlin | 2 | 15.08.2011 13:47 |
Изменение PATH не влияет на поиск DLL в Vista в дочернем процессе | GAAjr | Win Api | 6 | 07.02.2011 12:30 |
Можно ли подсчитать FPS в другом процессе? | Minimus | Win Api | 7 | 26.08.2008 02:08 |
Изменение SysListView32 в другом приложении | Legos | Общие вопросы Delphi | 1 | 16.10.2007 02:29 |