C++ Shell 上下文菜单扩展

标签 c++ windows shell-extensions

我尝试为 Windows 文件/文件夹创建上下文菜单扩展。我已经尝试了很多,但对我没有任何帮助。我已经有这样的 32 位系统扩展,但它已经过时了。我想使用 C++ 为 64 位系统重新创建它。

这个最接近我想做的:Klick 但这是针对 32 位系统的。阅读评论后,我能够为 x64 修改和构建它。

在我的 64 位系统上使用 system32/regsvr32.exe 注册它,表明它已成功注册。所有注册表项均已正确创建。但是菜单项没有出现。我不知道为什么...

有人可以帮助我吗?如果您愿意,我可以为您上传项目。

更新

我使用上面链接中的原始项目并更改了以下内容:

1) 将目标设置为“x64”

2) 由于我无法编译它,我更改了以下内容:

2.1) 在 stdafx.h 的包含之前我添加了:

#define _ATL_NO_UUIDOF

2.2) 我在这里将 UINT 更改为 UINT_PTR:

HRESULT CFSBankShellExtension::GetCommandString (
UINT_PTR idCmd, 
UINT uFlags, 
UINT* pwReserved,
LPSTR pszName, 
UINT cchMax )

3) 我将 .rgs 文件中的 txtfile 更改为 *,这样它应该适用于所有文件类型。

4) 我能够编译并注册它

如果你不能帮助我,如果你能上传一个模板,那会很酷,它可以在 x64 系统上工作。

最佳答案

这篇文章可能对您有所帮助,因为它对我的项目很有效。

Simple shell context menu

Context menus for all files, folders, and drives

You can also hookup context menus to all files, folders, and drives by adding entries to the file type's *, Directory, and Drive registry keys. For example, XP PowerToys adds the Open Command Window Here menu to all folders with the following registry script:

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\shell\cmd] @="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command] @="cmd.exe /k \"cd %L\""

关于C++ Shell 上下文菜单扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7305189/

相关文章:

c++ - (c++) 返回和函数输出之间的错误

windows - 使用 WiX 安装时启动外部服务

windows - 为什么 Windows Shell 上下文菜单处理程序会破坏 Windows 8/10 上的高级用户菜单 (Win+x)?

c++ - 在 "thin"64 位 DLL 包装器中包装 32 位 COM shell 扩展

c++ - 合并两个可执行文件

c++ - Eigen 行加/减性能

c++ - 段错误的原因是什么(信号名称 : SIGSEGV),,我将如何找到/修复它?

c++ - MinGW 和 GLUT 未定义对 '_imp____glutInitWithExit@12' 的引用

c# - 如何防止 Windows 操作系统进入休眠模式 - .Net