Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GetDesktopWindow作为服务运行时的备选方案_C#_.net_Winforms_User Interface_Winapi - Fatal编程技术网

C# GetDesktopWindow作为服务运行时的备选方案

C# GetDesktopWindow作为服务运行时的备选方案,c#,.net,winforms,user-interface,winapi,C#,.net,Winforms,User Interface,Winapi,我正在尝试将WinForm应用程序作为构建(作为服务运行)的一部分进行测试。我正在使用GetDesktopWindow和EnumChildWindows查找我感兴趣的控件。当我从控制台、调试器等在交互式会话中运行它时,这非常有效,但在作为构建的一部分运行时,找不到任何控件。作为服务运行时,我可以使用什么作为查找所有窗口的替代方法?通常,windows服务根本不允许与桌面交互(自windows Vista推出以来就不允许了)-您是否考虑过将生成过程更改为按计划任务运行?为什么要使用GetDeskt

我正在尝试将WinForm应用程序作为构建(作为服务运行)的一部分进行测试。我正在使用GetDesktopWindow和EnumChildWindows查找我感兴趣的控件。当我从控制台、调试器等在交互式会话中运行它时,这非常有效,但在作为构建的一部分运行时,找不到任何控件。作为服务运行时,我可以使用什么作为查找所有窗口的替代方法?

通常,windows服务根本不允许与桌面交互(自windows Vista推出以来就不允许了)-您是否考虑过将生成过程更改为按计划任务运行?为什么要使用GetDesktopWindow?如果您试图枚举所有桌面窗口以查找您的应用程序,听起来您似乎在尝试做一些奇怪的事情。

听起来您可以(如果您有适当的访问权限)在默认交互式桌面上使用

起初,我使用应用程序的主窗口查找子控件(这肯定是更明智的做法),但它没有找到自定义模式对话框——即使在正常运行条件下(使用Form.ShowDialog()显示)。顺便说一句,通常的做法是让构建服务器作为服务运行,这是我第一次尝试测试WinFormGUI。