Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击文件夹的空白部分时,Windows shell将项目添加到上下文菜单_Windows_Shell_Registry_Contextmenu - Fatal编程技术网

单击文件夹的空白部分时,Windows shell将项目添加到上下文菜单

单击文件夹的空白部分时,Windows shell将项目添加到上下文菜单,windows,shell,registry,contextmenu,Windows,Shell,Registry,Contextmenu,对不起,如果以前有人问过这个问题,我一直在四处寻找,很难找到我想要的 我知道如何将上下文菜单项添加到文件夹中,如下所示: [HKEY_CLASSES_ROOT\Folder\shell\console2] @="Open Console2 Here" [HKEY_CLASSES_ROOT\Folder\shell\console2\command] @="C:\\Program Files\\Console\\console.exe -d \"\"%1\"\"" 但是,这只适用于右键单击文件

对不起,如果以前有人问过这个问题,我一直在四处寻找,很难找到我想要的

我知道如何将上下文菜单项添加到文件夹中,如下所示:

[HKEY_CLASSES_ROOT\Folder\shell\console2]
@="Open Console2 Here"

[HKEY_CLASSES_ROOT\Folder\shell\console2\command]
@="C:\\Program Files\\Console\\console.exe -d \"\"%1\"\""

但是,这只适用于右键单击文件夹。我想要它,这样你就可以在文件夹中,并点击该文件夹的空白部分,并获得上下文菜单项以及。我也尝试了
HKEY\U CLASSES\U ROOT\Directory\shell
,但它也做了同样的事情。

我认为TortoiseSVN安装程序的相关部分是。也许你可以从中找出所有必要的注册表项。

我找到了答案。文件夹实际上是
Directory\Background
,您必须将
NoWorkingDirectory
的空字符串值添加到其中,命令中的
%1
将成为
%V

[HKEY_CLASSES_ROOT\Directory\Background\shell\console2]
@="Open Console2 Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\console2\command]
@="C:\\Program Files\\Console\\console.exe -d \"\"%V\"\""
资料来源:
萨维特在

@Ben Voigt上的评论提到了乌龟,你也可以看到,或者最后:;我想为XP做一些类似的事情,但我现在还有很多其他事情要做

作为一种解决方法,您只需在XP中打开一个文件夹,然后选择
视图->浏览器栏->文件夹
,将文件夹树置于左侧,然后您就可以右键单击该文件夹(活动文件夹会自动高亮显示)


这也可以在XP中实现。 首先打开用Windows键+R运行的程序, 然后在文本框中键入Regedit。 按回车键。 在注册表中打开注册表项:HKEY_CLASSES_ROOT 然后:* 现在您将看到一个名为:shell的键 右键单击shell并指向New。 单击键上的de菜单。 现在,键入要显示在右键单击菜单中的所选名称。 右键单击所选名称,再次指向“新建”,然后单击“关键点”。 现在输入:command 单击命令,然后在注册表的右窗格中双击(默认)。 在文本框“值数据”中,通过右键单击菜单中选择的名称键入要打开的应用程序的路径。 例如:“C:\Program Files\CCleaner\CCleaner.exe” 然后在路径%1后键入, 并在路径末端和%1之间留一个空格 应该是这样的:

C:\Program Files\CCleaner\CCleaner.exe“%1”

这样,就可以打开任何类型的应用程序。 只有一个缺点, 您必须右键单击另一个文件以查看所选名称,您可以使用该名称打开应用程序。
右键单击文件夹时,这将不起作用。

如果您喜欢MinGW,请看这里

#!/bin/sh
reg add 'HKCR\Directory\Background\shell\sh' -d 'Open Bash window here'

reg add 'HKCR\Directory\Background\shell\sh\command' \
-d 'C:\MinGW\msys\1.0\bin\sh.exe -l'

printf 'cd -' >> ~/.profile

控制台2岩石。我在浏览器上下文菜单中添加了一个“Cmd here(Console2)”项

将下面的文本保存在名为
open-console2.reg
的文件中,然后打开该文件将其导入Windows注册表

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2]
@="Cmd here (Console2)"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\console2\command]
@="\"C:\\Program Files (x86)\\Console2\\Console.exe\" -d \"%V\"\\"
额外的“bash here”项(假设您有一个名为“bash”的控制台2选项卡)


根据我对Windows XP(SP3)的个人体验,您可以使用以下.reg文件在当前目录下通过上下文菜单项打开Console2:


而不是:

C:\Program Files\Console\console.exe -d ""%1"" 

后者将在默认的开始目录中打开Console2。

以上所有操作都不适用于我

但确实如此(在Windows 7 Pro x64上测试):


用路径复制到C++的控制台副本。当然,你可以查看TurtoSISVN源代码,它将项目添加到那个菜单中。但是谢谢你的回答仅供参考:这在XP上不起作用。该注册表项仅适用于Vista和更高版本的操作系统。有人知道如何在xp上使用它吗?跨平台选项最好,但我会尽我所能。对于通过regedit util输入此选项的任何人,命令值应具有单斜杠,并且仅在%V周围加引号。根据路径

C:\Program Files(x86)\Console2\Console.exe-d“%V”的不同,类似于此
这在XP中可以正常工作,具体取决于您使用的编辑器以及您使用的是
regEdit4
还是
regedit5
格式(请遵循@gingerbreadboy关于单个斜杠的说明)。这里有一个来自微软的指南:@flakdineno Stefan指的是注册表项没有创建上下文菜单项,并不是说
regedit
拒绝您创建它。您的答案只是生成了与OP已经说过他知道如何做的相同的.reg导出,但是,您的解决方案甚至不适用于单击文件夹,至少,更重要的是,在OPO请求时,在Windows资源管理器窗口中单击空白。他(@user380527)自己的答案是正确的。为什么我可以导入这个?它说你只能从注册表编辑器导入二进制注册表文件?可能与字符编码有关?这会在右键单击文件夹/目录时将其添加到上下文菜单中,这很有用,但问题是如何将其添加到右键单击文件夹背景时显示的上下文菜单中。

  Windows Registry Editor Version 5.00 
[HKEY_CLASSES_ROOT\Folder\shell\console2]
@="Console2 Here"
[HKEY_CLASSES_ROOT\Folder\shell\console2\command]
@="C:\Program Files\Console\console.exe -d \"%1\""
C:\Program Files\Console\console.exe -d "%1"
C:\Program Files\Console\console.exe -d ""%1"" 
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\Open console here\command]
@="u:\\users\\dave\\data\\bin\\Console2\\Console.exe cmd -r \"/k pushd %L\""