gpt4 book ai didi

windows-7 - Windows 7 文件扩展名关联

转载 作者:行者123 更新时间:2023-12-04 12:14:15 24 4
gpt4 key购买 nike

我特别指的是 Windows 7。

我有代码将某个扩展与我的应用程序相关联,如 webJose 在以下页面上提出的:
What registry keys are responsible for file extension association?
(但是我按照建议正确写入 HKEY_CURRENT_USER\Software\Classes 而不是 HKEY_CLASSES_ROOT)

以上最初有效,或者如果没有与扩展相关的其他程序。但是,在使用 Windows 7 内置“选择默认程序...”(在“打开方式”下的文件右键单击上下文菜单下)后,它会将扩展名与您选择的任何新程序重新关联。

此时发生的情况是“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\\UserChoice”被系统更改,因此新选择的程序接管。

运行上面的代码,重新获得对扩展的控制是行不通的。重新获得控制权的唯一方法是:

  • 编辑 UserChoice -> Progid 值,这是不允许的(以编程方式或使用 regedit.exe - 访问被拒绝)。
  • 或者删除 UserChoice 值并确保您的应用程序是\OpenWithList 下 MRUList 值中的第一个(这可以使用 regedit.exe 但不能以编程方式实现)

  • 我的问题是:有没有办法以编程方式实现这一目标?在与另一个程序关联后,可以更改哪些注册表值以重新获得对扩展的控制?

    我知道很明显,如果用户通过资源管理器将关联的应用程序设置为扩展,则期望再次以相同的方式将扩展重新关联到不同的应用程序。

    然而,问题是我的应用程序中有一个按钮,它使用上述代码来检查与我的应用程序的扩展关联。不幸的是,在上述情况下,我的应用程序显示一条消息,确认扩展程序已成功关联,但未成功关联!那么有没有办法解决这个问题?

    最佳答案

    删除 UserChoice应该将默认程序恢复为标准文件关联键(以 HKCU 中的 ProgID 开头)。除非您也可以删除 OpenWithList ,这将带有极端的偏见。

    编辑:
    退房 Registry Key Security and Access Rights在 MSDN 上,尤其是 RegSetKeySecurity功能。请记住,您需要先授予自己对该 key 的管理控制权,然后才能删除它。

    关于windows-7 - Windows 7 文件扩展名关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620764/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com