从应用程序中踢出用户

时间:2011-06-29 19:23:34

标签: c# winforms

我编写了一个在公司范围内使用的应用程序。许多用户倾向于将应用程序打开24-7。随着营销部门需求的变化,该应用程序正在不断发展。大多数变化都很小,但往往需要快速实施。销售人员经常远离他们的办公桌或电话,因此对讲通知并不总能解决问题。该应用程序位于网络文件共享上,并缩写为。

我想象的是一条消息弹出类似“程序将在五分钟内退出更新,请立即保存更改”。有没有办法显示此消息并远程从exe中踢出它们?我想可能只是有一个数据库值,它定期检查是否有更新待处理,但这对我来说似乎是一个廉价的黑客。

6 个答案:

答案 0 :(得分:4)

您的数据库检查与其他任何一项一样好;我个人会建议轮询它订阅的一些服务,它会做同样的事情。但是,如果您的应用程序直接连接到数据库,那么您最好在数据库中进行检查。

然而,最好使用ClickOnce部署方法。这需要进行重大的体系结构改变,但从长远来看,这将是最好的,IMO。

答案 1 :(得分:1)

可惜它不是一个Web应用程序。部署将非常简单!

无论如何我要做的就是这个。几分钟不活动后,让应用程序记录用户。

未保存工作的两种方法。什么都不做,因此如果它们处于非活动状态并且将它们记录下来,它们会松开它。

当他们工作时,会保留当地的变更日记。当他们由于不活动而退出登录时,回溯将使用日志打开事物原样。

编辑:阻止用户使用旧版本。使用版本号或内部版本号编写数据库字段。如果运行版本< db字段中的版本然后拒绝登录,和/或重新启动程序以加载新映像。

答案 2 :(得分:0)

您可以设置.exe发送请求的中央服务器,以找出更新何时可用。

我建议您将WCF视为解决方案的框架;这个框架以及像这样的网站上有很多很好的参考资料。您可以在应用程序中启动一个单独的线程,每隔X分钟检查一次更新。

至于你的具体问题,“有没有办法显示这条消息,并远程从exe中踢出它们?”,是的,这是可能的,但让程序自动查询更新更为可行。

如果要关闭它们以进行远程更新,则必须知道它们在网络中的位置。如果程序定期联系中央数据库,那么服务器就不需要知道程序在网络上的位置,程序可以自动从任何地方到达服务器。

答案 3 :(得分:0)

您可以使用诸如RabbitMQ之类的消息传递系统或任何其他消息传递系统,并让应用程序侦听系统中的通道。然后,管理应用程序可以向用户应用程序发送消息,强制它们关闭。

如果更改没有中断更改,您可能希望查看ClickOnce之类的内容,它允许您在用户运行时向应用程序发布更新,但用户将在重新启动之前运行旧版本的应用程序。

答案 4 :(得分:0)

我没有得到你坚持的东西。只需创建一个计时器,并在用户交互时,重置计时器,例如5分钟。然后,当计时器触发时,显示消息框,并创建另一个计时器,当该计时器触发时,只需终止当前进程。

答案 5 :(得分:0)

相反,但是如果问题是人们离开工作站并登录,那么请看看像www.1e.com的守夜人之类的东西,它会在x不活动后关闭电脑。把它卖给贵公司“为环境做点儿”,节省浪费的电费。

相关问题