如何使用 C# 从 Windows 任务栏中删除新闻和兴趣? [关闭]
Posted
技术标签:
【中文标题】如何使用 C# 从 Windows 任务栏中删除新闻和兴趣? [关闭]【英文标题】:How do I remove the news and interests from windows taskbar with C#? [closed] 【发布时间】:2021-12-28 21:40:17 【问题描述】:我将如何使用 C# 从 Windows 任务栏中删除新闻和兴趣?我用谷歌搜索了它,但没有找到任何修复方法:(
【问题讨论】:
你不能。按设计。没有可公开访问的 API 允许程序编辑用户可控制的任务栏和开始菜单区域。 Otherwise they'd be filled with spammy toolbar crap like we had in IE6 days. 【参考方案1】:这里是如何做到的(而不是简单的右键单击任务栏,选择“新闻和兴趣”下的“关闭”)...
使用 nuget 包 Microsoft.Win32.Registry 和 Registry
类 (Registry Class) 访问和更新 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Feeds
DWORD ShellFeedsTaskbarViewMode
(0 = 显示图标和文本(默认)
1 = 仅显示图标
2 = 关闭)(参考 Windows Questions - 现在另存为 (WayBack))
using Microsoft.Win32;
:
private const string RegKeyName = @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Feeds";
private const string RegValueName = "ShellFeedsTaskbarViewMode";
:
var v = Convert.ToInt32(Registry.GetValue(RegKeyName, RegValueName, 99));
Console.WriteLine($"BEFORE:v");
Registry.SetValue(RegKeyName, RegValueName, 2, RegistryValueKind.DWord);
Console.WriteLine($"AFTER:Registry.GetValue(RegKeyName, RegValueName, string.Empty)");
输出(前提是你有必要的权限)...
BEFORE:0
AFTER:2
有关使用注册表的通常注意事项适用(您自行承担风险)。您可能还想为用户添加之后重启的提示。
这可能也很有趣(旧的,机器范围的启用/禁用),但我不确定它是否仍然有效。
//private const string RegKeyName = @"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Windows Feeds";
//private const string RegValueName = "EnableFeeds"; // Values 0, 1 for disable/enable
【讨论】:
2022 年 1 月,资源管理器处于活动状态时失败:资源管理器将在几毫秒内将其重置为零值。这个小批处理文件(在注册表更改后杀死,然后重新启动资源管理器)工作正常:gist.github.com/jpluimers/b48c20101480f45cf9992335d5932163(博客文章计划在明年发布,因为队列现在大约有 16 个月)以上是关于如何使用 C# 从 Windows 任务栏中删除新闻和兴趣? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章