2016-03-28 18 views
0

リモートデスクトップセッションを使用してアクセスするWindows 2012R2サーバー上にあるLync SDKを使用してwpfアプリケーションを開発しています。コンピュータにログインしているユーザーがいなくても、ログインしたlyncアカウントを常に使用できるようにしています。Lync SDKを使用して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)); 
} 

これは、誰かが(ログインしているときに、ユーザのステータスは誰が使用していない場合であっても利用できるように設定しないがリモートデスクトップセッションから切断すると(サーバーはロックされていますが、まだ実行されています)、ステータスは遠ざかります。

コンピュータがロックされているかどうかを無視する方法はありますか?

答えて

2

、2つの異なるものが必要です完全に異なるソリューションによって解決されたロッキング無視持つ:ちょうど私のリモートデスクトップセッションを閉じるのではなく、まず

を、私は残すために、コマンドプロンプトスクリプトを使用する必要がありました。ログオフするために、コマンドプロンプトに次のように入力します。

tscon [YOUR SESSION ID] /DEST:console 

あなたは(あなたがそれを表示する必要がありますので、それが隠れていることがあります)お使いのWindowsのタスクマネージャのユーザーページに調べることで、あなたのセッションIDを見つけることができます。

第2に、キーボードを時折動かす必要があります。それを行う多くのスクリプトがありますが、私はそれが起動したときにコンピュータを使用可能にする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ファイルに保存しておき、コンピュータを離れる前に実行します。これにより、設定されていない使用不能によって引き起こされたスリープを防ぐことができます。

+0

また、http://stackoverflow.com/questions/8600627/prevent-windows-workstation-desktop-from-locking-while-running-a-wpf-programで説明されている.NETソリューションを使用すると、PCログアウトするのではなく、tsconコマンドを使用して休止状態からスリープ状態にする –

関連する問題