gpt4 book ai didi

c++ - 从 Windows 卸载时如何从其他用户帐户中删除 ProgID?

转载 作者:行者123 更新时间:2023-11-30 04:38:52 24 4
gpt4 key购买 nike

我一直在研究“现代 Windows C++ 应用程序应如何在 Windows 中注册其文件类型”(请参阅​​ C++: How do I correctly register and unregister file type associations for our application (programatically))。

在梳理了关于该主题的各种 MSDN 文章后,摘要出现如下:

  1. 安装程序(已提升)应注册全局 ProgID HKLM\Software\Classes\my-app.my-doc[.version](例如 HKLM\Software\Classes\TextPad.text)
  2. 安装程序还为其文档类型(例如 .myext)配置默认关联,并将其指向上述 HKLM 中的全局 ProgID。
    注意:应在此处提供一个用户界面,以允许用户接受所有默认关联,或自定义应设置的关联。
  3. 运行标准(未提升)的应用程序应提供一个 UI,以允许当前用户设置他们在安装程序中可用的个人关联,除了这些关联存储在 HKCU\Software\Classes 中(每个用户,而不是每台机器)。
  4. 然后 UN 安装程序负责删除所有已注册的 ProgID(但应该保留实际的文件关联,因为 Windows 足够智能以处理指向丢失的 ProgID 的关联,这是 MSDN 指定的期望行为)。

所以这个模式对我来说听起来很合理,除了当我考虑#4 时:卸载程序如何为给定的用户帐户运行提升,删除在步骤#3 中为其他用户创建的任何每用户 ProgID?

据我了解,即使在提升模式下,卸载程序也无法进入另一个用户的注册表配置单元并删除项目?或者可以吗?它是否必须首先加载每个给定的用户配置单元?这里有什么规则?

感谢您提供的任何见解!

编辑:请参阅下面的解决方案(我的问题是在困惑中建立的)

最佳答案

据我所知,其他用户帐户中的设置通常就留在那里。这不仅限于文件类型关联。

从所有用户帐户中删除设置几乎是不可能的,因为有些可能是当前未连接的域上的漫游配置文件,或者本地管理员无权访问。

关于c++ - 从 Windows 卸载时如何从其他用户帐户中删除 ProgID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2850157/

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