gpt4 book ai didi

c# - 允许 Windows 服务与桌面交互

转载 作者:可可西里 更新时间:2023-11-01 08:02:14 25 4
gpt4 key购买 nike

如何以编程方式启用“允许服务与桌面交互”?

在 services.msc > Action > Properties > Log On > Allow service to interact with desktop 中,我可以启用我的服务以与桌面交互。我想让我的服务播放声音(MP3、WAV 等)。

services.msc > Action > Properties > Log On > Allow service to interact with desktop

最佳答案

我将在这里尝试使用关键字来解释您的问题。以后,请花更多时间写下您的问题,让其他试图阅读和理解它们的人能够理解它们。

在属性窗口的登录选项卡下有一个名为“允许服务与桌面交互”的 Windows 服务的复选框。如果您尝试以编程方式检查该框,您需要在使用 CreateService API 创建服务时指定 SERVICE_INTERACTIVE_PROCESS 标志。 (参见 MSDN )。

但是,请注意,从 Windows Vista 开始,服务被严格禁止直接与用户交互:

Important: Services cannot directly interact with a user as ofWindows Vista. Therefore, thetechniques mentioned in the sectiontitled Using an Interactive Serviceshould not be used in new code.

此“功能”已损坏,传统观点认为您无论如何都不应该依赖它。服务并不旨在提供 UI 或允许任何类型的直接用户交互。由于可能存在安全风险,Microsoft 自 Windows NT 早期以来一直警告应避免使用此功能。拉里奥斯特曼争论为什么它是 always a bad idea 。他是 not the only one

一些 possible workarounds,但是,如果您绝对必须具有此功能。但我强烈建议您仔细考虑它的必要性,并为您的服务探索替代设计。

关于c# - 允许 Windows 服务与桌面交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4237225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com