当我使用以下注册表项向Windows资源管理器上下文菜单中添加条目时:
我遇到了一个错误。
如果我将文件AddRightClickFile.bat复制到C:\ Windows \ System32并更改注册表条目,则可以...
没有错误发生。然而,我希望将AddRightClickFile.bat存储在%Appdata%\FindAlike中。
AddRightClickFile.bat中的代码为:
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Similar Files]
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Similar Files\command]
@="%AppData%\\FindAlike\\AddRightClickFile.bat \"%1\""
我遇到了一个错误。
Windows cannot access the specified device, path or file. You may not have the appropriate permissions to access the item.
如果我将文件AddRightClickFile.bat复制到C:\ Windows \ System32并更改注册表条目,则可以...
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Similar Files]
[HKEY_CURRENT_USER\SOFTWARE\Classes\*\shell\Similar Files\command]
@="AddRightClickFile.bat \"%1\""
没有错误发生。然而,我希望将AddRightClickFile.bat存储在%Appdata%\FindAlike中。
AddRightClickFile.bat中的代码为:
reg add "HKEY_CURRENT_USER\Software\FindAlike" /f /v "TestFilePath" /t REG_SZ /d %1
有没有办法让.bat文件在存储在%AppData%子文件夹中的同时,从上下文菜单命令运行?
编辑
我已经使用以下代码在代码中创建了注册表键:
RegistryKey rk = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Classes\*\shell\Similar Files\command");
string sValue = @"%AppData%\FindAlike\AddRightClickFile.bat ""%1""";
rk.SetValue("",sValue, RegistryValueKind.ExpandString);
将AddRightClickFile.bat设置如下:
start
reg add "HKEY_CURRENT_USER\Software\FindAlike" /f /v "RightClickFileName" /t REG_SZ /d %1
exit 0
这个方法可以成功运行,但会在我右键单击的文件所在目录中创建一个命令窗口。通过任务管理器查看进程,我发现会创建cmd.exe和conhost.exe进程。如果我关闭了命令窗口,这两个进程都会消失。有没有办法在不使用名称来结束这些进程的情况下自动终止它们,以免引起不必要的后果。