如何使用 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 任务栏中删除新闻和兴趣? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C#任务栏中的Windows 7进度条?

如何从任务栏中删除我的 javafx 程序

Tkinter,Windows:如何在没有标题栏的 Windows 任务栏中查看窗口?

使 Tkinter 窗口显示在任务栏中

从任务栏中隐藏应用程序

如何在 Windows 7 任务栏中显示进度(使用 Qt)?