添加系统右键带单

这里首先说一下: 打开注册表,找到HKEY_CLASSES_ROOT\Directory\shell 和   HKEY_CLASSES_ROOT\exefile\shell  

当对一个file(文件)右键时,找到的是Directory\shell里面的command

当对一个exe右键时,找到的是exefile\shell里面的command

其他也一样


主要思路: 通过操作注册表(我是对exe右键)在 HKEY_CLASSES_ROOT\exefile\shell  新建一个key,例如QQMusicEx,在里面新建一个key名字固定为command ,设置默认值为exe所在的绝对路径,另外对于图标问题是在QQMusicEx键下面设置一个新数据icon,data里面写exe所在的绝对路径




TCHAR exeFullPath[MAX_PATH]; // MAX_PATH
			TCHAR exePath[MAX_PATH];

			GetModuleFileName(NULL,exeFullPath,MAX_PATH);
			GetModuleFileName(NULL,exePath,MAX_PATH);

			strcat(exeFullPath," %1");

			HKEY hKey; 
			HKEY hMusicKey;  
			HKEY hCmdKey;   
			LPCTSTR strRegPath = "exefile\\shell";
			LPCTSTR strExePath = "QQMusicEx";

			if (RegOpenKeyEx(HKEY_CLASSES_ROOT, strRegPath, 0, KEY_ALL_ACCESS, &hKey) == ERROR_SUCCESS)        
			{
				 if(RegCreateKey(hKey,strExePath,&hMusicKey) == ERROR_SUCCESS)
				 {
					 if(ERROR_SUCCESS != ::RegSetValueEx(hMusicKey,_T("icon"), 0, REG_SZ, (CONST BYTE*)exePath, strlen(exePath)))
					 {
						 ::RegCloseKey(hKey);
						 return;
					 }

					if(RegCreateKey(hMusicKey,"Command",&hCmdKey) == ERROR_SUCCESS)
					{
						if (ERROR_SUCCESS != ::RegSetValueEx(hCmdKey,NULL, 0, REG_SZ, (CONST BYTE*)exeFullPath, strlen(exeFullPath)))
						{
							//AfxMessageBox(_T("错误"));
							::RegCloseKey(hKey);
							return;
						}
					}
				 }
			}
			::RegCloseKey(hKey);

例外这里用到了关于注册表的一些函数,相关操作 点击打开链接


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值