Windows-如何创建自己的文件扩展名,并将其与自己的程序相关联?

贵族冲浪者

我已经开发了一个C#WPF应用程序,它将向用户显示.pdf文件。用户可以直接加载PDF

文件->加载->(选择PDF文件)->打开

选择PDF并按打开后,将从应用程序内部显示PDF。

或者他们可以打开一个包含单个PDF文件的ZIP文件夹,并且该ZIP内部的PDF会自动从应用程序内部显示给用户

文件->加载->(选择ZIP文件夹)->打开

选择ZIP之后(已知zip的内容完全由一个PDF组成),然后按open,则从应用程序内部显示ZIP内部的PDF(与直接打开PDF相同的方式) 。

现在,我想修改程序,以便它可以打开具有自定义扩展名的“文件夹”,即,我想创建一个文件夹,类似于ZIP,只包含一个PDF文件,但是该文件夹的扩展名应该是我选择(而不是选择)是.zip为了让我有一个名为的压缩文件夹folder.abc,其中包含一个PDF xyz.pdf

然后,我想将扩展名.abc与我的应用程序相关联,以便用户每次双击.abc文件/文件夹时,它都会由我的应用程序自动打开。

我不知道如何创建自定义扩展并使用它?例如,当用户双击应用程序时,如何将其更改folder.zipfolder.abc,并.abc自动将扩展名分配为由我的应用程序打开?

编辑

好的,因此我可以通过创建一个.txt文件,将其打开,然后再次保存,将其'type'设置为All Files,并为其提供一个以结尾的名称.abc(即)来创建具有自己扩展名的自定义文件customFile.abc,并且我可以关联右键单击我的扩展程序,然后选择“打开方式”,然后选择我自己的应用程序。

我也可以用相同的方式使用ZIP文件夹进行此操作。

但是,当我当前打开使用我的自定义扩展名的任何文件/文件夹时,它们只是用空白窗口打开我的应用程序,即未显示其中包含的.pdf文件-我必须使用我的应用程序打开它们的窗口。我通过选择文件->打开并选择.abc我双击打开我的应用程序窗口的文件来执行此.abc操作,然后显示该文件包含的PDF ...

当我从Windows资源管理器中双击包含的.pdf时,为什么它不会自动显示?

TOOGAM

有多种方法可以完成此操作。例如,您可以使用标准注册表编辑工具来修改注册表。但是,还有一种方法可以使用命令行来影响它。因为这对于自动化来说可能更容易,所以这是证明这一点的好方法。由于您的问题显示了的扩展名.abc,因此我使用了该扩展名

从命令行转到命令提示符。如果启用了UAC,则此命令必须是提升权限的命令提示符。

首先,创建一个文件类型。例如:

ftype zzzfile=C:\Windows\System32\Notepad.exe %%1

然后,查看您的结果:

ftype zzzfile
reg query HKCR\zzzfile\SHELL\OPEN\COMMAND /ve

笔记:

  • 创建此文件类型时,“ %% 1”用于转义百分号。两个百分号变为1。因此,当您查看结果时,它将仅显示“%1”而不是“ %% 1”。
  • 设置文件类型时,需要指定整个可执行文件名称。如果您只是说“记事本”,事情将无法正常进行。(通过“事情将无法正常工作”,我的意思是Windows会询问用户如何使用该扩展名。)C:\ Windows \ System32 \实际上似乎是可选的,但“ .exe”却不是。

然后,将扩展名与您的文件类型相关联。同样,这会修改您的系统行为,因此,如果启用了UAC,则进入提升的命令提示符。跑步:

assoc .abc=zzzfile

现在,从该命令提示符或未提升的命令提示符下,您可以检查结果:

assoc .abc
start filename.abc

(在Windows 7 x64上测试。)


注意:在初步测试中,我搞砸了GUI。使用相同扩展名的FTYPE和ASSOC的使用无法正常工作。

检测问题非常简单。修复它不是。

我可以使用以下方法找到问题:

REG QUERY HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc /s

可悲的是,这无法删除它:

REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc
REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\UserChoice /v Progid

我确认了一个图形程序的问题:在UserChoice上进行REGEDIT,然后在Edit(编辑),“ Permissions ...”(权限...),(我的用户名),Advanced(高级)(Permissions选项卡)上显示我有一个DENY,请键入Special。编辑...从那里显示“设置值”为“拒绝”。

从命令行修复此问题的一种方法似乎是NT 4资源工具包中的REGINI。为此,我需要弄清楚我的SID。

wmic USERACCOUNT获取名称,SID(查找我的帐户。SID以“ S-”开头。)

制作一个文本文件。我决定将其命名为“ fix.txt”。

KB 254031指示第一行是“ \ Registry \ User \”,后跟用户的SID。因此,文本文件将以此开头。

尽管各种Microsoft KB文章中都有一些示例,但语法可以短至一行,如图所示(但需要自定义...)

\Registry\User\S-#-#-##-##########-##########-##########-1000\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc\UserChoice [1 5 7 17]

