赞
踩
win + r 输入 regedit 进去注册表
# HKEY_CLASSES_ROOT\*\shell
#### icon填法
### 可以在 (这个是在桌面添加右键菜单)
#### \HKEY_CLASSES_ROOT\DesktopBackground
### 也可以在 (这个是在文件空白位置右键菜单)
#### \HKEY_CLASSES_ROOT\Directory\Background

这个是路径后参数的具体效果

Web
shell
Demo
shell
vscode
command

出处:win10自定义鼠标右键多级菜单(包含桌面)_KinokoYm的博客-CSDN博客
=======================================================================================











出处:注册表管理右键菜单_yanammm的博客-CSDN博客_注册表管理右键菜单
=======================================================================================
最近尤其项目需要想给文件添加一个右键菜单,当且仅当右键该文件的时候,右键菜单显示“XXXXTest”
原本以为添加一个右键菜单是一个很简单的事情,添加一个command命令即可,但是后来发现command有一定局限性,最终采用了shell handler方式
添加右键菜单有两种方式:
一个command命令可以添加给某一个应用程序关联的文件类型a File Type ProgID 或者某一系统子项Windows Subkey
应用程序注册的关联文件类型
系统默认提供的SubKey
上述添加右键菜单有一个局限性就是没有针对某一个特定文件添加右键菜单,通过上述方式添加的右键菜单都是一类型文件共有
显然我们遇到的问题,微软肯定也收到多类似需求并提供了方法:win7之后的系统可以通过添加特定条件Advanced Query Syntax来满足这类需求
因此我们可以给command添加子健AppliesTo限定我们右键添加的条件,如果一个文件名称中包含exampleText1,那么此右键功能是可以的
通过这种方法有一定的局限性,第一限定性比较强,第二win7之前的系统并不支持例如XP
静态添加右键菜单还有很多技巧,例如级联菜单、shift菜单、以及其他接口方法等,静态添加右键菜单简单方便易维护,具体的可以查看MSDN文档
有静态方式就有动态方式,动态方式就是通过windows系统外壳接口实现动态添加右键菜单,静态方式简单方便,动态方式灵活复杂,menu handler 可以动态判断是否添加右键菜单,自定义复杂的右键响应功能
实现menu handler之后,explorer加载的时候会调用我们实现的接口,动态添加右键功能以及响应右键功能
menu handler其实是一个COM组件的dll,具体实现后面再讲,网上也有很多类似的资料
实现menu handler主要实现两个接口IShellExtInit和IContextMenu
STDMETHODIMP Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY):初始化接口,可以获取右键目标,自定义是否需要添加右键功能,本例中通过此函数判断目标文件名,如果右键的是我们的对象则添加右键菜单,否则不添加
STDMETHODIMP GetCommandString(UINT_PTR, UINT, UINT*, LPSTR, UINT):系统帮助信息接口,本例中不提供帮助信息直接返回
STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO):右键菜单响应接口,当点击右键菜单时执行,本例中我们直接调用第三方exe显示版本信息
STDMETHODIMP QueryContextMenu(HMENU, UINT, UINT, UINT, UINT):右键菜单添加接口,本例中添加一个右键菜单
接口具体用法和参数说明可以查阅MSDN
参看文献:
https://msdn.microsoft.com/zh-cn/library/windows/desktop/cc144169(v=vs.85).aspx
创建快捷菜单处理程序 - Win32 apps | Microsoft Docs
出处:Windows特定文件添加右键菜单(一)_大飞的江湖的博客-CSDN博客
给右键添加菜单项,微软首先推荐静态方式,即给文件类型或者系统子健添加一个conmmand命令
如果要添加一个右键菜单项,首先考虑添加范围,1)某一系统子健(系统所有文件、系统所有目录、系统空白右键、shift右键等);2)某一文件类型添加
常用的子健:
HKEY_CLASSES_ROOT*:系统所有文件,右键系统任一文件都会添加右键菜单
HKEY_CLASSES_ROOT\AllFilesystemObjects:系统所有文件和文件夹,右键任一文件或者文件夹都会添加右键菜单
HKEY_CLASSES_ROOT\Folder:系统所有文件夹,右键系统任一文件夹都会添加右键菜单
HKEY_CLASSES_ROOT\Directory:系统所有目录,右键系统任一文件夹都会添加右键菜单
HKEY_CLASSES_ROOT\Directory\Background:系统文件夹空白处右键,在文件夹内空白处右键都会添加右键菜单
其他详情参考MSDN
具体在何处添加,根据自己需求处理,有可能会在多处都添加;有兴趣的可以仔细看一下自己的注册表,或者用“右键管理工具”把右键功能全部列出来,有的右键可能在多个子健下都有添加,或者同一类型的右键功能可能是在不同子健下添加的
以HKEY_CLASSES_ROOT*为例
效果如下所示
command数据可以添加参数,具体使用细节可以查考相关资料,下面给上述添加一个参数接受文件名称,在命令之后添加%1接受文件名称
某一文件类型添加
给某一文件类型添加右键菜单,首先要注册文件类型,给系统注册自己的文件类型,指明文件后缀名
同时添加文件关联子项,注册右键菜单
效果如下
特定文件添加右键菜单
前面示例都是如何添加文件菜单,但是都是给某一类型文件添加的右键菜单,如果想给某个特定文件添加右键菜单可以通过添加值“AppliesTo”来实现简单过滤
因此我们可以给command添加子健AppliesTo限定我们右键添加的条件,如果一个文件名称中包含exampleText1,那么此右键功能是可以的
上述三个文件只有在右键”myTest.MyFileType”的时候才会有右键菜单,右键其他两个不会有右键菜单
AppliesTo的局限性在于只支持win7之后的系统,win7之前的系统不支持
出处:Windows特定文件添加右键菜单(二)_大飞的江湖的博客-CSDN博客_文件右键菜单
Menu Handler实现右键菜单控制
微软提供了一系列强大并且灵活Handler供开发者使用,帮助我们实现更加多样化的功能;在shell执行命令或者工作之前,留给开发者一个机会来自定义实现;
关联文件类型或者可以指定文件类型的handler
没有关联文件类型但是可以被调用的Handler
我们的目标是添加右键菜单,也就是Shortcut menu Handler,在文件右键菜单显示之前,自定义添加右键菜单
我用的开发平台是VS2010,VS创建ATL COM组件的方法网上很多,也可以用其他工具,平台没有局限性
具体实现接口建议参考官方文档:
使用动态谓词自定义快捷菜单 - Win32 apps | Microsoft Docs
实现menu handler主要实现两个接口IShellExtInit和IContextMenu
- // IShellExtInit
- STDMETHODIMP Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
- // IContextMenu
- STDMETHODIMP GetCommandString(UINT_PTR, UINT, UINT*, LPSTR, UINT);
- STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO);
- STDMETHODIMP QueryContextMenu(HMENU, UINT, UINT, UINT, UINT);
STDMETHODIMP Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY):初始化接口,可以获取右键目标,自定义是否需要添加右键功能,本例中通过此函数判断目标文件名,如果右键的是我们的对象则添加右键菜单,否则不添加
- TDMETHODIMP CMenuHandler::Initialize(LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, HKEY hProgID)
- {
- FORMATETC fmt = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
- STGMEDIUM stg = { TYMED_HGLOBAL };
- HDROP hDrop = NULL;
-
- if (NULL == pDataObj)
- return E_INVALIDARG;
-
- // 从IDataObject接口中获取CF_HDROP数据
- if (FAILED(pDataObj->GetData(&fmt, &stg)))
- return E_INVALIDARG;
-
- // 获取指向实际数据的指针
- hDrop = (HDROP)GlobalLock(stg.hGlobal);
- if (hDrop == NULL)
- {
- ReleaseStgMedium(&stg);
- return E_INVALIDARG;
- }
-
- // 查询选择的文件数量
- UINT uFilesCount = DragQueryFile(hDrop, 0xFFFFFFFF, NULL, 0);
-
- if (1 != uFilesCount)
- {
- GlobalUnlock(stg.hGlobal);
- ReleaseStgMedium(&stg);
- return E_INVALIDARG;
- }
-
- // 将文件名称保存在变量中
- DragQueryFile(hDrop, 0, m_szFilename, MAX_PATH);
-
- // 判断名称是否包含GCCP5 以及是否存在exe
- TCHAR *sGCCP64 = _T("XXXX64.exe");
- TCHAR *sGCCP = _T("XXXX.exe");
-
- HRESULT state = E_INVALIDARG;
- if (_tcsstr(m_szFilename, sGCCP64) && (needCheckVersionInfo(TRUE)))
- {
- // 64位版本
- state = S_OK;
- }
- else if (_tcsstr(m_szFilename, sGCCP) && (needCheckVersionInfo(FALSE)))
- {
- // 32位版本
- state = S_OK;
- }
- else
- {
- // 不是目标程序 不添加右键
- state = E_INVALIDARG;
- }
-
- GlobalUnlock(stg.hGlobal);
- ReleaseStgMedium(&stg);
- return state;
- }

