gpt4 book ai didi

.net-core - 确定 .Net core 控制台应用程序是否在用户交互模式下运行

转载 作者:行者123 更新时间:2023-12-03 09:30:35 25 4
gpt4 key购买 nike

是否可以确定 .Net 核心控制台应用程序是否在用户交互模式下运行?

在以前的 .Net 版本中,可以测试 Environment.UserInteractive查看用户是否有权访问该应用程序。这在 .Net 核心中似乎不存在。

最佳答案

.NET Core 比经典的 .NET Framework 面临更多的问题是如何定义“用户交互”。即使在“经典”.NET 上,Environment.UserInteractive因为它依赖于 system API call to query user object flags,所以感觉很糟糕并测试描述为 Window station has visible display surfaces 的标志.目前尚不清楚这在用于运行命令的无 GUI 的 Windows nano 服务器上在语义上究竟意味着什么。

我的建议是确定您要测试的确切用例。例如,您可以测试附加的输入和输出流是否使用 Console.IsOutputRedirected 重定向。和 Console. IsInputRedirected .在非 Windows 系统上,调用 isatty()可以制作,但目前不能作为 .NET API 使用(您必须编写 PInvoke 代码)。如果要确定是否作为 Windows 服务运行,TopShelf checks if the process has been started by the service host .另一种方法是为特定用例添加额外的参数 - 例如添加并检查 --noninteractive当您想从脚本运行工具时。

关于.net-core - 确定 .Net core 控制台应用程序是否在用户交互模式下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393001/

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