Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2013, 12:02   #1
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию Изменение окна в другом процессе

всем привет
Не могу разобраться, какие использовать функции для того, что бы можно было из одного процесса считать информацию из окна в другом процессе.
И какие еще есть функции по изменению окон, которые в другом процессе.
wanes101 вне форума Ответить с цитированием
Старый 14.02.2013, 12:28   #2
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

EnumWindows() возвратит хандлы всех топовых окон. Берете нужный хендл и мучаете окошко..
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
rlib вне форума Ответить с цитированием
Старый 14.02.2013, 13:02   #3
wanes101
Форумчанин
 
Регистрация: 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
wanes101 вне форума Ответить с цитированием
Старый 14.02.2013, 19:02   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
Порылся у вас на форме, нашел след полезные функции, смотрите может кому тоже будет нужно:
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
А что так мало "полезных" функций нашел? Если найдешь еще, пиши.
_Engine_ вне форума Ответить с цитированием
Старый 20.02.2013, 12:56   #5
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

А как быть с текстом.
Ведь текст передается через указатель, а сами данные не передаются и следовательно, в контексте другого потока либо процесса ссылка не работает, ибо разный контекст и разные физические адреса.
Пока писал вопрос мне пришла мысль, что в таком случае лучше передавать через буфер обмена с помощью сообщений: на подобии WM_COPY. Кому интересно сами погуглите.
Раз вопрос состоялся, то может кто-то и по другому бы сделал?
wanes101 вне форума Ответить с цитированием
Старый 20.02.2013, 13:03   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от wanes101 Посмотреть сообщение
Раз вопрос состоялся, то может кто-то и по другому бы сделал?
В документации вроде прямым текстом написано как...
Ref: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
waleri вне форума Ответить с цитированием
Старый 20.02.2013, 13:40   #7
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

Там сказано, что setwindowtext и getwindowtext не может получить или изменить текст окна в другом процессе, может я, что не понял на английском?
И говорится, что нужно отправить сообщение, но этот вариант у меня не прокатил. Может это связано с тем, что я посылаю сообщение из глобального хука?
wanes101 вне форума Ответить с цитированием
Старый 20.02.2013, 14:17   #8
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

И через буфер обмена не работает. Почему то если в глобальном хуке используется SendMessage, и сообщение адресовано окну из другого процесса, то хук вообще перестает работать, даже в окне своего процесса.
wanes101 вне форума Ответить с цитированием
Старый 20.02.2013, 15:56   #9
wanes101
Форумчанин
 
Регистрация: 04.06.2010
Сообщений: 212
По умолчанию

К стати я заметил ешё кое-что это при посылки сообщений из глобального хука и в случае если хук срабатывает из процесса другого окна (не родной процесс), то хук перестает работать. Тут назрел вопрос по другой теме. вот переход на этот вопрос http://www.programmersforum.ru/showthread.php?t=228382

Последний раз редактировалось wanes101; 20.02.2013 в 16:02.
wanes101 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение сообщения 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