我们有一个 RDS 场 (Win 2008 R2),用户需要使用第三方应用程序 (Unify OpenScape Contact Center) 来实现呼叫中心功能。它将特定用户登录到特定电话。当用户手动关闭应用程序(基本上是关闭窗口)时,应用程序会“执行其必须执行的操作”,并自动将用户从电话中注销。
问题发生在用户让应用程序继续运行并从其会话中注销(基本上是开始->注销)时,就像 Windows 终止(杀死)该进程一样,而用户仍然登录到手机,然后第二天某些经理必须强制注销等等,从而产生问题。
这是 Windows 注销时的默认行为吗?有没有办法配置它以“正常”关闭应用程序(发送 WM_CLOSE)?
我可以编写一个脚本来为用户生成自定义的“注销”快捷方式并禁用注销按钮,然后尝试在注销之前正常关闭应用程序,但这对我来说仍然听起来像是一个奇怪的解决方法。此外,这并不能解决 Windows 在超时后结束非活动/断开连接的会话的问题。
答案1
这是一个应用程序错误,不是 Windows 的问题。请致电软件供应商,并告知他们需要处理 WM_QUERYENDSESSION 消息和/或 CTRL_LOGOFF_EVENT 控制信号和/或各种WTS相关的窗口消息在他们需要处理的应用程序的消息循环中。
此外,他们可以更智能地设计服务器,并自动注销一段时间内没有发送某种“心跳”的帐户。
不处理此消息且不实现这些功能的应用程序基本的设计考虑可以被认为是“不完整”和“与 Windows 不兼容”,本质上我们不应该容忍市场上存在这种类型的垃圾软件。
抱歉,我对这个问题有强烈的感受。