Автор Тема: Вопрос про фокусы  (Прочитано 1283 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн IL

  • Ветеран
  • *****
  • Сообщений: 6299
  • Карма: 428
  • Пол: Мужской
  • Балаган и море пафоса
    • Просмотр профиля
Вопрос про фокусы
« : 04.12.06, 18:15:38 »
Обращаюсь к общественному разуму c проблемкой, которая уже надоела.

Есть WinXP. Запускаю какую-л программу, запуск которой длиться сравнительно долго. Скажем SQLNavigator, он коннектится порядка 10-30 секунд, оставаясь в это время неактивным и неподавая никаких признаков жизни.
В это время щелкаю в трее по аське и общаюсь в тамошнем окне. Все хорошо, но как только SQLNavigator наконец запускается он перехватывает фокус у асечного диалогового окна и вообще перекрывает его на рабочем столе. В лучшие моменты, половина фразы вместо аськи улетает в навигатор. Как отучить Win (или программы) от такого злобного перехвата фокуса ввода?


Оффлайн anymousN

  • Постоялец
  • ***
  • Сообщений: 159
  • Карма: 18
    • Просмотр профиля
Re:Вопрос про фокусы
« Ответ #1 : 05.12.06, 12:19:26 »
никак... дизассемблером с hex-редактором тока...

хотя... можно попробовать разные проги, которые позволяют работать с несколькими раб. столами - на одном запускаешь навигатор, на другом - асю...

некоторое время назад сам пытался решить такую же проблему... но было лень - и я взял какую-то наипримитивнейшую прогу с диска пятилетней давности... в результате оконо "наверх" не вылезало, однако фокус уходил... просто "вникуда"
возможно есть другие, и они эту проблему могут решить
Поздравляю Вас с НГ!  [[hat2]]

Оффлайн IL

  • Ветеран
  • *****
  • Сообщений: 6299
  • Карма: 428
  • Пол: Мужской
  • Балаган и море пафоса
    • Просмотр профиля
Re:Вопрос про фокусы
« Ответ #2 : 05.12.06, 13:01:10 »
Наконец нашел:

Помимо множества достоинств, многозадачность современных операционных систем ? в частности, Windows ? иногда оборачивается некоторыми неудобствами для пользователя. Так, если одно из выполняющихся в фоновом режиме приложений вдруг потребует ввода данных, оно может бесцеремонно перехватить фокус у активной программы или надоедливо напоминать о себе миганием на панели задач, тем самым отвлекая пользователя от работы. Впрочем, поведением неактивных окон при востребовании ими фокуса можно легко управлять с помощью изменения некоторых параметров в системном реестре.

Откройте редактор реестра (для этого воспользуйтесь меню Пуск| Выполнить или комбинацией клавиш []+[R], затем введите regedit) и перейдите к разделу HKEY_

CURRENT_USER\Control Panel\ Desktop и создайте или измените текущие значения двух DWORD-параметров, отвечающих за поведение неактивных окон ? ForegroundLockTimeout и ForegroundFlashCount. Первый выражает паузу в миллисекундах, которую Windows выжидает, прежде чем фоновое окно сможет перехватить фокус у активного приложения. Соответственно, если параметр ForegroundLockTimeout примет значение ?0?, то неактивное окно будет мгновенно получать фокус при первом же требовании.

Второй параметр, ForegroundFlashCount, отвечает за то, как неактивное окно сигнализирует пользователю с помощью своей кнопки на панели задач. Если установить его в ?0?, то кнопка будет мигать до тех пор, пока пользователь не удостоит своим вниманием соответствующее приложение. Любое другое значение параметра фактически определяет точное число ?сигналов? кнопки на панели задач.

Оффлайн anymousN

  • Постоялец
  • ***
  • Сообщений: 159
  • Карма: 18
    • Просмотр профиля
Re:Вопрос про фокусы
« Ответ #3 : 05.12.06, 13:03:30 »
может и не сработать...

напиши, если получилось
Поздравляю Вас с НГ!  [[hat2]]

Оффлайн IL

  • Ветеран
  • *****
  • Сообщений: 6299
  • Карма: 428
  • Пол: Мужской
  • Балаган и море пафоса
    • Просмотр профиля
Re:Вопрос про фокусы
« Ответ #4 : 05.12.06, 13:17:38 »
Вроде бы получилось. Перекрывает только чилд-окна (например, цбилдеровский редактор кода, главное окно не перекрывает).