Страница 1 из 2
Изменение размера окна TC при переключении юзеров (Win7x64)
Добавлено: Пн дек 09, 2013 19:37
greeneyes
Коллеги!
Купил новый комп, установил винду 7ку, 64х разрядную. Поставил любимый тотал. На компе 2 пользователя с разными учетками, с разными настройками тотала.
Проблема: когда делаешь блокировку компа (WIN+L) и входишь под другой учеткой, или даже под своей сразу, то тотал из "нормального состояния" (высота, ширина, начальная точка) превращается в "уменьшенный" (высота и ширина меньше, начальная точка сдвинута).
Описываю словами, т.к. не дает постить ссылки
PS. Доступ на папку и на файл wincmd.ini есть, конечно.
Как лечится: заходим под пользователем, закрываем тотал (ALT+F4), запускаем снова - нормальный вид.
Но каждый раз при смене учетки - такая вот проблема.
PS. Комп не выключается никогда (только иногда штатно перезагружается, раз в 2-4 недели).
Спасибо заранее.
Добавлено спустя 2 минуты:
http://yadi.sk/d/eqWRKoSCE3JZX - нормальный размер
http://yadi.sk/d/oCzx1abjE3JYS - уменьшенный размер
Добавлено: Пн дек 09, 2013 19:50
MVV
Может, надо сделать "Конфигурация - Сохранить позицию"?
Юзеров два, а конфиг где хранится? В папке программы или в профилях? Если в профилях, они вообще не могут друг другу мешать... А если в папке программы, то рекомендую вынести секции с расположением окон в конфиг в профиле.
Добавлено: Пн дек 09, 2013 19:58
greeneyes
Сохраняю позицию, конечно... Иначе бы при закрытии и открытии заново он бы вылазило в мелкой позиции.
А хранится штатно:
c:\Users\Иван\AppData\Roaming\GHISLER\wincmd.ini
Доступ на файл и папку есть.
Добавлено: Пн дек 09, 2013 23:22
CaptainFlint
greeneyes
Я бы предложил проверить поведение других программ, у которых размер окна был бы предварительно выставлен таким же, как у Тотала на первом скриншоте.
Имеются основания предположить, что виновата здесь сама винда. И лечения, увы, обнаружить мне пока не удалось. У неё очень странные представления о текущем разрешении экрана, и во многих ситуациях это разрешение уменьшается, а затем восстанавливается — виртуально или реально, но невидимо для пользователя. В частности, у меня такое происходит при запуске некоторых игр, при уходе компа в сон, и ещё в некоторых случаях, которые я пока не выловил. Несмотря на внешнюю незаметность этого события, какая-то перерисовка выполняется, и все окна на экране перестраиваются так, чтобы влезть в новое уменьшенное разрешение. Соответственно, окна из нижнего правого угла смещаются вверх-влево, размеры больших окон уменьшаются, значки на рабочем столе (если их много) съезжают со своих мест и т. д.
Добавлено: Вт дек 10, 2013 11:09
MVV
CaptainFlint,
Есть такое при работе с полноэкранными приложениями. Но тут вроде речь идет даже о банальном Win+L с последующей разблокировкой...
Добавлено: Вт дек 10, 2013 12:38
CaptainFlint
MVV писал(а):Есть такое при работе с полноэкранными приложениями. Но тут вроде речь идет даже о банальном Win+L с последующей разблокировкой...
У меня происходит и при переходе в ждущий/спящий режимы. С Win+L не воспроизводится, но у меня и пользователь только один, а
greeneyes говорил про переключение между пользователями. Ну и, наконец, не исключаю вероятности, что установлен какой-то дополнительный софт, из-за которого проблема начала проявляться и при обычной блокировке.
Добавлено: Вт дек 10, 2013 18:37
greeneyes
Еще поэкспериментировал. Нажимаю Win-L
"Перерисовки" экрана нет. Ввожу пароль - всё нормально.
Снова блокировка. нажимаю на "Сменить пользователя". Черный экран на мгновение, далее - приглашение, выбор из 2х пользователей. Захожу. Снова нормально.
Блокировка - заход под другим пользователем - блокировка - заход под собой. И снова нормально.
Но. Если я оставлю на некоторое время, например 30 минут - то проблема проявляется.
PS. Проблема была с самого начала установки Windows (3 месяца) (Собственно, Windows, далее Тотал... ну это логично, первое приложение! ... далее драйверы...

)
Т.е. с приложениями никак не связываю.
С другими приложениями попробую.
+ еще идея - удалить файл wincmd.ini и попробовать то же самое со файлом по-умолчанию... Отпишусь обязательно.
Еще идеи?!
Добавлено: Вт дек 10, 2013 18:57
CaptainFlint
greeneyes
Повторю свою просьбу проверить с другими приложениями, выставив предварительно у них размер и положение окна такими же, как у Тотала. От этого зависит, с Тоталом нужно разбираться или же с операционкой (а заодно и в каком подфоруме должно вестись обсуждение).
Добавлено: Вт дек 10, 2013 19:33
greeneyes
Попробовал. Maxthon ведет себя также. Т.е. проблема в windows, а не в тотале.
Добавлено: Вт дек 10, 2013 20:12
MVV
А я могу подтвердить, что у меня на виртуалке с 2 пользователями наблюдается такое же поведение системы: жму "сменить пользователя", пару секунд черный экран, потом выбираю своего же, ввожу пароль - все окна съехали. Однако, съехали не столь сильно, так что, возможно, где-то можно задать разрешение экрана приветствия...
Добавлено: Вт дек 10, 2013 22:16
CaptainFlint
Раз дело всё-таки в Windows, тема переносится в "Программное обеспечение".
Добавлено: Вт дек 10, 2013 23:00
greeneyes
Спасибо. Посмотрим, что скажут профи по Windows 7

