Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我想在使用Window+;切换用户后关闭我的应用程序;L键。任何语言、任何技术均可接受的解决方案。_.net_Windows_Powershell_Winapi - Fatal编程技术网

.net 我想在使用Window+;切换用户后关闭我的应用程序;L键。任何语言、任何技术均可接受的解决方案。

.net 我想在使用Window+;切换用户后关闭我的应用程序;L键。任何语言、任何技术均可接受的解决方案。,.net,windows,powershell,winapi,.net,Windows,Powershell,Winapi,我想在使用Window+L键切换用户后关闭我的应用程序。任何语言、任何技术均可接受的解决方案 我有一个通过MSI安装的bookMyApp wpf应用程序。 假设计算机有多个用户并使用以下场景 -->第一个用户打开bookMyApp应用程序并做了一些工作, 一段时间后,他尝试在不关闭bookMyApp应用程序的情况下切换用户。此时我想自动关闭bookMyApp应用程序。无论如何,这是可能的吗?虽然我仍然认为这是对用户的敌意*并且强烈建议您对开发此需求的人进行反击,但您可能正在寻找的是消息。这将传递

我想在使用Window+L键切换用户后关闭我的应用程序。任何语言、任何技术均可接受的解决方案

我有一个通过MSI安装的bookMyApp wpf应用程序。 假设计算机有多个用户并使用以下场景

-->第一个用户打开bookMyApp应用程序并做了一些工作,
一段时间后,他尝试在不关闭bookMyApp应用程序的情况下切换用户。此时我想自动关闭bookMyApp应用程序。无论如何,这是可能的吗?

虽然我仍然认为这是对用户的敌意*并且强烈建议您对开发此需求的人进行反击,但您可能正在寻找的是消息。这将传递给已注册通过函数接收的windows

它报告的是控制台/远程连接事件和锁定事件。我相信,当您的会话不再使用快速用户切换时,您将收到
WTS\u控制台\u断开连接
。但请注意,您接收事件的原因可能还有其他原因(例如,因为他们在本地工作,现在已通过远程桌面连接到会话)。您必须决定在这些其他情况下是否可以同时终止您的程序1

查找如何从WPF应用程序中获取窗口消息


*我的第一条经验法则是,如果你被要求根据操作系统本身的运行方式来做一些事情,首先看看你是否能发现任何其他与你提议的方式相同的程序。如果你不能(我想不出任何与你提出的工作方式相匹配的),你需要认真考虑一下,你的组织是否只是第一个想出一个非常好的想法,许多人将来会复制它,或者B)这是很糟糕的UX。几乎在所有情况下,如果你诚实地对待这个问题,你会意识到这是(b)


1这只是我脑海中能想到的第一个例子。你不太可能找到更适合你的要求的东西,因为你正在做的事情可能会让微软非常不高兴,因为它破坏了快速的用户切换体验。

虽然我仍然认为这是用户敌对行为*并且强烈建议你对开发此要求的人大力回击,你可能在寻找的是信息。这将传递给已注册通过函数接收的windows

它报告的是控制台/远程连接事件和锁定事件。我相信,当您的会话不再使用快速用户切换时,您将收到
WTS\u控制台\u断开连接
。但请注意,您接收事件的原因可能还有其他原因(例如,因为他们在本地工作,现在已通过远程桌面连接到会话)。您必须决定在这些其他情况下是否可以同时终止您的程序1

查找如何从WPF应用程序中获取窗口消息


*我的第一条经验法则是,如果你被要求根据操作系统本身的运行方式来做一些事情,首先看看你是否能发现任何其他与你提议的方式相同的程序。如果你不能(我想不出任何与你提出的工作方式相匹配的),你需要认真考虑一下,你的组织是否只是第一个想出一个非常好的想法,许多人将来会复制它,或者B)这是很糟糕的UX。几乎在所有情况下,如果你诚实地对待这个问题,你会意识到这是(b)


1这只是我脑海中能想到的第一个例子。你不太可能找到更适合你的需求的东西,因为你正在做的事情可能会让微软非常不高兴,因为它破坏了快速的用户切换体验。

因此,你希望以用户熟悉的相反方式工作,如果他们切换用户,然后再切换回来,他们所有的作品都还在那里,而且还在他们留下的状态?这似乎是对用户的敌意。同意你的看法,但这是必需的,还有其他方法可以这样做吗?:)同意前面的评论。实际要求是什么?(这听起来有点像一个锁。)桌面有多种锁定方式。您是否只希望响应Win+L?因此,您希望以用户熟悉的相反方式工作,即如果他们切换用户,然后再切换回,那么他们所有的工作仍在那里,并且处于保留状态?这似乎是对用户的敌意。同意你的看法,但这是必需的,还有其他方法可以这样做吗?:)同意前面的评论。实际要求是什么?(这听起来有点像一个锁。)桌面有多种锁定方式。您是否只想回复Win+L?我理解您的担忧,将讨论以上所有要点,感谢您宝贵的时间和支持effort@GulamHusainAnsari-请注意,如果您的要求是“如果他们试图在新用户会话中再次启动我们的应用程序,我们将终止旧副本”,这并不令人惊讶,也有先例(各种“一次性”许可模式都遵循这种模式)。但请注意,您将寻找一个完全不同的解决方案来满足这一点。现在您得到了这一点,我们的要求是“如果他们试图在新用户会话中再次启动我们的应用程序,我们将终止旧副本”和新用户角色非管理员:)。我没有得到确切的解决方案,但您给了我一种解决方案,我不想使用win服务:)@gulamhusainarsari您不需要为此编写服务。您只需要使用一个可以跨越会话边界的IPC机制。检测前一个实例的最简单方法是使用命名的内核obj