如何在c#中处理交换机用户?

如何在c#中处理交换机用户?,c#,.net,winforms,C#,.net,Winforms,当用户使用windows 7提供的“切换用户”选项从一个帐户切换到另一个帐户时,我想在我的windows窗体应用程序中执行一组任务。那么,我们是否有一些系统事件来处理此切换用户案例?我想这是您需要的。您可以监听新用户登录,并将其作为用户切换,因为您的应用程序仍处于活动状态(否则您将首先注销) 当当前登录的用户发生更改时发生 我猜用户切换的逻辑是: 当前会话仍处于活动状态(未注销) 另一个会话登录或解锁 这两个事件都可以由该事件处理。我知道这是一个旧问题,但我没有看到有用的答案。您确实需要处理

当用户使用windows 7提供的“切换用户”选项从一个帐户切换到另一个帐户时,我想在我的windows窗体应用程序中执行一组任务。那么,我们是否有一些系统事件来处理此切换用户案例?

我想这是您需要的。您可以监听新用户登录,并将其作为用户切换,因为您的应用程序仍处于活动状态(否则您将首先注销)

当当前登录的用户发生更改时发生

我猜用户切换的逻辑是:

  • 当前会话仍处于活动状态(未注销)
  • 另一个会话登录或解锁

这两个事件都可以由该事件处理。

我知道这是一个旧问题,但我没有看到有用的答案。您确实需要处理该事件。当Windows用户切换到其他用户时,事件中的SessionSwitchEventArgs将具有一个Reason属性,该属性是一个值为“ConsoleDisconnect”的枚举。当用户切换回来时,它的值应该是“ConsoleConnect”。

这是一个win forms应用程序,每当用户切换帐户时,就会创建一个新的实例,我想我们在win forms中不需要会话之类的东西。但应用程序按用户运行。这就是它的工作方式。也许你需要一个服务。谢谢,但我目前的限制不支持该服务。然后使用现有的方法,如答案中所述。没有办法让单个应用程序跨用户会话运行。