STDMETHODIMP GetCommandString(UINT_PTR, UINT, UINT*, LPSTR, UINT):系统帮助信息接口,本例中不提供帮助信息直接返回
- STDMETHODIMP CMenuHandler::GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT* pwReserved, LPSTR pszName, UINT cchMax)
- {
- // 不实现 不提供帮助信息
- return E_NOTIMPL;
- }
STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO):右键菜单响应接口,当点击右键菜单时执行,本例中我们直接调用第三方exe显示版本信息
- STDMETHODIMP CMenuHandler::InvokeCommand(LPCMINVOKECOMMANDINFO pCmdInfo)
- {
- if (0 != HIWORD(pCmdInfo->lpVerb))
- return E_INVALIDARG;
-
- switch (LOWORD(pCmdInfo->lpVerb))
- {
- case 0:
- {
- // dll注册是根据系统位数来的,但是调用exe位数得根据版本来
- DWORD dwRet, dwErr;
- LPTSTR pszOldVal = NULL;
- LPTSTR pszNewVal = NULL;
- BOOL fExist;
-
- pszOldVal = (LPTSTR)malloc(BUFSIZE*sizeof(TCHAR));
-
- if (NULL == pszOldVal)
- {
- return E_INVALIDARG;
- }
-
- // 获取当前环境变量
- dwRet = GetEnvironmentVariable(_T("Path"), pszOldVal, BUFSIZE);
-
- if (0 == dwRet)
- {
- // 获取失败 没有拿到该环境变量
- dwErr = GetLastError();
- if (ERROR_ENVVAR_NOT_FOUND == dwErr)
- {
- fExist = FALSE;
- }
- }
- else if (BUFSIZE < dwRet)
- {
- // Path路劲太长,缓存大小不够,从新根据dwRet大小分配
- pszOldVal = (LPTSTR)realloc(pszOldVal, dwRet*sizeof(TCHAR));
- if (NULL == pszOldVal)
- {
- return E_INVALIDARG;
- }
- // 获取环境变量
- dwRet = GetEnvironmentVariable(_T("Path"), pszOldVal, dwRet);
-
- if (!dwRet)
- {
- // 获取失败 没有拿到环境变量
- fExist = FALSE;
- }
- else
- {
- fExist = TRUE;
- }
- }
- else
- {
- // 直接获取环境变量
- fExist = TRUE;
- }
-
- // MessageBox(pCmdInfo->hwnd, pszOldVal, _T("Test"), MB_OK);
-
- // 追加Bin目录到环境变量
- pszNewVal = (LPTSTR)malloc((dwRet + MAX_PATH)*sizeof(TCHAR));
-
- if (NULL == pszNewVal)
- {
- if (!pszOldVal)
- {
- free(pszOldVal);
- pszOldVal = NULL;
- }
- return E_INVALIDARG;
- }
-
- _tcsncpy_s(pszNewVal, (dwRet + MAX_PATH), m_szBinname, _tcslen(m_szBinname));
- _tcscat_s(pszNewVal, (dwRet + MAX_PATH), _T(";"));
- _tcscat_s(pszNewVal, (dwRet + MAX_PATH), pszOldVal);
-
- // MessageBox(pCmdInfo->hwnd, pszNewVal, _T("Test"), MB_OK);
-
- if (!SetEnvironmentVariable(_T("Path"), pszNewVal))
- {
- // 环境变量设置失败 exe是无法启动的 直接退出
- if (!pszOldVal)
- {
- free(pszOldVal);
- pszOldVal = NULL;
- }
- if (!pszNewVal)
- {
- free(pszNewVal);
- pszNewVal = NULL;
- }
- return E_INVALIDARG;
- }
-
- try
- {
- UINT code = (UINT)ShellExecute(pCmdInfo->hwnd, _T("open"), m_szExename, _T(""), m_szBinname, SW_SHOWNORMAL);
- }
- catch (...)
- {
-
- }
-
- // 重置环境变量
- if (fExist)
- {
- if (!SetEnvironmentVariable(_T("Path"), pszOldVal))
- {
- return E_INVALIDARG;
- }
- }
- else
- {
- SetEnvironmentVariable(_T("Path"), NULL);
- }
-
- // 内存释放
- if (!pszOldVal)
- {
- free(pszOldVal);
- pszOldVal = NULL;
- }
- if (!pszNewVal)
- {
- free(pszNewVal);
- pszNewVal = NULL;
- }
-
- break;
- }
- default:
- {
- return E_INVALIDARG;
- break;
- }
- }
- return S_OK;
- }

