问题标签 [file-association]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
9601 浏览

c# - 如何获取与文件类型关联的图标?

我有一个在 TabControl 中显示文件信息的表单,我希望页面在其选项卡中包含文件的图标。如何获取与文件类型关联的图标?

我更喜欢不涉及在注册表中查找内容的解决方案,但如果这是唯一的方法,那就这样吧。

0 投票
2 回答
844 浏览

ms-office - ms office 文件扩展名

前段时间我有一个发现。只需按照以下步骤操作:

在 office 2003 中创建一个 .doc/.xls/.ppt 文件。在其中保留一些测试数据并关闭该文件。现在重命名文件以将其文件扩展名更改为随机字符串,注意它是未关联的,例如 test.asdfghjkl 等。双击该文件,它会在父应用程序中无缝打开。

现在 AFAIK,Windows 检查文件的文件扩展名并使用它来执行操作,即打开应用程序并将文件传递给它以打开。那么办公套件是如何做到这一点的呢?

编辑:扩展名更改为与另一个应用程序相关联的情况如何。是否有处理该问题的优先级算法?

0 投票
2 回答
7286 浏览

windows - 如何将应用程序设置为以编程方式打开某种类型文件的默认程序?

在 MFC 中我的程序生成了一个可执行文件,我想将其用作打开.jpg文件的默认程序。也就是说,每双击一个.jpg文件,我的程序就会运行。

我尝试添加一些将.jpg文件链接到我的程序的注册表项,例如HKEY_CLASSES_ROOT\.jpg\shell\open\command(将其值设置为"myProgram.exe" "%1")和HKEY_CLASSES_ROOT\myProgram.

该方法工作得很好,除非其他一些应用程序自己注册以打开.jpg文件。例如,我在我的电脑上安装了 acdSee,所以每次我双击一个.jpg文件时,它总是启动 acdSee 而不是我自己的程序。但是当我用我的程序注册一个全新类型的文件时,它可以在程序中打开。我不知道如何以编程方式将我的程序设置为已注册文件的默认打开程序。谁能帮我解决这个问题?非常感谢!

0 投票
8 回答
12226 浏览

java - 使用 Java 1.5 打开文件的跨平台方式

我正在使用 Java 1.5,我想启动关联的应用程序来打开文件。我知道 Java 1.6 引入了Desktop API,但我需要Java 1.5的解决方案。

到目前为止,我找到了一种在 Windows 中执行此操作的方法:

有跨平台的方法吗?或者至少有一个类似的Linux解决方案?

0 投票
2 回答
944 浏览

windows - 如何要求Windows根据文件关联打开外部文件?

使用 Win32 特定的 API,是否有一种简单的方法来启动外部应用程序以打开文件,只需传入文件的路径/名称?

例如,假设我有一个名为 C:\tmp\image.jpg 的文件。我可以调用一个 API 来告诉 Windows 打开与 .jpg 文件关联的应用程序吗?无需进行大量注册表查找?

我想我记得很多年前做过这个,但我找不到它。

0 投票
3 回答
11908 浏览

macos - 如何在不先启动 MacOS X App 的情况下将文件类型与 MacOS X App 相关联?

我想将上次安装的 Mac OS X 应用程序版本与某种类型的文件相关联。一个小实验表明info.plist文件似乎在启动应用程序时被操作系统读取和解释,而不是在将应用程序包拖到磁盘时。Apple 关于运行时配置的文档并没有对此主题进行太多说明。

有什么方法可以使用简单的.dmg映像作为安装介质来确保系统将该特定文件类型与我新安装的应用程序相关联,而无需先启动它

我应该澄清一下,我希望在安装过程中自动完成(我不希望我的用户必须自己做)。

0 投票
2 回答
1753 浏览

delphi - 如何找出通过打开具有自定义文件扩展名的文件触发的文件的路径?

如何获取用于打开程序的文件的位置?

示例:如果我创建一个新的扩展名“.xyz”,并告诉 Windows 我想用 myapplication 打开文件类型 .xyz,那么它会启动我的应用程序。太好了,但是我的应用程序如何获得用于启动它的文件的文件路径的句柄?

另外,有没有办法让我的应用程序的一个版本只运行并打开新文件以调用我的应用程序中的方法?例如,如果您使用 torrent 并打开 5 个 .torrent 文件,它们都只会传递给一个应用程序。

附带问题:所有文件扩展名都是 3 个字母长吗?是否有公开使用的列表?如果我创建一个文件扩展名,我不想使用一个已经使用过的。

0 投票
1 回答
3145 浏览

c# - 如何设置与单击一次应用程序的文件关联?

我有一个点击一次的应用程序。

我有一个关联文件,用于存储应用程序的数据。

当用户单击其中一个文件时,我希望它打开 click-once 应用程序并加载文件。

我可以在发布中设置文件关联,图标和名称设置正确。单击文件打开应用程序,但应用程序似乎没有传递文件的路径 - 命令参数为空。

如何获取它以便将文件的路径传递给应用程序?

0 投票
1 回答
2513 浏览

c# - 如何在没有 UAC 确认的情况下更改文件关联?

当我在 .NET 应用程序中处理文件关联时,我还没有找到一种方法来设置它,而 UAC 不会弹出确认对话框。

今天,当我打开 uTorrent 并查找文件关联时,我发现您可以启用(写入注册表)而无需 UAC 的任何确认。

这怎么可能?uTorrent 未以管理员身份运行。

编辑:

好吧,我刚刚使用Process Monitor (Sysinternals) 发现 uTorrent.exe 所做的是创建一些密钥(uTorrent.torrent),但在HKCU ( HKEY_CURRENT_USER) 中,而不是在HKEY_CLASSES_ROOT. 无论如何,我也有这些键HKEY_CLASSES_ROOT......也许安装程序创建了这些。没有把握。

0 投票
1 回答
1242 浏览

registry - 文件关联 - 在 Vista 上修改 shell 的编辑动词

我正在寻找以编程方式修改 Vista 上 shell 的编辑动词。例如,我想右键单击编辑(在资源管理器中)以使用 Notepad++ 打开一个 .cs 文件。

如何在 Windows Vista 上更改文件关联?