我正在尝试使用Visual Studio 2010在C ++中创build一个非常简单的shell扩展,但是我甚至不能把这些例子作为一个起点。
我正在使用Windows 7 x64。
我试过这个Visual Studio模板 ,但是一旦我得到了模板在VS2010中工作,我有一系列的错误,我不知道如何解决。
我已经尝试了完整的傻瓜书写扩展指南 ,一旦演示编译所有正确的registry设置等创build,但没有上下文菜单出现。
图标覆盖处理程序的命名空间扩展
确定是否将shell扩展称为上下文菜单处理程序或拖放处理程序
Windows资源pipe理器备用数据streamshell扩展
在Win 7和8.1中debuggingshell扩展
我已经看过这个C#COM Interop的例子 ,但是我一直在困惑,是否可以安全地使用C#感谢这篇文章 *,但它看起来像我可能会好,如果我使用.NET 4,因为它支持在进程并行的CLR托pipe 。
简而言之:历史上.NET的两个版本不能在同一个进程中运行,shell扩展的工作方式是将自己注入进程。 所以,如果.NET 3.5被注入.NET 2过程 – 砰
那么,我现在可以使用.NET 4.0吗?
是否有一个可下载的工作,VS2010的解决scheme,增加了一个简单的shell扩展?
我以前在C ++中并没有那么糟糕,但是经过多年的.NET开发之后,我已经非常生疏了,正因为如此,为了解决现有示例中出现的大量错误正在certificate… fiddly!
我真的可以做一个干净的石板开始,我可以打破自己,弄清楚我做错了什么!
shell扩展不能在Windows-Explorer中工作,但在其他程序中工作?
如何在命名空间扩展中添加(启用)标准的“发送到”上下文菜单选项
我苦苦挣扎了一段时间,由于x64问题和SDK差异,代码项目文章的成功有限。
我最近选择了该项目,并开始使用MS 一体式代码示例,我非常高兴。 它使一个简单的示例上下文菜单和x64开箱即用: http : //code.msdn.microsoft.com/windowsdesktop/CppShellExtContextMenuHandl-410a709a
为了让它在你的机器上运行:
在管理员权限下打开VS中的项目
将构建配置切换到x64并构建它
杀死所有浏览器会话
找到新的dll并运行regsvr32.exe。 CppShellExtContextMenuHandler.dll
通过使用/ u标志运行相同的命令来删除它
我的下一步是调试工作,我认为这可能会做的伎俩: msdn
在用于C ++扩展的Windows 7 x64上,您需要将其构建为x64项目。 在Visual Studio 2010中,ATL向导中有一个选项来创建一个提供预览窗口支持,缩略图和Windows搜索支持的外壳扩展项目。 我最近使用这个,一旦建成,似乎没有任何事情发生。 但是,切换项目配置,以建立一个64位的DLL得到它的工作。
关于使用.net – 资源管理器现在启动插件在一个单独的子进程。 因此,加载链接到.net 4.0的外壳扩展不会污染那个.net版本的所有内容,因为只有托管子进程实际上会加载该CLR。 你可以使用预览扩展看到这个,因为一个新的进程(prevhost)被启动来包含这个。
我有这个工作: http : //www.codeproject.com/Articles/174369/How-to-Write-Windows-Shell-Extension-with-NET-Lang
32位平台 :编译x86 /任何cpu。 使用C:WindowsMicrosoft.NETFrameworkvXYZRegAsm.exe 。
64位平台 :编译为x64 /任何cpu。 使用C:WindowsMicrosoft.NETFramework64vXYZRegAsm.exe 。
( XYZ是用于编译的.NET Framework的版本。)
但是请注意, Microsoft建议不要使用.NET进行外壳扩展 。
“我可以使用C#”的简短答案是否定的。 这是来自微软的实施进程扩展的指导。 “一个特别注意的运行时间是公共语言运行库(CLR),也称为托管代码或.NET Framework。Microsoft建议不要将受管理的进程内扩展写入Windows资源管理器或Windows Internet Explorer,并且不会将其视为受支持的方案“。 出现这个问题是因为在一个应用程序中只能使用单个版本的.NET,并且如果使用多个.NET扩展,则无法强制执行此限制。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。