如何将我的右键菜单条目添加到Windows 11的现代上下文菜单中?

3
我已经编写了这个PowerShell脚本,可以自动阻止Windows防火墙中文件夹内的可执行文件。
$currentdir = get-Location
cd $currentdir



function FirewallBlock { 
    param ($exes)
    
    
           $exes | ForEach-Object { New-NetFirewallRule -DisplayName "$_.name inbound" -Direction Inbound -Action Block -Profile Any -Program $_.DirectoryName }
           $exes | ForEach-Object { New-NetFirewallRule -DisplayName "$_.name outbound" -Direction Outbound -Action Block -Profile Any -Program $_.DirectoryName }
                 
}


$programs = dir -Recurse *.exe
FirewallBlock ($programs)

通过创建以下两个注册表键,将其添加到旧样式上下文菜单中:

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\Firewall

并且这里

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\Firewall\command

防火墙密钥的默认名称和值为“防火墙阻止程序”。
命令键的默认名称和字符串值为:
powershell -command "Start-Process pwsh.exe -ArgumentList '-file C:\Users\UserName\OneDrive\Desktop\Firewall.ps1' -Verb runAs"

我该如何在 Windows 11 的新现代上下文菜单样式中添加此上下文菜单选项?
到目前为止,我找到了这个链接,但是无法确定是否必须将这个简单的 PowerShell 脚本创建为程序才能将其添加到菜单中。
链接:https://blogs.windows.com/windowsdeveloper/2021/07/19/extending-the-context-menu-and-share-dialog-in-windows-11/

你需要在一个DLL中实现IExplorerCommand接口。通过快速搜索,我找到了C++的示例代码 - zett42
@zett42 谢谢,我对C++不太熟悉,你能详细解释一下并可能发表一个完整的答案吗?这将对很多人有帮助,因为这是一个新的话题 :) - user20225877
我得自己先研究一下,但目前对此并不感兴趣。也许有一种免费工具可以向新的上下文菜单中添加自定义条目。 - zett42
1个回答

0

我已经寻找同样的东西很长一段时间了,最终找到了最好的方法来做到这一点!

实际上,你可以在不制作整个应用程序的情况下完成此操作。你可以使用 Microsoft Store 中的 自定义上下文菜单 应用程序,它允许您向 新建 的 Windows 11 上下文菜单中添加任何内容。

我已经不时地寻找这个解决方案大约半年了,现在找到了一个可行的解决办法,感觉很好。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接