當我使用註冊表項,如下所示添加到Windows資源管理器右鍵菜單項:運行位於%APPDATA%從上下文菜單.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文件,同時將它存儲在%的應用程序數據%的子文件夾,從上下文菜單命令來運行?
編輯
我曾嘗試使用下面的代碼創建代碼中的註冊表項:
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進程。如果我刪除命令窗口,兩個進程都會消失。有沒有什麼辦法可以自動終止這些進程而不用按名稱殺死它們,這可能會產生不良後果。
我認爲動態擴展的唯一原因是在用戶重新定位配置文件時保持一切正常工作,否則你是對的,這是不需要的。 –
感謝您的一些偉大的建議 - 非常有幫助 – SimonKravis
當我將@Compo建議的字符串添加到註冊表項時,它會嘗試打開我右鍵單擊並選擇了類似文件但不寫入TestFilePath註冊表項的文件 – SimonKravis