STDMETHODIMP QueryContextMenu(HMENU, UINT, UINT, UINT, UINT):右键菜单添加接口,本例中添加一个右键菜单
- STDMETHODIMP CMenuHandler::QueryContextMenu(HMENU hmenu, UINT uMenuIndex, UINT uidFirstCmd, UINT uidLastCmd, UINT uFlags)
- {
- if (uFlags & CMF_DEFAULTONLY)
- return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 0);
-
- // 添加菜单
- InsertMenu(hmenu, uMenuIndex, MF_BYPOSITION, uidFirstCmd, _T("查看版本信息"));
-
- return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, 1);
- }
DLL创建完成之后,进行注册,测试效果OK,如果需要版本有安装程序,安装时候将dll注册
刚开始做的时候网上搜了很多人的例子,但是自己没有成功,之后将查看文档搞懂接口之后其实工作量不大,中间也遇到一些傻瓜式问题
1)dll注册的时候,64位注册64Dll,32位注册32位dll
2)32位dll无法注册成功:平台工具集要选择支持XP的平台工具集
3)dll被占用无法删除:可以进行重命名移动
出处:Windows特定文件添加右键菜单(三)_大飞的江湖的博客-CSDN博客
=======================================================================================
我发现在windows10系统中,默认的shift+鼠标右键只会出现PowerShell的打开命令,但是在实际使用过程中,有时候cmd中可以正常运行的指令在PowerShell中却无法运行,而且默认打开的PowerShell并不具备管理员权限,因此想要设置将cmd可以通过shift+鼠标右键选择打开,网上方法很多,亲自试了一些,由于涉及到注册表,当然是设置后想要移除时可以干净的移除最好啦。总结了一下,提供简单方便的方式来实现目的。具体如下。
记事本→新建文本文档,输入下面内容,
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere] [HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere] @="在此处打开命令行窗口" "Extended"="" [HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere\command] @="cmd.exe -noexit -command Set-Location -literalPath '%V'"
保存后文件重命名为OpenCmdHere.reg,双击文件运行即可。
如果你需要移除第1步中的操作,也很简单,记事本→新建文本文档,输入下面内容,
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\Background\shell\OpenCmdHere]
保存后文件重命名为RemoveCmdHere.reg,双击文件运行即可。
记事本→新建文本文档,输入下面内容,
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\Background\shell\runas] [HKEY_CLASSES_ROOT\Directory\Background\shell\runas] @="在此处打开命令行窗口(管理员)" "Extended"="" "HasLUAShield"="" [HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command] @="cmd.exe /s /k pushd \"%V\"" [-HKEY_CLASSES_ROOT\Drive\shell\runas] [HKEY_CLASSES_ROOT\Drive\shell\runas] @="在此处打开命令行窗口(管理员)" "Extended"="" "HasLUAShield"="" [HKEY_CLASSES_ROOT\Drive\shell\runas\command] @="cmd.exe /s /k pushd \"%V\"" [-HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas] [HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas] "Extended"="" "HasLUAShield"="" @="在此处打开命令行窗口(管理员)" [HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas\command] @="cmd.exe /s /k pushd \"%V\""
保存后文件重命名为OpenCmdHereAsAdmin.reg,双击文件运行即可。
如果你需要移除第3步中的操作,也很简单,记事本→新建文本文档,输入下面内容,
Windows Registry Editor Version 5.00 [-HKEY_CLASSES_ROOT\Directory\shell\runas] [-HKEY_CLASSES_ROOT\Directory\Background\shell\runas] [-HKEY_CLASSES_ROOT\Drive\shell\runas] [-HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas]
保存后文件重命名为RemoveCmdHereAsAdmin.reg,双击文件运行即可。
补充:
1、HasLUAShield:By creating a registry value named HasLUAShield (REG_SZ) on the static verb, you can add the UAC shield icon to the corresponding item in the right-click menu.
参考:https://www.winhelponline.com/blog/add-uac-shield-icon-right-click-context-menu-windows-7/
2、pushd:The Pushd command stores the current directory for use by the popd command, and then changes to the specified directory.
参考:http://www.windowscommandline.com/pushd/ 和 https://baike.baidu.com/item/pushd/8514754?fr=aladdin
添加前shift+鼠标右键如下:
添加完成后shift+鼠标右键如下:
记录一下,防止以后用到时不好找。
出处:Windows10下设置Shift+右键增加cmd_wyx0712的博客-CSDN博客_shift加右键
=======================================================================================
本文介绍添加系统右键菜单,效果如下图:

原理很简单就是给注册表添加值,以下是添加系统右键菜单所要涉及的值。
KEY值:
HKEY_CLASSES_ROOT\*\shell(所有文件的右键菜单)
HKEY_CLASSES_ROOT\directory\shell(所有文件目录的右键菜单)
具体操作:新建项【右键名称(ex:文件粉碎器)】 => 新建项【Command(启动命令,编辑设置值为启动程序物理路径+“ %1”)】
C# 获取系统右键菜单的文件目录代码:Environment.CommandLine。
《完》
=======================================================================================
自己写的几个示例,自己参考着改改吧
1)直接注册系统右键菜单
@echo off set batpath=\"D:\Program Files\webserver4.0\webserver4.0.exe\" /port:9090 /path:\"%%1\" REG Delete HKEY_CLASSES_ROOT\Directory\shell\测试IIS /f REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%"
2)先写好bat程序,如下:
@echo off set /a p=%random%%%(10600-10500+1)+10500 set batpath="D:\Program Files\webserver4.0\webserver4.0.exe" /port:%p% /path:"%1" taskkill /F /IM webserver4.0.exe start "" %batpath% echo http://localhost:%p%/ ::start http://localhost:%p%/
再注册系统右键菜单:
原理:把需要执行的的bat命令写入command默认值上,就可以执行了
方式一:会显示黑色命令行窗口
@echo off set batpath=\"%cd%\RunWebService.bat\" \"%%1\" REG Delete HKEY_CLASSES_ROOT\Directory\shell\测试IIS /f REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%"
方式二:
@echo off set batpath=mshta vbscript:createobject(\"wscript.shell\").run(\"C:\t1\RunWebService.bat %%1\",0)(window.close) REG Delete HKEY_CLASSES_ROOT\Directory\shell\测试IIS /f REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%"
方式三:
mshta javascript:new ActiveXObject("WScript.Shell").Run("cmd /c C:\t1\RunWebService.bat D:\Publish\TestWeb\TestShareFile",0);window.close()
方式四:使用start的/b选项
start "" /b "C:\t1\aa.bat"
懂得了上面的原理,就可以自己写右键菜单的命令
方式三和方式四,我自己没有测试过,有需要的自己去研究吧
说明:直接注册系统右键菜单的方式比较死板,简单,如果使用第二种方式,中间多一个bat就可以做很多事情了,其他的留给你们自己去发挥
如下内容,保存到 test.bat 文件
@echo off cls echo. echo 程序正在初始化. . . echo. echo %%1=%1 pause
注册系统右键菜单
@echo off set batpath=\"%cd%\test.bat\" \"%%1\" REG Delete HKEY_CLASSES_ROOT\Directory\shell\测试 /f REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试\command /ve /t REG_SZ /d "%batpath%"
3、创建自定义执行程序,并且分组

@echo off rem 注册文件夹空白处右键菜单 reg delete HKEY_CLASSES_ROOT\Directory\Background\Shell\测试分组 /f reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\测试分组 /v SubCommands /f reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\测试分组 /v icon /f /d "D:\Program Files\XMind 8 Update 7\workspace\.metadata\.plugins\org.xmind.ui.toolkit\webImages\0vsdbqg7htr08dc3a8793dksgu.ico" rem 注册文件夹右键菜单 reg delete HKEY_CLASSES_ROOT\Directory\Shell\测试分组 /f reg add HKEY_CLASSES_ROOT\Directory\Shell\测试分组 /v SubCommands /f reg add HKEY_CLASSES_ROOT\Directory\Shell\测试分组 /v icon /f /d "D:\Program Files\XMind 8 Update 7\workspace\.metadata\.plugins\org.xmind.ui.toolkit\webImages\0vsdbqg7htr08dc3a8793dksgu.ico" rem 注册【删除空文件夹】命令 set batpath=\"E:\Bat脚本\DelEmptyFolder.bat\" \"%%w\" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\测试分组\shell\删除空文件夹\command /ve /t REG_SZ /d "%batpath%" /f set batpath=\"E:\Bat脚本\DelEmptyFolder.bat\" \"%%1\" REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试分组\shell\删除空文件夹\command /ve /t REG_SZ /d "%batpath%" /f rem 注册【webserver】命令 ::set batpath=\"D:\Program Files\webserver4.0\webserver4.0.exe\" /port:9090 /path:\"%%1\" set batpath=mshta vbscript:createobject(\"wscript.shell\").run(\"C:\t1\RunWebService.bat %%w\",0)(window.close) reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\测试分组\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%" /f set batpath=mshta vbscript:createobject(\"wscript.shell\").run(\"C:\t1\RunWebService.bat %%1\",0)(window.close) REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试分组\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%" /f pause
优化了使用快捷键、自定义右键菜单名称、右键菜单位置等

@echo off set batpath=\"%cd%\aa.bat\" \"%%1\" REG Delete HKEY_CLASSES_ROOT\Directory\shell\测试 /f REG ADD HKEY_CLASSES_ROOT\Directory\shell\测试\command /ve /t REG_SZ /d "%batpath%" REG Delete HKEY_CLASSES_ROOT\Directory\shell\测试 /f rem 注册文件夹空白处菜单 reg delete HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /f reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v MUIVerb /f /d "常用Bat工具组(&Q)" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v position /f /d "top" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v SubCommands /f reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v Extended /f reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v icon /f /d "D:\Program Files\XMind 8 Update 7\workspace\.metadata\.plugins\org.xmind.ui.toolkit\webImages\0vsdbqg7htr08dc3a8793dksgu.ico" rem 注册文件夹右键菜单 reg delete HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组 /f reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v MUIVerb /f /d "常用Bat工具组(&Q)" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组 /v position /f /d "top" reg add HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组 /v SubCommands /f reg add HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组 /v Extended /f reg add HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组 /v icon /f /d "D:\Program Files\XMind 8 Update 7\workspace\.metadata\.plugins\org.xmind.ui.toolkit\webImages\0vsdbqg7htr08dc3a8793dksgu.ico" rem 注册【删除空文件夹】命令 set batpath=\"%cd%\DelEmptyFolder.bat\" \"%%w\" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\删除空文件夹 /v MUIVerb /f /d "删除空文件夹(&D)" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\删除空文件夹\command /ve /t REG_SZ /d "%batpath%" /f set batpath=\"%cd%\DelEmptyFolder.bat\" \"%%1\" reg add HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组\shell\删除空文件夹 /v MUIVerb /f /d "删除空文件夹(&D)" REG ADD HKEY_CLASSES_ROOT\Directory\shell\常用Bat工具组\shell\删除空文件夹\command /ve /t REG_SZ /d "%batpath%" /f rem 注册【webserver】命令 ::set batpath=\"D:\Program Files\webserver4.0\webserver4.0.exe\" /port:9090 /path:\"%%1\" set batpath=mshta vbscript:createobject(\"wscript.shell\").run(\"%cd%\RunWebService.bat %%w\",0)(window.close) reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\测试IIS /v MUIVerb /f /d "测试IIS(&I)" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%" /f set batpath=mshta vbscript:createobject(\"wscript.shell\").run(\"%cd%\RunWebService.bat %%1\",0)(window.close) reg add HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组\shell\测试IIS /v MUIVerb /f /d "测试IIS(&I)" REG ADD HKEY_CLASSES_ROOT\Directory\shell\常用Bat工具组\shell\测试IIS\command /ve /t REG_SZ /d "%batpath%" /f rem 注册【在此打开CMD命令】命令 set batpath=cmd.exe /s /k pushd \"%%V\" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\在此打开CMD /v MUIVerb /f /d "在此打开CMD(&C)" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\在此打开CMD\command /ve /t REG_SZ /d "%batpath%" /f ::set batpath=cmd.exe -noexit -command Set-Location -literalPath '%V' reg add HKEY_CLASSES_ROOT\Directory\Shell\常用Bat工具组\shell\在此打开CMD /v MUIVerb /f /d "在此打开CMD(&C)" REG ADD HKEY_CLASSES_ROOT\Directory\shell\常用Bat工具组\shell\在此打开CMD\command /ve /t REG_SZ /d "%batpath%" /f rem 注册【切换Wifi连接】命令 set batpath=mshta vbscript:createobject(\"wscript.shell\").run(\"%cd%\Wifi切换.bat\",0)(window.close) reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\切换Wifi连接 /v MUIVerb /f /d "切换Wifi连接(&W)" reg add HKEY_CLASSES_ROOT\Directory\Background\Shell\常用Bat工具组\shell\切换Wifi连接\command /ve /t REG_SZ /d "%batpath%" /f pause
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。