Добавлено: Сб дек 14, 2013 23:56
Mellomann
Постараюсь описать причину проблемы простым языком без сильного углубления в теорию.
Опишу только практику и происходящие шаги.
Шаг 1 - прелюдия.
В нормальной работе при вхождении пользователя рабочий стол отрисовывается в том разрешении, что было установлено настройками экрана. (пример пусть будет как у моего монитора - 1920х1080).
Шаг 2 - смена пользователя (два сценария)
А. Пуск -> сменить пользователя -> энтер... переходим к шагу 3.
(или)
Б. Win+L -> при блокировке экрана поверх всех окон, десктопа и панелей рисуется экран блокировки с полем для пароля -> жмём "сменить юзверя" - с тем же результатом переходим к шагу 3.
Шаг 3 - момент смены пользователя.
Итак, мы нажали "смену пользователя", далее мы видим, что монитор гасится на 2-3 сек, затем отрисовывается экран списка пользователей.
И тут как раз - самое интересное.
Именно в момент "потухания" происходит:
А. весьма быстрое исчезание видеосигнала - кадра на 2-3, по времени - это где-то 0,2-0,5 сек, не больше,
Б. затем выводится чёрный экран в разрешении на одну ступень ниже актуального - где-то 0,5-1,0 сек (по моему монитору это 1680х1050),
В. затем снова сигнала нет пару кадров,
Г. и только после всего этого рисуется экран со списком пользователей в опять уже правильном разрешении.
Шаг 4 - получаем результаты
Далее можно переключаться на другого пользователя, там что-то сделать и вернуться обратно. Можно на другого не переходить, а просто вернуться обратно на того, из которого только что вышли.
Важно - что был выход из сеанса пользователя (без его завершения) а потом - вход обратно.
Итак, что мы видим теперь из моего примера. Все НЕполноэкранные окна, имевшие размер больше, чем 1680х1050, уменьшились до этого размера (например, браузер был 1844х644, стал 1680х644).
Ещё, в случае удачного совпадения момента влогинивания и момента отображения всплывалки сообщения скайпа в правом углу (например, кто-то "вовремя" написал), эта самая всплывалка оказывается не в углу а в позиции, соответствующей углу кадра 1680х1050.
В общем, такое поведение получается практически со всеми окнами, рисующими свои размеры и позицию системным способом. Положение окон, кстати, тоже может уходить влево вверх, если до этого оно выступало за границы "минус первой ступеньки" разрешения экрана.
Такой же результат можно получить вручную просто изменив разрешение монитора на одну ступень вниз, а затем вернув обратно.
Вместо заключения.
К сожалению причины подобного поведения мне неясны. Возможно это - технический момент, т.к. в момент смены пользователя пока монитор гаснет, кратковременно отключается также вся периферия, гаснут индикаторы и подсветка клавиатуры и мышки.
Баг или фича - тоже неясно, т.к непонятен практический смысл таких действий.
Подобной проблеме подвержена вся линейка Windows 6.x - т.е., Vista, 7, 8.
К сожалению, про Win XP точно сказать не могу - когда она использовалась, у меня не было надобности в параллельной работе пользователей.
Небольшие поправки к примеру:
1. Взятые цифры 1920х1080 и 1680х1050 - это как раз родное разрешение моего рабочего монитора и "минус одна ступенька" соответственно.
2. Другой рабочий пример - на ноутбуке с экраном 1366х768 такой ступенькой оказалась 1280х768. Обрезка до кадра происходит аналогично.
3. При многомониторных конфигурациях сдвиги позиций получаются ещё более интересные.
4. Обладатели быстрых мониторов с цифровым интерфейсом могут успеть разглядеть один-два кадра чёрного экрана шага 3Б между исчезаниями сигнала в шагах 3А и 3В.
Немного практики
Увидеть своими глазами можно происходящее и без быстрого монитора, достаточно инета, второго компа и TeamViewer'а.
Идельный вариант - когда будем управлять удалённо с десктопа (компа с 1920х1080) ноутом с его родным 1366x768.
Итак:
1. подключаемся на удалённое управление ноутом, получаем кадр 1366х768 в окне тимвьювера,
2. жмём смену пользователя на ноуте
3. (хоть программа выдаст, мол сеанс приостановлен, ни в коем случае не отключаемся, следим дальше!)
4. окно управления на десктоме становится по размеру 1280х768 (это хорошо заметно, обращаем на это особое внимание)
5. на ноуте обратно возвращаеся на вышедшего пользователя
6. окно управления на дестопе возвращается к нормальному размеру
П.с.
Важно, чтобы на десктопе разрешение экрана было с запасом больше, чтобы можно было заметить уменьшение размера окна управления. В данном случае оно будет в 100% масштабе соответствовать разрещению экрана ноута и менять свои размеры при перелогинивании на ноуте.
p.s.
После всего многобуквия.
Всё вышеизложенное 100% воспроизводится на практике в моих рабочих условиях, все указанные разрешения (1080p и 768p) реальны, все "предыдущие" ступеньки были сначала рассчитаны теоретически, затем подтверждены на практике.
Если какой-то момент остался неясен - обращайтесь, постараюсь описать подробнее.
Добавлено: Пн дек 16, 2013 03:15
Mellomann
Для владеющих английским информация по теме:
ссылка
ссылка
И да, из этой инфы получается, что win xp тоже имеет такой косяк, а решения не дали даже мелкомягкие.
Только какой-то патч для XP, который может помочь в некоторых особо ужасных случаях (когда исходное разрешение не восстанавливается обратно).
Так что... раньше с этой проблемой было ещё хуже...
Благо не все проги рисуют позиции своих окон "стандартным" методом... (например, Winamp не страдает обрезкой размеров окна).
p.s.
И ещё вдогонку к предыдущему сообщению. Если разница между ступеньками небольшая (например, как у меня в примере с ноутом - 1280х768 и 1366х768 очень близки по размеру), то визуально разницу можно не заметить. Для того, чтобы увидеть всю суть проблемы, достаточно просто растянуть окно (любое - проводника, тотал, браузер, например) по горизонтали и вертикали до краёв (но не разворачивать в полноэкранку). Тогда после возврата на пользователя обратно будет видно точно, что куда режет.
Добавлено: Пн дек 16, 2013 11:21
MVV
Думаю, Winamp просто сам восстанавливает положение и размеры окон, наверняка народ пожаловался. Потому как, насколько я понимаю, все окна менеджер окон сам сдвигает в кучу и уменьшает размер тех, которые можно уменьшить, и которые не умещаются на экране.
Второй пользователь и не нужен, чтобы воспроизвести проблему. Достаточно нажать Win+L и щелкнуть кнопку смены пользователя, она там всё равно будет.
Проблема, вообще-то, куда шире, чем с переключением пользователей: любое полноэкранное приложение временно переключает разрешение экрана, если оно не соответствует заданному, и при, скажем, аварийном выходе, оно остается уменьшенным. Думаю, возможно создать программу, которая будет отлавливать изменения разрешения экрана и, если оно временное, запоминать текущие положения всех окон, чтобы затем их восстановить... Для восстановления положения значков на десктопе я видел прогу, но положение окон она не восстанавливает.