![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
![]()
Здравствуйте.
Задача: нужно найти открытую программу Mozilla FireFox или Google Chrome, определить расположение ее на экране и размеры окна и вывести мое окно справа от нее (привязать к правому краю) (да не важно к какому). я ищу окно с помощью FindWindow по названию класса MozillaWindowClass для файрфокса и Chrome_WidgetWin_1 для хрома. Далее с помощью GetWindowRect получаю координаты и размеры окна. Так вот в windows XP все находится нормально, а в windows 7 проблемы с FireFox. Иногда находит все нормально, иногда находит окно с дикими координатами типа -2137,3857 или -32000,-32000, или размерами, несоответствующими те, что я вижу на экране, иногда вообще не находит. Не знаю что работает не правильно: FindWindow или GetWindowRect. То ли окно находится какое-то не то, то ли координаты его определяются неправильно. Что можно сделать? Код:
|
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Я бы на твоем месте еще сюда для теста прикрутил получение текста заголовка окна найденного. Чтоб посмотреть то ли окно программа находит.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
![]()
в заголовке пишется название вкладки (т.е. зависит от открытых сайтов) и естественно все время разное.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
В случае с мазиллой это браузер(загружаемые страницы) внутри другого браузера(функционал и вид самого браузера). Окно браузера так же XUL-документ (интерфейс описан на XML-подобном языке, функции на javascript), вот откройте эту ссылку в FireFox: chrome://browser/content/browser.xul так что хэндл ловить будите долго.
Вот сама мазила предлагает варианты: https://developer.mozilla.org/en-US/...Window_Handles лишь из самого браузера можно достоверно получить указатель на главное окно. Последний раз редактировалось Человек_Борща; 15.07.2015 в 14:04. |
![]() |
![]() |
![]() |
#5 | |||
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
![]() Цитата:
Цитата:
А что означает "привязать к краю"? А то что окно может быть на весь экран или его постоянно кто-то двигает это ничего? ![]() Цитата:
А отрицательное положение и должно быть у свёрнутых и невидимых окон. P.S. Кстати мою версию Хрома тоже не находит. Последний раз редактировалось ResourceSpace; 15.07.2015 в 14:40. Причина: P.S. |
|||
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
![]()
ну вообще то, что написано в проге, это мои попытки обойти неправильное нахождение окна. Это все мелочи и будет исправлено. главное что окно не находится правильно.
Ссылку на то, что предлагает сама мозилла изучу, спасибо. |
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
![]() Цитата:
0.jpg Способ может и не самый верный, но шансы подростут ![]() Для разворота окна давно в сети нашёл такой способ Код:
|
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
![]()
Опоздал чуть...
У ОгнеЛиса бывает не ' Mozilla Firefox', а просто ' Firefox'. Код:
Последний раз редактировалось ResourceSpace; 15.07.2015 в 15:22. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 13.05.2007
Сообщений: 60
|
![]()
Попробовал код eoln и код ResourceSpace, оба естественно работают.
В общем я понял: смысл в том, чтобы искать еще и по названию окна. У меня есть какая-то моя старая прога, которая находит все окна на экране и выдает названия их классов и названия самих окон, так вот она мне почему-то не выдавала в названии окна файрфокса слово FireFox, только название вкладки... Поэтому я и не стал искать по названию окна. Присоединяюсь к вопросу: что именно делает функция ForceForegroundWindow? Выглядит она страшно ![]() Кстати, посмотрел ссылку, по которой сама мозилла там что-то предлагает. Попробовал первый код, где они там ищут детенышей, нифига не находит. Дальше я в коде не смог разобраться, так как толком не знаю синтаксиса Си. |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 30.06.2015
Сообщений: 353
|
![]()
Ваш код из первого сообщения ищет первое окно с указанным классом из списка. Окна создаваемые браузерами по всей видимости располагаются как попало. Так что ваш код в некоторых случаях бы работал. Проблема в том что этих окон раскидано множество, а что бы определить какой из них нужен требуются дополнительные проверки.
Одна из лучших (и бесплатных) программ - Spy++ идёт вроде со студией. Могу скинуть свою сейчас наверное уже старую копию. Окна которые были созданы ОгнеЛисом и Хромом (по одной копии, по три вкладки) меня мягко говоря удивили. Многие без Caption (ну эти-то ладно, понятно), но некоторые с такими названиями что я прифигел малость. Но с дописанным названием браузера только одно. Тоже вникал в ссылку, но таких детей Spy++ не находил. Цитата:
Последний раз редактировалось ResourceSpace; 17.07.2015 в 12:29. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Mozilla FireFox 4.0 Beta 8 | Adblock | Софт | 1 | 02.04.2011 11:26 |
Mozilla Firefox 4 | Bustle | Софт | 11 | 02.04.2011 10:23 |
Mozilla Firefox -=пароли=-!!! | 8Акр8 | Софт | 6 | 09.09.2009 18:12 |
Mozilla Firefox | zai_1gen | Софт | 29 | 13.02.2009 18:08 |