我正在使用Lync SDK开发一个wpf应用程序,该应用程序位于我使用远程桌面会话访问的windows 2012R2服务器上。我正在尝试使登录的lync帐户始终可用,即使没有用户登录到计算机也是如此。
我设置了一个计时器,每15秒运行一次以下代码:
if (client.State == ClientState.SignedIn)
{
counter++;
Console.WriteLine("Account is green: " + counter);
Dictionary<PublishableContactInformationType, object> status = new Dictionary<PublishableContactInformationType, object>();
status.Add(PublishableContactInformationType.Availability, Microsoft.Lync.Controls.ContactAvailability.Free);
client.Self.BeginPublishContactInformation(status, PublicationCallback, time);
Console.WriteLine(client.Self.Contact.GetContactInformation(ContactInformationType.Activity));
}虽然这确实会将用户的状态设置为在有人登录时可用(即使没有人在使用计算机),但只要我从远程桌面会话断开连接(服务器锁定但仍在运行),状态就会变为离开。
有没有什么方法可以让我忽略计算机是否锁定?
发布于 2016-03-31 04:50:25
让它忽略锁定是由一个完全不同的解决方案解决的,这需要两个不同的东西:
首先,我必须使用命令提示符脚本来离开,而不是仅仅关闭我的远程桌面会话。在命令提示符中键入以下命令以注销:
tscon [YOUR SESSION ID] /DEST:console您可以通过查看Windows任务管理器的用户页面来查找您的会话ID (它可能是隐藏的,因此您必须显示它)。
其次,你必须让你的键盘偶尔移动。有许多脚本可以做到这一点,但我发现我喜欢这个,因为它切换numlock,使计算机在被触发时仍然可以使用。
Dim objResult
Set objShell = WScript.CreateObject("WScript.Shell")
i = 0
Do While i = 0
objResult = objShell.sendkeys("{NUMLOCK}{NUMLOCK}")
Wscript.Sleep (6000)
Loop将其保存在.vbs文件中,并在离开计算机之前运行它。这将防止因未使用而触发的任何睡眠。
https://stackoverflow.com/questions/36273080
复制相似问题