小编yaa*_*kov的帖子

如何在 Windows 11 中找到 Windows 产品名称?

昨天发布的 Windows 11 几乎在所有地方都将自己报告为 Windows 10.0 -RtlGetVersion说是 10.0,如果你问VerifyVersionInfo你是否是 11.0 或更高版本,它会说不是。

似乎没有新的 GUID 可以塞入 app.manifest 中来表示“嘿,我支持 Windows 11”,就像 Windows 7、8、8.1 和 10 那样。

目前,我依靠HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName告诉我当前的 Windows 版本是什么,但在我升级后的计算机上,它仍然显示“Windows 10 Enterprise”,而不是“Windows 11 Enterprise”。

注册表中似乎只有一个位置包含文本“Windows 11”,即 BCD 部分(启动配置),它也可以重命名,所以我不想碰它。

到目前为止,我只确定了几种方法来判断我是否在 Windows 11 上运行:

  1. 调用 WMI 查询 Win32_OperatingSystem 并检查 Name 属性,该属性仅显示“Windows 11”。这是不完整的(它不包括“Enterprise”等 SKU),并且 WMI 相对较慢且稍显脆弱,因此对于我的用例而言,这不是一个可接受的解决方案。

  2. 检查内部版本号是否高于 21996(测试版)或 22000(首次公开发布)。如上所述,这不包括 SKU,并且需要一些手动 jiggery-pokery 才能构建完整的字符串。

  3. 运行sysinfo并解析输出。这非常慢,而且可能很脆弱(我没有检查过,但输出可能会本地化为不同的语言)。

  4. winver知道,但它是一个 GUI 应用程序,所以我无法以编程方式精确查询它。

对于如何以高效且完整的方式从我的操作系统中获取字符串“Windows 11 Enterprise”(或“Windows 11 Pro”等,视情况而定),是否有人有任何其他想法?WMI、sysinfo 和 winver 从哪里获取它?

我需要从 .NET 库执行此操作,但 P/Invokes/本机函数调用是可接受的解决方案。

.net c# windows .net-core windows-11

20
推荐指数
2
解决办法
9069
查看次数

如何在SwiftUI中使另一个视图的大小

我正在尝试重新创建Twitter iOS应用的一部分以学习SwiftUI,并且想知道如何动态地将一个视图的宽度更改为另一视图的宽度。就我而言,使下划线与“文本”视图的宽度相同。

我已附上屏幕截图,以尝试更好地解释我的意思。任何帮助将不胜感激,谢谢!

这也是我到目前为止的代码:

import SwiftUI

struct GridViewHeader : View {

    @State var leftPadding: Length = 0.0
    @State var underLineWidth: Length = 100

    var body: some View {
        return VStack {
            HStack {
                Text("Tweets")
                    .tapAction {
                        self.leftPadding = 0

                }
                Spacer()
                Text("Tweets & Replies")
                    .tapAction {
                        self.leftPadding = 100
                    }
                Spacer()
                Text("Media")
                    .tapAction {
                        self.leftPadding = 200
                }
                Spacer()
                Text("Likes")
            }
            .frame(height: 50)
            .padding(.horizontal, 10)
            HStack {
                Rectangle()
                    .frame(width: self.underLineWidth, height: 2, alignment: .bottom)
                    .padding(.leading, leftPadding)
                    .animation(.basic())
                Spacer()
            }
        } …
Run Code Online (Sandbox Code Playgroud)

ios swiftui

16
推荐指数
2
解决办法
5298
查看次数

引用Microsoft.Build和System.IO.Compression时出现MissingMethodException

我有一个"经典桌面".NET项目,它引用Microsoft.Build了NuGet和System.IO.Compression/ System.IO.Compression.FileSystem或.NET SDK/GAC中的15.1 .

我正在尝试将其升级到Microsoft.Build15.3.

Microsoft.Build15.3引入了对System.IO.Compression4.1.2.0 的依赖.System.IO.Compression.NET Framework中的版本是4.0.0.0.

如果我像这样编译,我收到一个警告,无法解决程序集冲突,但我的代码工作:

警告MSB3277:发现无法解析的同一依赖程序集的不同版本之间发生冲突.当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出.

将构建日志详细程度设置为Detailed会产生此输出:

1>  There was a conflict between "System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" and "System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
1>      "System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was chosen because it was primary and "System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" was not.
1>      References which depend on "System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" [C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.IO.Compression.dll].
1>          C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6.1\System.IO.Compression.dll
1>            Project file item includes which …
Run Code Online (Sandbox Code Playgroud)

.net c# msbuild clr nuget

5
推荐指数
1
解决办法
1268
查看次数

为什么我得到一个错误的文件描述符错误?

我为我制作的udp服务器程序的此代码提供了错误的文件描述符错误

from socket import *

s = socket(AF_INET, SOCK_DGRAM)
s.bind(('', 890))

while True:
   (c,a) = s.recvfrom(1024)
   msg = 'thanks for requesting'
   s.sendto(msg,a)
   s.close()
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是

Traceback (most recent call last):
File "udpserv.py", line 7, in <module>
(c,a) = s.recvfrom(1024)
 File "/usr/lib/python2.7/socket.py", line 174, in _dummy
raise error(EBADF, 'Bad file descriptor')
socket.error: [Errno 9] Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我怎么得到这个错误以及如何解决呢?

python sockets python-2.7 server

4
推荐指数
1
解决办法
6926
查看次数

标签 统计

.net ×2

c# ×2

.net-core ×1

clr ×1

ios ×1

msbuild ×1

nuget ×1

python ×1

python-2.7 ×1

server ×1

sockets ×1

swiftui ×1

windows ×1

windows-11 ×1