程序的单个实例,可供多个用户访问

程序的单个实例,可供多个用户访问

我想让我的软件在某台计算机上运行,​​并且如果当前用户注销而另一个用户登录,它不应该关闭,新用户将继续上一个用户停止的工作。应用程序需要持续运行,这一点至关重要。同样重要的是,用户需要使用与上一个用户停止的相同实例。

这在 Windows 10(带有 AD)中可以实现吗?

答案1

不“属于”用户,而是属于系统的应用程序在 NT(W10 也是如此)中被称为服务。虽然它不能直接提供 UI,但它可以创建一个端点,让仅提供 UI 的应用程序插入其中以显示 UI。

Windows Update 机制或 Windows Defender 机制可以最好地解释这一点:两者都有一个作为服务运行的工作进程,即在后台与登录的用户分离,但它们的 UI 与此工作进程分开,不保留任何状态 - 它可以终止而不影响底层服务。UI 进程连接到工作进程以获取服务的状态并将其显示在漂亮的 UI 中,或者将通过 GUI 输入的命令发送到服务。

如果您的应用程序执行了一些需要 UAC 同意的“花哨”的事情,那么该模型也能帮助您:服务具有内在同意(安装时会出现 UAC 弹出 i/a),而 UI 部分不需要它。

答案2

我看到两种解决方案:

  • 保存有关应用程序状态的信息,以便您可以在停止的地方重新启动,

  • 将您的应用程序转换为 Windows 系统服务并将其分为两部分:系统服务部分和 GUI 部分。

答案3

当用户注销时,该过程终止。

我建议您在 AD 中创建一个新用户,并且该用户应该是该计算机上唯一活跃的用户,因此他们不必注销。

相关内容