如何从服务获取已登录用户的活动窗口

时间:2009-03-11 14:52:40

标签: c# windows-services pinvoke user32

我正在编写一个C#服务,它必须从当前登录的用户检索信息,如活动窗口或最后一次鼠标移动。 我已经了解到我可以使用user32.dll检索这些信息,但这只能在调用方法的用户上下文中工作。

这样我的服务只能检索有关自身的信息,而不能检索“真实世界”用户的信息。我也听说过这应该是可以使用WTSEnumerateSessions,OpenWindowStation,EnumDesktops等,但我还没有找到一个示例告诉我如何做到这一点。

是否有人知道如何实现我的目标(或者某些代码示例)?

1 个答案:

答案 0 :(得分:4)

这听起来很像是在用户会话中运行的应用的工作。一个表现良好的服务不应该像这样窥探用户。 可能有办法(我老实说也不知道),但听起来不太合适。

请注意,对于最新版本的Windows,控制台会话(会话0)仅限于管理目的,用户不会(通常)在那里。您可能有零个,一个或多个非控制台会话。

相关问题