在服务中静默运行 UI 组件

发布于 2024-08-22 18:19:18 字数 353 浏览 1 评论 0原文

我有一个组件,它使用 .NET WebBrowser 组件从网络上静默检索一些数据。它被编写为不会显示任何对话框或任何其他交互式 UI 组件,但由于它是一个表单组件,因此我需要创建一个表单和 STA 线程来托管它。然后我使用 Form.ShowDialog() 启动它,

这工作得很好,除了我无法在非交互式服务中运行此设置。当我尝试执行此操作时,我收到异常“当应用程序未在 UserInteractive 模式下运行时显示模式对话框或表单不是有效操作。指定 ServiceNotification 或 DefaultDesktopOnly 样式以显示来自服务申请。”

有没有什么方法可以配置服务,使其运行 WebBroswer,而不显示任何 UI 或任何内容?

I have a component, which silently retrieves some data from web using .NET WebBrowser component. It is written so that it will not show any dialog boxes, or any other interactive UI components, but since it is a form component, I need to create a form and STA thread to host it. I'm then starting it using Form.ShowDialog()

This works perfectly, except I cannot run this setup in non-interactive service. When I'm trying to do this, I'm receiving an exception "Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application."

Is there any way to configure a service so that it runs WebBroswer anyway, without displaying any UI or anything?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白日梦 2024-08-29 18:19:18

不,没有,此更改是从 Windows Vista 开始作为一项安全措施进行的,您必须选择加入才能使用。

一般来说,您所做的并不是获取抓取内容的最佳方式,但如果您必须这样做,那么您将需要启用该服务与桌面交互。

No, there isn't, this change was made from Windows Vista on as a security measure that you have to opt-in to in order to use.

Generally speaking, what you are doing isn't the best way to get scrape content, but if you must do it this way, then you will need to enable the service to interact with the desktop.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文