ボタンをクリックしてログをクリアする単純なアプリケーションを C# と WHITE で作成しました。リモート デスクトップ接続を使用してテスト マシンに接続し、そのアプリケーションを実行していました。セッションが接続されているときは正常に動作しますが、セッションを切断すると動作が停止します。
Windows セッションが切断されたときにそのアプリケーションを実行する方法はありますか?
ボタンをクリックしてログをクリアする単純なアプリケーションを C# と WHITE で作成しました。リモート デスクトップ接続を使用してテスト マシンに接続し、そのアプリケーションを実行していました。セッションが接続されているときは正常に動作しますが、セッションを切断すると動作が停止します。
Windows セッションが切断されたときにそのアプリケーションを実行する方法はありますか?
Windowsサービスを作成できます。
タスク スケジューラを使用することもできます。C# ラッパーは必要ないかもしれませんが、必要なエントリをスケジューラ内に自分で追加できます。
セッションが接続されているときは正常に動作しますが、セッションを切断すると動作が停止します。
これは仕様によるものです。セッションを切断すると、セッションはロックされます。セッションがロックされている場合、UI オートメーションは機能しません。
おそらく別のリモート デスクトップ ツール (VNC/PcAnywhere) を介して、セッションをロックしないことで、これを回避できます。しかし、これは間違いなくハックです。
代わりに、別のアプローチをお勧めします。可能な限り UI の自動化を避けることをお勧めします。私は常に、UI の自動化が不安定で信頼性が低いと感じてきました。
あなたの質問へのコメントで、あなたのアプリは、ボタンをクリックしてログをクリアするための単なる UI 自動化であると述べました。ログはDebugView
アプリケーションによって生成されます。
代わりにファイルにログを記録することをお勧めします。この機能は、次の Web サイトで言及されていますDebugView
。
http://technet.microsoft.com/en-us/sysinternals/bb896647
リモート監視の使用も検討できます。
サイズが問題になる場合は、「ログ ファイルのラッピング」および「ログ ファイルのロールオーバー」機能を調べることもできます。