我有一个自定义Lync应用程序,用于更改用户的状态/状态。对于应用程序,Lync在某些计算机上的抑制UI上运行,而在其他计算机上运行。我希望它提示用户“你想将状态改为'Out'吗?”如果他们正在进行系统关闭或注销,并且他们的状态设置为“In”。然后,如果需要,它将更改其状态并将其注销/关闭。问题是,当他们执行注销/关闭时,它会终止Lync进程,然后我需要重新启动它才能更改其状态。
答案 0 :(得分:3)
如果要将输入/输出状态映射到标准Lync状态,则不需要在注销/关闭时显式发布状态。当用户退出计算机时,Lync应自动将状态设置为“脱机” - 因此,如果状态映射为“Out”,则应自动将用户设置为“Out”状态
除非我误解了某些事情......
编辑 - 好的,我明白为什么你现在需要捕获关闭事件 - 提示用户在注销时设置注释。我不认为你可以用Lync API来解决这个问题。正如你所说,问题是你的应用程序被通知它正在关闭,但到那时为时已太晚,因为Lync本身也被告知关闭,所以无法保证你可以要求它改变用户注释状态。
我认为您可以做的最好的事情是使用Win32 ShutdownBlockReasonCreate函数 - 有一个使用托管代码here的示例。不幸的是,它仅在Vista或更高版本中得到支持。