- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我应该将哪些数据和位置添加到 Windows 注册表中以正确创建文件关联?
我问这个问题主要是因为我多年前编写的一些旧应用程序使用 Visual Studio .NET 的 Windows Installer 打包程序来创建文件关联。我安装的扩展是 .whr
和 .encxml
.
现在,在安装了这些应用程序的计算机上,有时会出现一个奇怪的问题——在 Google Chrome 或 Internet Explorer 中下载文件(尤其是 exe、msi 或 zip 文件)时,浏览器会将文件扩展名更改为 1我的安装程序安装的扩展程序。我不知道它是否会影响其他浏览器——这两者有什么共同之处吗?所以...如果你下载,例如,http://example.com/downloads/application.exe ,文件将被下载为 http://example.com.downloads/application.encxml (或 .whr,无论它现在选择哪个),没有任何明显的原因。
我要注意的是 HKCR\.whr
的键和 HCKR\.encxml
key 引用(客户经理加密的 XML 文件和工作时间记录)中有空格,当我在 Visual Studio 中创建关联时,我没有添加“。”到前面。也许不允许使用空格,和/或您应该以“.”为前缀?注册表代码似乎没问题,但我通过查看我的注册表注意到,每个其他应用程序都不会使用关联类中的空格,而且我知道的任何机器上安装的任何应用程序的任何其他文件扩展名也不会发生此问题 - 仅由我的应用程序的 VS 安装程序创建的那些。我已经粘贴了与文件扩展名相关的相应注册表项和值的注册表转储 - 由于 MSI 是专有的,我不知道这是否是全部,但根据我从其他应用程序中了解到的情况,这应该是全部。多年来,我一直想知道这个问题,但一直想不通。我很快就会用更新的产品替换那些旧应用程序之一,所以这次我想确保没有像这样的奇怪错误......
这是数据(请注意,我已经在值下方用//注释指示了一些二进制字符串的文本值):
[HKEY_CLASSES_ROOT\.encxml]
"Content Type"="application/octet-stream"
@="Account Manager Encrypted XML File"
[HKEY_CLASSES_ROOT\.encxml\Account Manager Encrypted XML File]
[HKEY_CLASSES_ROOT\.encxml\Account Manager Encrypted XML File\ShellNew]
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File]
@="Account Manager Encrypted XML File"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\DefaultIcon]
@=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,\
00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,49,00,6e,00,73,00,74,00,\
61,00,6c,00,6c,00,65,00,72,00,5c,00,7b,00,42,00,36,00,34,00,31,00,37,00,36,\
00,30,00,42,00,2d,00,37,00,44,00,42,00,37,00,2d,00,34,00,46,00,31,00,42,00,\
2d,00,41,00,44,00,36,00,45,00,2d,00,30,00,41,00,33,00,34,00,32,00,30,00,46,\
00,35,00,45,00,45,00,30,00,44,00,7d,00,5c,00,5f,00,36,00,46,00,45,00,46,00,\
46,00,39,00,42,00,36,00,38,00,32,00,31,00,38,00,34,00,31,00,37,00,46,00,39,\
00,38,00,46,00,35,00,34,00,39,00,2e,00,65,00,78,00,65,00,2c,00,30,00,00,00
// Product code GUID is: {F7F214E9-ED37-4AE1-B0D2-93427973E60A}, which is different from below but I probably changed it at some point for some reason
// %APPDATA%\Microsoft\Installer\{B641760B-7DB7-4F1B-AD6E-0A3420F5EE0D}\_6FEFF9B68218417F98F549.exe,0
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\shell]
@="open"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\shell\open]
@="&Open"
[HKEY_CLASSES_ROOT\Account Manager Encrypted XML File\shell\open\command]
@="\"C:\\Program Files\\Petroules Enterprises\\Account Manager\\AccountManager.exe\" \"%1\""
"command"=hex(7):4c,00,29,00,25,00,59,00,63,00,73,00,67,00,2d,00,4c,00,41,00,\
28,00,30,00,64,00,66,00,34,00,36,00,75,00,5f,00,50,00,27,00,3e,00,27,00,7d,\
00,27,00,66,00,25,00,6f,00,59,00,64,00,4b,00,69,00,48,00,74,00,7a,00,35,00,\
21,00,55,00,2b,00,6c,00,68,00,54,00,20,00,22,00,25,00,31,00,22,00,00,00,00,\
00
// This is a bizarre-looking value... what's up with that?
// L)%Ycsg-LA(0df46u_P'>'}'f%oYdKiHtz5!U+lhT "%1"
[HKEY_CLASSES_ROOT\.whr]
"Content Type"="application/octet-stream"
@="Work Hours Record"
[HKEY_CLASSES_ROOT\.whr\Work Hours Record]
[HKEY_CLASSES_ROOT\.whr\Work Hours Record\ShellNew]
[HKEY_CLASSES_ROOT\Work Hours Record]
@="Work Hours Record"
[HKEY_CLASSES_ROOT\Work Hours Record\DefaultIcon]
@=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,4d,00,69,\
00,63,00,72,00,6f,00,73,00,6f,00,66,00,74,00,5c,00,49,00,6e,00,73,00,74,00,\
61,00,6c,00,6c,00,65,00,72,00,5c,00,7b,00,46,00,41,00,32,00,33,00,44,00,37,\
00,36,00,34,00,2d,00,46,00,36,00,34,00,39,00,2d,00,34,00,38,00,46,00,39,00,\
2d,00,38,00,44,00,30,00,42,00,2d,00,45,00,31,00,38,00,38,00,35,00,41,00,39,\
00,38,00,31,00,46,00,39,00,39,00,7d,00,5c,00,5f,00,36,00,46,00,45,00,46,00,\
46,00,39,00,42,00,36,00,38,00,32,00,31,00,38,00,34,00,31,00,37,00,46,00,39,\
00,38,00,46,00,35,00,34,00,39,00,2e,00,65,00,78,00,65,00,2c,00,30,00,00,00
// Product code GUID: {FA23D764-F649-48F9-8D0B-E1885A981F99}, same as below
// %APPDATA%\Microsoft\Installer\{FA23D764-F649-48F9-8D0B-E1885A981F99}\_6FEFF9B68218417F98F549.exe,0
[HKEY_CLASSES_ROOT\Work Hours Record\shell]
[HKEY_CLASSES_ROOT\Work Hours Record\shell\open]
@="&Open"
[HKEY_CLASSES_ROOT\Work Hours Record\shell\open\command]
@="\"C:\\Program Files\\Petroules Enterprises\\Work Hours Calculator\\WorkHoursCalculator.exe\" \"%1\""
"command"=hex(7):28,00,5d,00,56,00,49,00,79,00,55,00,7b,00,5e,00,4e,00,3f,00,\
26,00,68,00,48,00,7e,00,53,00,24,00,6e,00,31,00,36,00,59,00,3e,00,33,00,75,\
00,5f,00,7d,00,47,00,26,00,70,00,79,00,75,00,78,00,38,00,4e,00,72,00,43,00,\
6e,00,67,00,27,00,44,00,67,00,42,00,20,00,22,00,25,00,31,00,22,00,00,00,00,\
00
// Same bizarre-looking type of value as before, but different...
// (]VIyU{^N?&hH~S$n16Y>3u_}G&pyux8NrCng'DgB "%1"
最佳答案
在 Windows Installer 中,我们使用 RegisterExtensionInfo 标准操作:
http://msdn.microsoft.com/en-us/library/aa371156(v=VS.85).aspx
其中使用主要使用扩展和动词表以及与 COM 相关表的一些连接:
http://msdn.microsoft.com/en-us/library/aa368571(v=VS.85).aspx ( 扩展表 )
http://msdn.microsoft.com/en-us/library/aa372487(v=VS.85).aspx ( 动词表 )
关于registry - 如何正确地将文件关联添加到 Windows 注册表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3358137/
我的 Dojo 应用程序包含几个小部件,它们都在 dijit.registry(dijit.WidgetSet 的一个实例)中自动注册。我想利用 filter() ( Link ) 或 map() (
yarn 添加 v1.3.2 [1/4] 解析包... 错误 发生意外错误:“https://registry.yarnpkg.com/react:getaddrinfo EAI_AGAIN regi
我知道 Docker Hub,而且我知道您可以在其上创建自己的存储库。 但是,当您想创建多个私有(private) repo 时,您必须付费。 所以我想要我自己的使用自签名证书的 Docker Reg
在 boostrapper package.xml 中,我试图从注册表中读取 MSSQL 条目,例如: 运行结果 setup.exe 后,我在日志中得到: “正在读取注册表项 'HKLM
每当我尝试将容器从本地计算机推送到 Google Container Registry 时,都会收到以下错误: denied: Unable to access the repository; ple
我的示例问题是 Vaclav .我已经按照 GCR 快速入门开始了这封信,其中需要创建一个新项目(称为 gcr-project)并复制 Flask(python)应用程序的代码。 构建docker镜像
不确定 SO是提出以下问题的正确论坛。如果不是,请将它们移到正确的位置。 我想设置一个 Docker Private Registry, 但是在阅读了 Docker 的文档(和 related SO
目前,我们的 CI/CD 环境是基于 Kubernetes 的云。 由于性能优势,Kubernetes 云提供商最近删除了 docker 守护程序。例如,Google Kubernetes Engin
我在 output1 和 output2 中得到了不同的结果。第一个给了我在注册表中实际看到的值,而后者只给了我默认值。我想念什么? String output1 = Registry.GetValu
我正在为 Inno Setup 中的程序编写安装程序。我的程序使用网页和 Internet Explorer 与之交互。 我的一些查询需要超过 10 秒,我注意到在我 friend 的计算机上,他有一
我正在为 docker 编写一个 API 客户端,而注册表 API 很难使用。我正在尝试从注册表中删除图像,但是我不断收到此错误 [ { code: 'UNSUPPORTED', message: '
我目前正在尝试通过 Java 应用程序查询和设置一些 Windows 注册表项。我们被授权使用 JNI-Registry 库(出于许可原因)。要设置的键和值不在我的控制之下(我正在修改由另一个第 3
首先,我想将此问题仅限于 Web 开发。因此,只要该语言用于 Web 开发,这就是语言不可知的。就个人而言,我是从 PHP 背景而来的。 通常我们需要使用来自多个作用域的对象。例如,我们可能需要在正常
Google Container Registry documentation解释说为了将图像拉入和推送到 gcr.io,您必须添加前缀 docker push和 pull带有 gcloud prev
我在使用 npm 安装 Cordova 时遇到问题。 从这里找到的答案,诀窍是运行 npm set registry https://registry.npmjs.org/这个命令究竟做了什么,为什么
我们有一个用于 Python 包的 Google Artifact Registry。鉴权工程like this .在本地运行良好。 但是,当我想要构建需要从我们的私有(private)注册表安装包的
我使用 GCR 来存储我团队的私有(private) docker 注册表。我有一个 docker 图像,我想公开显示,以便多个项目可以使用它/与客户共享/等等。 如何在 Google 的 Conta
我有 表 和 标签 具有多对多关系,以及连接表 post_tags。如果帖子有一个特定的标签名称,我想从帖子中返回所有标签。 这个想法是按特定标签过滤所有帖子。 我是这样做的: const posts
Registry 类和Naming 类有什么区别。 在我的应用程序中,我使用了 Registry 类。但我想了解 Naming 类及其用途? 最佳答案 区别在于Naming是一个带有静态方法的工具类,
我在公司网络上工作。 尝试安装 npm. 但我一次又一次地收到此错误。 $ npm install npm ERR! Windows_NT 6.1.7601 npm ERR! argv "C:\\Pr
我是一名优秀的程序员,十分优秀!