1

我有一个启动另一个应用程序的系统服务。这个应用程序(用 C# 编写)有时需要获取所有打开的窗口(应用程序)并列出它们的名称。

我用过EnumWindow(来自 Win32),我用过Process.GetProcesses()process.MainWindowTitle(来自 C#)我得到的只是:

进程:UI0Detect

窗口标题:交互式服务检测

如果我手动运行该应用程序,它会为我提供所有应有的窗口。但是当系统服务运行应用程序时,我得到的只是这一项服务。

如何让应用程序为我提供正确的活动窗口列表?

谢谢

4

1 回答 1

1

Windows 服务不会像普通程序一样在同一个“会话”中运行,因此第二个启动的程序也会在您的服务启动时在特殊会话中启动。您将需要使用CreateProcessAsUser并在要监控的用户会话中创建您的第二个应用程序。

有关详细信息,请参阅有关编写交互式服务的MSDN 文章。

于 2012-07-20T13:50:27.207 回答