win11系统中开源命令行工具ViveTool怎么用?通过这款工具,你不仅可以启用新的 API,而且还能解锁一些微软尚未公开,或者是已经公开但是并未全面开放测试的功能,详细请看下文介绍
想要解锁微软 Win11 隐藏或者尚未完全推广的新功能 / 新特性吗?开源命令行工具 ViveTool 你需要了解下。通过这款工具,你不仅可以启用新的 API,而且还能解锁一些微软尚未公开,或者是已经公开但是并未全面开放测试的功能。
其中一个典型例子就是文件管理器的标签页功能,微软在上线初期仅面向少量 Dev 频道的 Windows Insider 项目成员开放,但是通过这款工具普通 Dev 频道用户也可以解锁该功能。
而且伴随着解锁的隐藏功能越来越多,ViveTool 工具的用户规模正在快速膨胀中。我们也希望借此时机,向新老读者介绍下这款开源工具,希望对你们的日常 Win11 使用提供一些帮助。
我们同样以文件管理器的标签页功能为例,从微软第一次功能投放到 Windows 11 22H2 功能更新中正式上线,其中经历了很长一段测试时间。
首先微软会将文件管理器的标签页功能添加到 Windows 代码库中,然后通过更新渠道、服务器端的 A / B 测试等几个因素进入到 Windows Insider 的渠道中,经项目成员测试之后才正式上线。
而其中大多数实验性功能都是通过名为 Windows Feature Store 的核心系统组件来控制的。该核心组件在微软内部称之为“Velocity”,在 Win10、Win11 系统上控制着服务器端 A / B 等功能测试进度。
而这个核心组件又属于 Windows Notification Facility (WNF) 核心组件,后者用于调度包括内核组件、系统服务和用户空间应用程序在内的系统进程。
构建各种功能的模块化基础设施,本质上是设计一个可控的推出模式的方式。例如,Windows Insider Program 被用来向早期的更新提供正在进行中的功能,这些功能后来被逐步打上补丁,一旦达到稳定的里程碑,随后为每个用户启用。如果一个特定的功能包含一个灾难性的错误或有一个安全漏洞,它可以被内核无缝禁用。
微软出于安全方面的考虑,Windows Feature Store 默认情况下被 Windows 内核严密保护,普通用户无法使用传统的二进制补丁技术来强行启用这些功能。
无论是 Win11 预览版还是稳定版,微软都在该版本中提供了大量的“功能”,有些已经提供给用户,有些则是通过“注释”的方式让其处于休眠状态。
远程协调的 A / B 测试(也称为分割测试)可以确保持续改进,并在多种配置中快速反馈循环。Windows Feature Store 通过切换状态来保障随机化的实验过程。
幸运的是开发人员发现可以对存储在 Windows Feature Store 中的数据进行操作。这些才华横溢的开发者通过逆向开发,发现了 Windows 系统中的内部功能控制 API。
通过访问 Windows Feature Store,就可以让你的电脑绕过服务器 A / B 测试。目前这方面的应用主要有 Rafael Rivera 的 Mach2,以及 Lucas(又名 thebookisclosed)的 ViVeTool 等应用程序。本文重点介绍 ViVeTool 工具,感兴趣的 我们网友可以点击上述链接进行了解。
在某些情况下,你也许可以修改注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FeatureManagement\Overrides\ 来改变 Windows Feature Store 的变量。不过小编推荐 我们网友还是选择上述工具比较好,避免出现不可预见的情况。
在正式介绍 ViveTool 工具之前,我们还需要了解一个 Feature ID 的概念。Windows Feature Store 中的每项功能都有一个独立的 Feature ID 编号,比如 26008830 对应的是平板电脑优化的任务栏。每个 Feature ID 有三种状态。
默认状态(0):这是某一特定功能的正常行为。
禁用(1):这将完全禁用该功能。
启用(2):这将强行启用该功能。
Mach2 的开发者为每个 Insider 预览版维护了一个 Feature ID 的列表。Repo 还包含了不同版本之间的变化,这对于识别新的隐藏功能很有用。你也可以使用 ViVeTool 的图形分叉(ViVeTool GUI)来搜索任意 Windows 版本的可用 Feature ID。
需要注意的是,修改 Feature ID 可能会导致系统不稳定 / 崩溃,甚至可能会破坏核心操作系统模块导致 Windows 系统完全无法使用。在启用某些 Feature ID 之后可能导致无法恢复的永久性改变。因此请 我们网友在决定修改之前,请妥善保护好你的资料,相关风险请自行承担。
由于 Windows Update 和 Windows Feature Store 直接关联,因此某些改变可能会导致你的设备处于不支持的状态。因此在确认执行 ViveTool 操作之前请做好备份,也不要在生产力设备上使用。
以下是一些主流的 Windows 功能和对应的 Feature ID:
功能描述 | Feature ID | Windows 门槛版本 |
文件管理器中的标签页功能 | 37634385 | 21536 |
针对平板优化的任务栏 | 26008830 | 25197 |
重新设计的 Widgets UI | 40772499 | 25227, 22623.746 |
全新的系统果盘 | 38764045 | 25211 |
Widgets 设置菜单 | 38652916 | 25217 |
任务管理器中的新搜索功能 | 39420424 | 25231 |
桌面上的搜索条 | 37969115 | 25120 |
设置中的动画导航面板图标 | 34878152 | 25197 |
更现代的打开方式菜单 | 36302090 | 25151, 22622.290 |
ViveTool 是一款开源的 CLI 工具,由名为 ViVe 的 C# 软件库提供。如果你想在 Win11 设备上解锁隐藏功能,那么请按照以下步骤进行:
1. 从 Github 官网下载 ViveTool 工具
2. 解压到任意位置
3. 打开解压缩的文件夹,会看到 4 个文件
4. 在文件夹页面空白区域,按住 Shift 按钮右键
5. 在菜单中选择“在此处打开命令行模式”或者选择“在此处打开 PowerShell 窗口”
6. 找到你想要启用某项隐藏功能的 Feature ID
7. 然后输入 vivetool /enable/ id:xxx(此处修改为 Feature ID) 命令,例如“vivetool /enable /id:39263329 /variant:1”命令,就是短按钮,带有放大镜和 "搜索" 字样。
8. 如果启用成功,应该会返回“Successfully set feature configuration”的提示。
9. 关闭命令行窗口,重启系统,这些改动设置应该就会生效。
如果你想要恢复过来,只需要将命令行中的“/enable”修改为“/disable”就可以了。
除了上述常规操作之外,ViVeTool 还支持添加其它功能选项,其中包括:
/enable 启用一个功能。你将需要一个 Feature ID 来启用一个特定的功能。
/disable 停用一个功能
/query 列出所有现有的功能配置。你可以检查 Windows Feature Store 中所有 Feature ID 以及状态(包括已启用、已禁用或默认),ID 的优先级(服务或用户),以及类型(Experiment 或者 Override)。
/addsub 添加功能使用情况订阅
/notifyusage 取消功能使用情况订阅
/reset 移除您所启用的特定功能的自定义配置
/delsub 移除一个功能使用订阅
/import 导入自定义功能配置
/appupdate 检查本工具的新版本
/export 输出自定义功能配置
/fullreset 移除所有的自定义功能配置,这有助于撤销所有由你启用 / 禁用的功能等等。
Win11新功能泄露,微软还没有公开谈论这个新的音量合成器,其被隐藏在代码中,详细请看下文介绍
Windows 11 将在 2023 年晚些时候将进行另一次大更新,在该系统的预览版中的一些发现显示,微软正在测试一些新的令人兴奋的功能。
一个新的音量合成器
改变单个应用程序和浏览器音量的最快捷方式是点击音量图标,打开音量合成器。Windows 11 的音量合成器只能通过设置应用程序访问,不过微软终于在测试一个新的现代音量合成器,可以直接通过任务栏访问,类似于 Windows 10 的音量合成器。
微软还没有公开谈论这个新的音量合成器,其被隐藏在代码中。正如在上面的截图中所看到的,用户可以快速调低或增加任何打开的应用程序的音量,用户也可以将任何应用程序静音,使另一个应用程序或系统声音更大。这个想法是为了使 Windows 10 中的声音管理更加容易。
微软正在 Windows Update->Windows Insider Program 页面内测试一个名为“AllowExperimentalFeatures(允许测试功能)”的新选项。
顾名思义,AllowExperimentalFeatures 允许 Windows Insider Program 中的测试者打开公司禁用的功能。
Windows 11 还将获得一个新的文件资源管理器,有一个基于 XAML 的主页,同时集成微软 365。
新的主页紧跟 Windows 11 的风格,地址栏和搜索栏的边角更加圆润。重新设计的文件管理器更像微软 365 仪表板或网络浏览器,而不是传统的文件管理器。
我们了解到,文件资源管理器有一个新的“推荐文件”选项卡,当用户选择任何文件时,会使用微软 365 来推荐类似的文件。文件资源管理器还可以显示电子邮件线程、评论、朋友之间的对话以及文件何时被同事共享。
据消息人士称,微软正在考虑将微软 365 的功能引入文件管理器的想法。使用现有的外壳是不可能的,这就是为什么新的文件资源管理器使用基于网络的 XAML 设计,允许用户在文件管理界面中直接访问微软 365 的内容,并通过一个名为“标签”的新功能来组织所有内容。
微软仍在开发新的文件资源管理器,计划可能会有变化,但微软 365 更深入地整合到 Windows 11 中似乎是该公司的长期计划。
Win11怎么设置开机自动开启Wifi热点?如果我们的电脑自带无线网卡,就可以在连接有线网络时通过开启热点的方式让其他用户连接到wifi网络中来,下面我们就来看看Win11 Wifi热点开机启动设置技巧
有些使用Win11系统的用户想设置wifi热点开机启动,但是不知道怎么设置,这篇文章是本站给大家分享的方法。
1、首先,按键盘上的【 Win + X 】组合键,或右键点击任务栏上的【Windows徽标】,在打开的右键菜单项中,选择【终端(管理员)】;
2、用户账户控制窗口,你要允许此应用对你的设备进行更改吗?点击【是】;
3、管理员:Windows PowerShell窗口,输入并执行以下命令:
set-executionpolicy remotesigned
4、打开文件资源管理器,并在地址栏输入:
%appdata%\Microsoft\Windows\Start Menu\Programs\Startup
5、打开的文件夹中,空白处,点击【右键】,在打开的菜单项中,选择【新建文本文档】;
6、新建的文本文档窗口,输入以下内容:
powershell -executionpolicy remotesigned -file
"%appdata%\Microsoft\Windows\Start Menu\Programs\pondsihotspot.ps1"
exit
7、点击左上角的【文件】,在打开的下拉项中,选择【另存为】;
8、另存为窗口,注意两个地方:1)文件名填入以【.bat】结尾的名称,保存类型选择【所有文件】2)编码选择【ANSI】最后点击【保存】。
9、再打开文件资源管理器,并在地址栏输入:
%appdata%\Microsoft\Windows\Start Menu\Programs
10、打开的文件夹中,空白处,点击【右键】,在打开的菜单项中,选择【新建文本文档】;
新建的文本文档窗口,输入以下内容:
Add-Type -AssemblyName System.Runtime.WindowsRuntime
$asTaskGeneric = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and $_.GetParameters()[0].ParameterType.Name -eq 'IAsyncOperation`1' })[0]
Function Await($WinRtTask, $ResultType) {
$asTask = $asTaskGeneric.MakeGenericMethod($ResultType)
$netTask = $asTask.Invoke($null, @($WinRtTask))
$netTask.Wait(-1) | Out-Null
$netTask.Result
}
Function AwaitAction($WinRtAction) {
$asTask = ([System.WindowsRuntimeSystemExtensions].GetMethods() | ? { $_.Name -eq 'AsTask' -and $_.GetParameters().Count -eq 1 -and !$_.IsGenericMethod })[0]
$netTask = $asTask.Invoke($null, @($WinRtAction))
$netTask.Wait(-1) | Out-Null
}
$connectionProfile = [Windows.Networking.Connectivity.NetworkInformation,Windows.Networking.Connectivity,ContentType=WindowsRuntime]::GetInternetConnectionProfile()
$tetheringManager = [Windows.Networking.NetworkOperators.NetworkOperatorTetheringManager,Windows.Networking.NetworkOperators,ContentType=WindowsRuntime]::CreateFromConnectionProfile($connectionProfile)
if ($tetheringManager.TetheringOperationalState -eq 1) {
"Hotspot is already On!"
}
else{
"Hotspot is off! Turning it on"
Await ($tetheringManager.StartTetheringAsync()) ([Windows.Networking.NetworkOperators.NetworkOperatorTetheringOperationResult])
}
再点击左上角的【文件】,打开的下拉项中,选择【另存为】;
12、另存为窗口,注意两个地方:
1)文件名填入以【.ps1】结尾的名称,保存类型选择【所有文件】
2)编码选择【ANSI】最后点击【保存】。
最后运行【wifi.bat】,测试能否打开热点。
以上就是Win11 Wifi热点开机启动设置技巧,希望大家喜欢。
300+Python经典编程案例
50G+学习视频教程
点击拿去
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在使用omniauth/openid时遇到了一些麻烦。在尝试进行身份验证时,我在日志中发现了这一点:OpenID::FetchingError:Errorfetchinghttps://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username:undefinedmethod`io'fornil:NilClass重要的是undefinedmethodio'fornil:NilClass来自openid/fetchers.rb,在下面的代码片段中:moduleNetclass
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain