首页 > 解决方案 > HKEY_CLASSES_ROOT\Directory\Background\shell 的问题

问题描述

我尝试使用上下文菜单将 Windows 资源管理器左栏中的/任何目录的名称发送到我在 Raku 中编写的程序。

我已将以下内容写入注册表

[HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithFileAttributes.pl6\command]
@="\"C:\\rakudo\\bin\\raku.exe\" \"K:\\Windows\\NtUtil\\FileAttributes.pl6\" \"%V\""

从密钥本身复制它看起来像:

"C:\rakudo\bin\raku.exe" "K:\Windows\NtUtil\FileAttributes.pl6" "%V"

当我右键单击左列中的目录并左键单击 FileAttributes.pl6 时,它会在 shell 中启动 Raku,但什么也不做。它不会启动 FileAttrebes.pl6(或 -v 或 -V 或 -?)。

我如何告诉注册表将参数发送到 Raku?

非常感谢,-T

ps 我已经有来自右窗格的文件夹和文件正在工作

标签: windowsregistryraku

解决方案


我在 Windows 10 Rakudo 版本 2020.01 上对此进行了测试。

首先我创建了一个测试脚本C:\Users\hakon\raku\test.raku

use v6;
say "Hello world!";
say "Arguments:";
say "'$_'" for @*ARGS;
sleep 5;

然后我打开regedit.exe并添加了密钥:

Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\OpenWithRaku\command

我将后一个command键的值设置为

C:\rakudo\bin\raku.exe C:\Users\hakon\raku\test.raku 1 2 3 "%V"

在此处输入图像描述


然后,我打开一个新的文件资源管理器窗口,从左侧窗格中选择一个文件夹,然后右键单击右侧窗格中目录列表下的空白区域,然后从上下文菜单中选择“OpenWithRaku”。

在此处输入图像描述


之后打开一个终端窗口,输出如下:

Hello world!
Arguments:
'1'
'2'
'3'
'C:\Users\hakon\raku'

所以它似乎在我的机器上运行良好。


推荐阅读