快速用户切换是 Windows XP 的一个功能,允许多个用户共享同一台计算机。 每个用户有自己的配置文件(和桌面),而且您可以在不注销的情况下在用户之间进行切换。 您编写的应用程序若要支持快速用户切换,必须确保在用户会话切换时不损坏或丢失数据。
若要支持快速用户切换,您的应用程序必须将用户和应用程序数据存储在有效的位置。
此外,如果您的应用程序提供的功能在多个用户同时运行时发生故障(例如,因为该程序以不安全的方式使用全局资源),您必须为应用程序添加代码以检测该情形并作出相应的反应。
如果应用程序的另一个实例影响到可选(非首要)功能,应用程序启动时必须:
本文其他部分指导您如何使您的应用程序支持快速用户切换。
若要支持快速用户切换,您的应用程序必须将用户和应用程序数据存储在有效的位置。
此外,如果您的应用程序提供的功能在多个用户同时运行时发生故障(例如,因为该程序以不安全的方式使用全局资源),您必须为应用程序添加代码以检测该情形并作出相应的反应。
如果应用程序的另一个实例影响到可选(非首要)功能,应用程序启动时必须:
- 检测是否有用户正在运行该应用程序。
- 阻止所有有问题的功能。
- 通知当前用户无法使用特定功能的原因。
- 检测是否有用户正在运行该应用程序。
- 向当前用户报告错误情况,然后退出。
本文其他部分指导您如何使您的应用程序支持快速用户切换。
要求
- 如果您的应用程序在 Windows XP 或 Windows 2000 中运行,您只能命名使用全局命名空间的 mutex 和 semaphore 对象。早期版本的 Windows 不支持全局命名空间,而且如果试图使用包含反斜杠字符 ("/") 的内核对象名称将发生错误。
- 如果您的应用程序是针对 Windows XP 或 Windows 2000 及其他版本的 Windows 设计的,则必须包含版本检查代码,并且在相应的操作系统中只能使用全局 mutex 名称。
- 如果您在开发一项服务,请确保服务提供的用户交互发生在当前用户上。 不可假定会话 0 就是当前桌面会话,因为在 Windows XP 中,活动会话可以有任意的会话序号。 使用 WTSGetActiveConsoleSessionID 标识活动会话。
关键字: | kbhowto kbhowtomaster KB310153 |
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。