C#-打开窗口没有正常工作

C#-打开窗口没有正常工作,c#,.net,windows,C#,.net,Windows,我有一个启动另一个应用程序的系统服务。此应用程序(用C#编写)在某些时候需要获取所有打开的窗口(应用程序)并列出它们的名称 我使用了EnumWindow(从Win32),我使用了Process.getProcesss()和Process.MainWindowTitle(从C#)我得到的是: 进程:UI0Detect 窗口标题:交互式服务检测 如果我手动运行该应用程序,它将为我提供所有它应该提供的窗口。但当系统服务运行应用程序时,我得到的只是这一项服务 如何使应用程序获得正确的活动窗口列表 谢谢W

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

我使用了
EnumWindow
(从Win32),我使用了
Process.getProcesss()
Process.MainWindowTitle
(从C#)我得到的是:

进程:UI0Detect

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

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

如何使应用程序获得正确的活动窗口列表


谢谢

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


有关详细信息,请参见编写交互式服务。

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


有关更多信息,请参阅编写交互式服务。

系统服务运行在哪个帐户下?它是否在计算机上具有管理级权限?是。我是从我的帐户(也有管理权限)安装的,并且是从管理员运行的。您是否使用Windows 7?如果是这样的话,我不确定服务是否可以访问这些信息。是的。windows 7,很抱歉,该服务正在本地系统帐户下运行,该帐户是我的帐户。但该服务不是获取信息的服务,而是由该服务启动的应用程序。我直接启动的同一个应用程序给了我正确的信息。@AndreiBaisan:当你手动运行该应用程序时,你与你的用户一起运行,不能是“本地系统帐户”,它肯定是另一个!因此,请将服务设置为在您的凭据下运行,然后重试。Scott的答案似乎是正确的……系统服务运行在哪个帐户下?它是否在计算机上具有管理级权限?是。我是从我的帐户(也有管理权限)安装的,并且是从管理员运行的。您是否使用Windows 7?如果是这样的话,我不确定服务是否可以访问这些信息。是的。windows 7,很抱歉,该服务正在本地系统帐户下运行,该帐户是我的帐户。但该服务不是获取信息的服务,而是由该服务启动的应用程序。我直接启动的同一个应用程序给了我正确的信息。@AndreiBaisan:当你手动运行该应用程序时,你与你的用户一起运行,不能是“本地系统帐户”,它肯定是另一个!因此,请将服务设置为在您的凭据下运行,然后重试。斯科特的回答似乎是对的……你真聪明!谢谢这对我很有帮助。你真聪明!谢谢这对我很有帮助。现在可以了。