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

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

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

从 key 本身复制它看起来像:
"C:\rakudo\bin\raku.exe" "K:\Windows\NtUtil\FileAttributes.pl6" "%V"

当我右键单击左列中的目录,然后左键单击 FileAttributes.pl6 时,它会在 shell 中启动 Raku,但不执行任何其他操作。它不会启动 FileAttrebes.pl6(或 -v 或 -V 或 -?)。

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

非常感谢,
-T

附言我已经有右侧 Pane 中的文件夹和文件正在工作

最佳答案

我在 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 并添加了 key :
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"

windows - HKEY_CLASSES_ROOT\Directory\Background\shell 的问题-LMLPHP

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

windows - HKEY_CLASSES_ROOT\Directory\Background\shell 的问题-LMLPHP

之后,一个终端窗口打开,输出如下:
Hello world!
Arguments:
'1'
'2'
'3'
'C:\Users\hakon\raku'

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

关于windows - HKEY_CLASSES_ROOT\Directory\Background\shell 的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60967993/

10-13 03:22