问题描述
的描述
SessionSwitchEventArgs具有属性Reason,该属性可以告诉您事件的原因。
如果远程桌面连接或断开连接,则会引发此事件。
。
class viewmodel
{
public viewmodel()
{
SystemEvents.SessionSwitch += SessionSwitched;
IsRemoteSession = SystemParameters.IsRemoteSession;
Logger.LogTrace("viewmodel constructed. Remote Session {0}",this.IsRemoteSession);
}
public bool IsRemoteSession {get; set;}
private void SessionSwitched(object sender,SessionSwitchEventArgs e)
{
this.IsRemoteSession = SystemParameters.IsRemoteSession;
Logger.LogTrace("Session Switch. Reason: {0}; Remote Session {1}"
e.Reason,this.IsRemoteSession);
}
如果我在没有远程桌面的情况下启动程序,则属性IsRemoteSession为false。如果我启动远程桌面,则会引发该事件,但该属性仍为false。
但是,如果我使用远程descktop启动程序,则IsRemoteSession为true。如果我关闭远程桌面,则会引发该事件,但是该属性保持为真。
我也按照建议的here尝试了GetSystemMetrics,但这也没有给出正确的值,这是可以预期的,因为SystemParameters使用GetSystemMetrics来获取值。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)