1

現在ログオンしている2人のユーザーがuser1非アクティブとuser2アクティブで実行するアプリを作成したとします。下の図を参照してください(システムには2つのプロセスが同時に存在します)。アプリは物理ファイルの読み取り/書き込みを行い、このファイルに情報を追加します。 。

私の質問は、user2このファイルにデータを追加するときに、に切り替えた後user1、どのようapp inst1にして変更を知ることができるかということです。(もちろん再起動できますが、app inst1望ましくありません)。

1つの解決策は、アプリにセッション変更イベントを処理させることです。WindowsにはWTSRegisterSessionNotification必要なものがありますHWNDが、私のアプリはコンソールアプリです。

何か案は?

図

4

1 に答える 1

1

Windows API 関数 FindFirstChangeNotification を使用できます。

http://msdn.microsoft.com/en-us/library/aa364417%28VS.85%29.aspx

通知を受け取りたい条件 (この場合は、おそらく最終更新時刻) を登録し、待機できるハンドルを取得します。メインスレッドをブロックするのではなく、これを別のスレッドに入れたいと思うでしょう。

于 2013-03-15T02:31:53.263 に答える