首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows 7 64位文件和图标关联不一致(与Win7 7/32、WinXP/32和WinXP/64相比)

Windows 7 64位文件和图标关联不一致(与Win7 7/32、WinXP/32和WinXP/64相比)
EN

Stack Overflow用户
提问于 2012-08-27 18:51:28
回答 1查看 499关注 0票数 0

我们正在开发一个NSIS安装程序,它可以编辑注册表中的几个文件类型,以更改它们的图标和运行它们的应用程序。

我们的工作流在Win7 7/32位、WinXP/32和WinXP/64上正确工作,但在Win7 7/64上却不能工作。我们已经在多台Win7 7/64机器上测试了这一点,并且这个问题在Win7 7/64实例中都是一致的。

另一个细节是,只有当重写现有的关联时,创建一个新的关联才能正常工作。

注册表编辑简单地设置了DefaultIconshell/open/command,在注册表编辑完成后,我们使用SHChangeNotify系统调用强制shell使用新设置进行更新。

在Win7 7/64上,已经在注册表中的文件类型没有更新到新值。

代码语言:javascript
运行
复制
; Tell the shell to reset its icon cache
System::Call 'shell32.dll::SHChangeNotify(i, i, i, i) v \
(0x08000000, 0, 0, 0)'

任何帮助都是非常感谢的,特别是不涉及系统重新启动或重新启动Explorer的解决方案。谢谢你的帮助!-Chris

EN

回答 1

Stack Overflow用户

发布于 2012-08-27 19:22:47

这个问题可能与x64上的注册中心( 虚拟化重定向反射 )的注册错误有关。您还可能不正确地将文件扩展名映射到progid吗?(当您不发布任何代码或告诉我们您正在更改的文件类型时,很难分辨)

若要关闭虚拟化,请确保脚本包含RequestExecutionLevel admin

您可以强制NSIS在SetRegView中使用64位注册表,但是使用过程监视器监视安装程序可能是一个更好的主意,这样您就可以看到实际编写的位置。然后,您可以监视explorer.exe,以查看它从哪里读取。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12147791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档