当有多个登录时,检测多个应用程序实例的更改

时间:2013-03-15 02:26:23

标签: c++ windows

假设我创建了一个应用程序,该应用程序由当前登录的两个用户运行,user1处于非活动状态且user2处于活动状态,请参见下图(因此系统中同时存在两个进程),应用程序将读取/写一个物理文件,比如在这个文件中添加一些信息。

我的问题是,当user2向此文件添加一些数据时,在切换回user1后,app inst1如何知道更改? (我们当然可以重新启动app inst1,但这是不可取的。)

一个解决方案是让app处理会话更改事件,在Windows中有WTSRegisterSessionNotification需要HWND,但我的应用是控制台应用。

有什么想法吗?

illustration

1 个答案:

答案 0 :(得分:1)

您可以使用Windows API函数FindFirstChangeNotification:

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

您可以注册要通知的条件(在您的情况下,可能是上次更新时间),然后获取一个可以等待的句柄。我想,你会想把它放在一个单独的线程中而不是阻塞你的主线程。