Быстрое переключение пользователей

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

Если ваши приложения соответствуют требованиям к логотипу Windows 2000, они должны работать с быстрым переходом пользователей в Windows XP и более поздних операционных системах. Однако важно учитывать этот сценарий при разработке приложения, чтобы он работал так, как пользователи ожидают. При написании приложений используйте следующие рекомендации.

  • Реализуйте истинное разделение профилей. Система предоставляет базовую инфраструктуру, которая поддерживает разделение пользовательских данных, параметров пользователя и параметров компьютера. Например, используйте папку "Документы пользователя" для хранения созданных пользователем данных. Чтобы найти каталог для данных, относящихся к приложению, используйте известную систему папок с FOLDERID_RoamingAppData) или для старых операционных систем CSIDL с CSIDL_APPDATA). Используйте FOLDERID_LocalAppData или CSIDL_LOCAL_APPDATA для данных, которые не должны быть доступны пользователю на других компьютерах, таких как временные файлы.
  • Зарегистрируйтесь для уведомления о переключении пользователя. Как правило, приложению не нужно получать уведомления при возникновении коммутатора. Однако если приложение должно быть уведомлено об изменении сеанса, оно может зарегистрироваться для получения сообщения WM_WTSSESSION_CHANGE.
  • Помните о других экземплярах приложения. Например, иногда приложение должно скачать обновление из Интернета. Обновление может завершиться ошибкой, если другой пользователь одновременно выполняет экземпляр приложения в другом сеансе. Даже если обновление выполнено успешно, обновление может привести к непредсказуемым действиям других запущенных экземпляров приложения. Поэтому лучше всего выполнить динамическое обновление, только если другие экземпляры приложения не выполняются. Перед скачиванием обновления приложения может потребоваться реализовать метод, который сигнализирует всем запущенным экземплярам приложения, чтобы сохранить данные и выйти из нее.