(自然,将“ .abc”调整为您要修复的任何扩展名。#也需要替换,以便使用有效的SID。)

然后,将该文本文件用于: REGINI fix.txt

既然键不妨碍我们进行更改,我们可以删除UserChoice键的Progid值。实际上,继续删除与该扩展名相关的整个密钥。

REG DELETE HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.abc

然后,该注册表项不再被覆盖,因此FTYPE和ASSOC的结果按预期生效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

您如何将.exe文件扩展名与Windows中的程序相关联?

来自分类Dev

以编程方式将文件扩展名与Windows上的应用程序相关联

来自分类Dev

将Windows文件扩展名与特定的bat文件相关联并支持参数传递

来自分类Dev

双击以使用自己的程序在Windows上运行具有自己的扩展名的文件?

来自分类Dev

双击以使用自己的程序在Windows上运行具有自己的扩展名的文件?

来自分类Dev

Cygwin,emacs并将其与Windows上的文件类型相关联

来自分类Dev

将文件扩展名与python脚本相关联,以便我可以在Windows中通过双击打开文件

来自分类Dev

如何在Windows 7中使用通配符将文件扩展名与程序关联

来自分类Dev

如何从自己的项目中获取Jar文件并将其写入Windows文件夹

来自分类Dev

如何在Windows 7 Pro中恢复修改.txt文件扩展名关联的功能?

来自分类Dev

将文件扩展名关联到不在“打开方式”列表中的 UWP Windows 10 应用程序

来自分类Dev

如何预览没有文件扩展名的Windows文件?

来自分类Dev

如何在Windows中设置默认程序来打开不带扩展名的文件?

来自分类Dev

将文件扩展名与C#应用程序中的应用程序相关联

来自分类Dev

将文件扩展名与C#应用程序中的应用程序相关联

来自分类Dev

如何检查文件扩展名并相应地使用Windows批处理文件中的默认程序打开

来自分类Dev

如何检查文件扩展名并相应地使用Windows批处理文件中的默认程序打开

来自分类Dev

Meld:将文件扩展名与语言语法突出显示相关联

来自分类Dev

我真的希望我的Windows登录名与我的Live帐户相关联吗?

来自分类Dev

如何创建将模板对象与自己的模板列表相关联的方法?

来自分类Dev

使用Windows注册表创建自定义文件扩展名

来自分类Dev

从Windows上下文菜单运行程序时忽略文件扩展名?

来自分类Dev

如何克服Windows中Gradle的`文件名或扩展名太长'错误

来自分类Dev

如何在Microsoft Word中将不同的模板与不同的文件扩展名相关联?

来自分类Dev

如何在Windows中使用ExifTool为多个文件添加缺少的文件扩展名

来自分类Dev

无法将.txt文件与Windows 10上列出的Visual Studio Code相关联

来自分类Dev

如何在Windows上的SCons中导出具有备用扩展名的程序

来自分类Dev

Windows 注册表将单个应用程序与具有唯一图标的多种文件类型相关联

来自分类Dev

为什么用PHP上传文件时Linux创建的临时文件没有扩展名,而Windows则带有扩展名?

Related 相关文章

  1. 1

    您如何将.exe文件扩展名与Windows中的程序相关联?

  2. 2

    以编程方式将文件扩展名与Windows上的应用程序相关联

  3. 3

    将Windows文件扩展名与特定的bat文件相关联并支持参数传递

  4. 4

    双击以使用自己的程序在Windows上运行具有自己的扩展名的文件?

  5. 5

    双击以使用自己的程序在Windows上运行具有自己的扩展名的文件?

  6. 6

    Cygwin,emacs并将其与Windows上的文件类型相关联

  7. 7

    将文件扩展名与python脚本相关联,以便我可以在Windows中通过双击打开文件

  8. 8

    如何在Windows 7中使用通配符将文件扩展名与程序关联

  9. 9

    如何从自己的项目中获取Jar文件并将其写入Windows文件夹

  10. 10

    如何在Windows 7 Pro中恢复修改.txt文件扩展名关联的功能?

  11. 11

    将文件扩展名关联到不在“打开方式”列表中的 UWP Windows 10 应用程序

  12. 12

    如何预览没有文件扩展名的Windows文件?

  13. 13

    如何在Windows中设置默认程序来打开不带扩展名的文件?

  14. 14

    将文件扩展名与C#应用程序中的应用程序相关联

  15. 15

    将文件扩展名与C#应用程序中的应用程序相关联

  16. 16

    如何检查文件扩展名并相应地使用Windows批处理文件中的默认程序打开

  17. 17

    如何检查文件扩展名并相应地使用Windows批处理文件中的默认程序打开

  18. 18

    Meld:将文件扩展名与语言语法突出显示相关联

  19. 19

    我真的希望我的Windows登录名与我的Live帐户相关联吗?

  20. 20

    如何创建将模板对象与自己的模板列表相关联的方法?

  21. 21

    使用Windows注册表创建自定义文件扩展名

  22. 22

    从Windows上下文菜单运行程序时忽略文件扩展名?

  23. 23

    如何克服Windows中Gradle的`文件名或扩展名太长'错误

  24. 24

    如何在Microsoft Word中将不同的模板与不同的文件扩展名相关联?

  25. 25

    如何在Windows中使用ExifTool为多个文件添加缺少的文件扩展名

  26. 26

    无法将.txt文件与Windows 10上列出的Visual Studio Code相关联

  27. 27

    如何在Windows上的SCons中导出具有备用扩展名的程序

  28. 28

    Windows 注册表将单个应用程序与具有唯一图标的多种文件类型相关联

  29. 29

    为什么用PHP上传文件时Linux创建的临时文件没有扩展名,而Windows则带有扩展名?

热门标签

归档