C# - 文件关联对注册表项“HKEY_CLASSES_ROOT\”的访问被拒绝

2023-12-23

我目前有一个使用注册表设置文件关联的程序(注意,它是.NET 2.0,所以我必须通过注册表方法)。问题是,由于它正在尝试写入 HKCR,因此可能会遇到管理问题(在其他计算机上)。是否有更通用的方法来设置文件关联(对于 .NET 2.0),例如使用 HKCU 或其他不需要管理权限的方法。

string keyName = "Class";
string keyValue = "Class File";
string apppath = Application.ExecutablePath.ToLower() + " \"%1\"";
RegistryKey key;
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("", keyValue);

RegistryKey iconkey;
key = Registry.ClassesRoot.CreateSubKey(keyName);
iconkey = key.CreateSubKey("DefaultIcon");
iconkey.SetValue("", Environment.CurrentDirectory + "\\resources\\musicfile.ico");

key = key.CreateSubKey("shell");
key = key.CreateSubKey("open");
key = key.CreateSubKey("command");
key.SetValue("", apppath);

HKEY_CLASSES_ROOT是另外两个位置的别名、合并:

  • HKEY_CURRENT_USER\Software\Classes
  • HKEY_LOCAL_MACHINE\Software\Classes

您必须决定注册该文件的原因。文件注册是否适用于所有用户?如果是这样,您想注册该协会HKEY_CLASSES_ROOT(这将隐式地将其写入HKEY_LOCAL_MACHINE.

或者注册仅适用于当前用户?如果是这样,请将您的文件注册到HKEY_CURRENT_USER.

请记住,仅仅因为一个用户安装了您的程序并不意味着所有用户都想要拥有它;所以考虑一下这个程序的用途。

无论哪种方式,注册文件关联的正确时间是在使用 MSI 安装程序进行安装期间。 MSI 安装人员知道如何在安装过程中请求提升 - 如果需要的话。不是所有的软件都要进去Program Files,有的可以进去%APPDATA%(即 Chrome)无需管理员权限即可安装 - 并且仅为一位用户安装。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# - 文件关联对注册表项“HKEY_CLASSES_ROOT\”的访问被拒绝 的相关文章

  • C# 中两种不同类型的列表

    我目前在为客户提供购物车时遇到问题 他希望能够在 CartItems 之间添加文本 所以我想知道是否有某种方法仍然只有一个列表 我的解决方案是有两个列表 其中一个是 IList 类型 在计算购物车的重量和总体价格时会迭代 而另一个 ILis
  • Excel的解析路径

    其实我想问以下问题 对于位于 目录中定义的 PATH 怎么能 我找出这些目录中的哪个 找到了 因为我需要使用 Process Run 从 C 运行 Excel 并且只需指示 Excel 即可正常工作 Windows 似乎知道在哪里可以找到它
  • C++:Linux平台上的线程同步场景

    我正在为 Linux 平台实现多线程 C 程序 其中我需要类似于 WaitForMultipleObjects 的功能 在搜索解决方案时 我发现有一些文章描述了如何在 Linux 中实现 WaitForMultipleObjects 功能
  • 纹理映射 C++ OpenGL

    我已经阅读了相关内容 包括 Nehe 和此处的解决方案 但我找不到具体的答案 我正在尝试加载一张名为stars jpg 的照片 我想通过使用 uv 坐标映射它来使其成为场景的背景 方法是 glBegin GL QUADS glTexCoor
  • 使用 strcpy 从整数生成指针,无需进行强制转换

    我不明白我做错了什么 我正在学习 C 很抱歉 如果这显然是错误的 但我正在尝试使用uthash http uthash sourceforge net 制作股票及其价格的哈希图 但是当我将股票添加到哈希映射时 我收到上述错误 我所做的就是从
  • 如何从 webmethod 向 AJAX 调用返回异常?

    我回来了List
  • 如何让BackgroundWorker返回一个对象

    我需要做RunWorkerAsync 返回一个List
  • .NET:EventHandler 竞争条件修复如何工作?

    以下模式用于在引发事件时避免竞争条件 以防另一个线程取消订阅 MyEvent 使其为空 class MyClass public event EventHandler MyEvent public void F EventHandler h
  • 从 C++ 中的函数返回二维数组[重复]

    这个问题在这里已经有答案了 可能的重复 C 从函数返回多维数组 https stackoverflow com questions 3716595 c returning multidimension array from function
  • 起订量工作单元

    我是单元测试的新手 我想为我的搜索功能创建一个测试 我的服务层看起来像 public class EmployeeService BaseService IEmployeeService public EmployeeService IUn
  • 等于方法实现助手 (C#)

    每次我编写一些数据类时 我通常都会花很多时间编写 IEquatable 实现 我写的最后一堂课是这样的 public class Polygon public Point Vertices get set 实施 IEquatable 是一项
  • C 风格强制转换与内在强制转换

    假设我已经定义了 m256d x我想提取低 128 位 我会做 m128d xlow mm256 castpd256 pd128 x 然而 我最近看到有人这样做 m128d xlow m128d x 是否有用于演员的首选方法 为什么要用第一
  • gcc 删除内联汇编代码

    看起来 gcc 4 6 2 删除了它认为函数中未使用的代码 test c int main void goto exit handler asm volatile jmp 0x0 exit return 0 拆解main 0x0804840
  • 使用 OpenSSL 库在 C++ 中生成 SHA 哈希值

    如何使用以下命令生成 SHA1 或 SHA2 哈希值OpenSSL https openssl org图书馆 我搜索了谷歌 找不到任何函数或示例代码 从命令行来看 很简单 printf compute sha1 openssl sha1 您
  • 随机排列

    我无法找到一种随机洗牌元素的好方法std vector经过一些操作后 恢复原来的顺序 我知道这应该是一个相当简单的算法 但我想我太累了 由于我被迫使用自定义随机数生成器类 我想我不能使用std random shuffle 无论如何这没有帮
  • 为什么 g++ 在编译的二进制文件中存储类名?

    我注意到如果我跑strings在我编译的程序上g 输出包含它使用的各种类的名称 该程序是用 O3并且没有 g or p 并且当我剥离二进制文件时 类名仍然存在 我想知道为什么有必要g 将此信息存储在二进制文件中 出现的类名似乎都是使用虚函数
  • 如何查明我的字符串是否包含“micro”Unicode 字符?

    我有一个包含实验室数据的 Excel 电子表格 如下所示 g L ppb 我想测试希腊字母 是否存在 如果发现我需要做一些特别的事情 通常 我会写这样的东西 if cell StartsWith matchSequence lt unive
  • 比较 C# 中的对象属性[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动
  • 如何正确对齐 WPF GeometryGroup 中的路径?

    我正在使用一个GeometryGroup在圆的中心绘制一个符号 下面的示例显示了我在对此进行实验时的尝试之一 它具有从同一原点 32 32 出发的三条直线
  • Opencv 对象检测:ORB GPU 检测器和 SURF GPU 描述符提取器

    我只是做了一个小实验来尝试不同的检测器 描述符组合 我的代码使用 ORB GPU 检测器来检测特征 并使用 SURF GPU 描述符来计算描述符 我使用 BruteForceMatcher GPU 来匹配描述符 并使用 knnMatch 方

随机推荐

  • 如何在列表框中的项目之间添加填充?

    我想知道是否有办法在我的订单项之间添加填充 这是一种用于平板电脑的表单 每个表单之间的空间可以让您更轻松地选择不同的项目 有人知道我该怎么做吗 有一个ItemHeight财产 你必须改变DrawMode财产给OwnerDrawFixed使用
  • 无法使用 Ajax.BeginForm() 异步上传文件

    我正在尝试使用 Ajax BeginForm 上传文件 但没有成功 我的观点包含 using Ajax BeginForm UploadFile null new AjaxOptions HttpMethod POST UpdateTarg
  • 如何从 mongoose 中的实例方法访问静态方法?

    如何从 mongoose 中的实例方法访问静态方法 我有一个名为 Job 的工作模型 我想从实例方法 job start 调用静态方法 Job someStatic 如何从实例方法中的 this 获取对作业的引用 thanks 我发现通用地
  • 如何通过Weblogic Java API检索Weblogic的Deployment测试点

    我正在开发一个基于 JMX 的 Weblogic 健康监控代码库 我正在尝试获取所有部署测试点的列表 http地址 如下面的快照所示 并查看该网址是否可访问 有没有办法访问 Weblogic 的 Java API 中这些测试点的列表 他们在
  • 如何在 CMake 项目上运行 Visual Studio CPU 分析器?

    我正在尝试使用 Visual Studio 2022 及其分析工具来分析使用 CMake 项目构建的 C 应用程序 我以 RelWithDebInfo 模式和 MSVC x64 x64 工具集构建项目 我添加了这个片段 if MSVC se
  • 用于单元测试的模拟休息模板

    我想嘲笑一个RestTemplate在 Spring Boot 中 我在方法中进行 REST 调用 为了测试我正在创建的微服务的控制器 我想测试微服务控制器内的方法 例如 GetMapping value getMasterDataView
  • 更改 UISegmentedControl 的字体大小

    谁能告诉我如何更改字体类型和大小UISegmentedControl 我遇到了同样的问题 此代码设置整个分段控件的字体大小 类似的东西可能适用于设置字体类型 请注意 此功能仅适用于 iOS5 Obj C UIFont font UIFont
  • ChartJS 禁用图表区域外的网格线

    我试图隐藏在图表区域之外绘制的网格线 所以基本上类似于下面的选项 但对于图表区域之外 gridLines drawOnChartArea false 想必您正在寻求禁用刻度线 这可以通过drawTicks财产 new Chart docum
  • ASP.NET MVC2 中的单用户登录非常简单?

    我正在构建我的网站 并且我想限制我的网站的一部分 管理部分 正常公开显示 我正在使用 LINQ 进行数据库访问 我有一个 Service 类来处理通过 LINQ 对数据库的调用 我的整个网站都在运行 除了登录部分 到目前为止我已经only能
  • 隐藏和显示 TableLayoutPanel 的单元格

    我的表格布局面板有一列三行 一个停靠在每个单元格的 填充 面板上 现在我希望能够隐藏 显示行 我希望任何时候都只显示一行 基于用户对某些单选按钮的选择 并且我希望调整大小以使其填充 TableLayoutPanel 的所有区域 我怎样才能做
  • Haskell 中的异常处理

    我需要帮助来理解三个 Haskell 函数的用法 try Control Exception try Exception e gt IO a gt IO Either e a catch Control Exception catch Ex
  • AngularJS 中使用 q 的多个链式延迟函数停止返回数据

    我试图将多个延迟函数调用链接在一起 以便下一个调用可以获得前一个 deferred resolve 的结果 当我将两个以上的调用链接在一起时 数据将停止返回 这是角度控制器内的基本代码 scope runAsync function var
  • 不同应用程序的相同密钥库[重复]

    这个问题在这里已经有答案了 我对所有已发布的应用程序始终使用相同的密钥库和相同的别名密钥 这是一个正确的选择 或者我应该为每个发布的应用程序使用不同的别名吗 我还没有找到有关正确使用密钥库的真正明确的信息 密钥库文件或应用程序的签名表示某些
  • Helm 3.0.2 试运行 + 稳定/prometheus-operator?这应该有效吗?

    使用 Helm v3 0 2 新的 Kubernetes v1 14 9 集群 仅供参考 我已经添加了稳定的存储库 helm repo add stable https kubernetes charts storage googleapi
  • JavaScript 将 HTML 表格导出到 Excel

    我需要 JavaScript 将 HTML 表格导出到 Excel 我已经尝试过这个脚本 但它只导出一张表
  • Laravel Eloquent ORM 中的自然 ORDER

    我如何在 Eloquent ORM 中获得 自然顺序 在表中我有 文本 列 字符串 正常顺序 Model orderBy text value 1 value 12 value 23 value 3 value 8 我需要这个 value
  • 运行 django 本地服务器时出错:`__init__() 得到意外的关键字参数 'tcp_nodelay'`

    一切都很好并且始终运行没有问题 现在 当我从浏览器加载应用程序时出现错误 似乎与代码无关 因为我跳到了最旧的分支上 并且得到了相同的错误 这是我的 python 和 django 版本 python version Python 3 6 0
  • 进行带有超时的 EJB 调用

    我有一个EJBA调用 EJBB UI 等待响应的时间不应超过 30 秒 如果某些数据丢失 它应该返回部分响应 如何在 EJB 上定义超时 30 秒的时间限制 B 我可以定义EJBB as Asynchronous返回Future 然后做Fu
  • 如何将嵌入/嵌套 FormGroup 转换为 FormData

    这是我的表格组 this shopGroup this fb group user name Validators compose Validators required Validators maxLength 60 url name d
  • C# - 文件关联对注册表项“HKEY_CLASSES_ROOT\”的访问被拒绝

    我目前有一个使用注册表设置文件关联的程序 注意 它是 NET 2 0 所以我必须通过注册表方法 问题是 由于它正在尝试写入 HKCR 因此可能会遇到管理问题 在其他计算机上 是否有更通用的方法来设置文件关联 对于 NET 2 0 例如使用