通过Java获取Windows文件关联

2024-02-20

我以为这会是一件容易的事,但是。 。 。 我希望我的 Java 程序能够获取用户的 Windows 文件关联。 换句话说,我想知道用户使用什么来打开.txt文件、.cvs文件等。 assoc 和 ftype 命令提供该信息,但不提供给用户。 换句话说,如果我将文本编辑器设置为 Notepad++, assoc 和 ftype 不显示它。它们显示系统默认值“记事本”。 看来我必须从注册表中获取该信息,但我有两个问题。 1)我不知道我想要提取的确切注册表项 (虽然我看过“reg query HKEY_CURRENT_USER、HKEY_CLASSES_ROOT等) 2)我不知道如何从注册表中提取密钥。我见过提到 JNI 但还没有弄清楚细节。 任何提示表示赞赏。


在Win7中,您可以在以下位置找到每个文件扩展名的“类”*

HKLM\SOFTWARE\Classes\<extension>\(Default)

key.

例如,在我的机器上

HKLM\SOFTWARE\Classes\.txt

有一个(默认)密钥txtfile.

在同一路径中,您可以找到打开该类文件的内容txtfile:

HKLM\SOFTWARE\Classes\txtfile

其中应该有一个子路径...\shell\open\command

在我的系统上,

HKLM\SOFTWARE\Classes\txtfile\shell\open\command\(Default)

is

%SystemRoot%\system32\NOTEPAD.EXE %1

您可以解析它以找到打开 .txt 文件的可执行文件。

对于特定于用户的自定义,您可以替换

HKLM\SOFTWARE\Classes\

with

HKCU\Software\Classes\

话虽这么说,如果可能的话,我喜欢 MadProgrammer 的建议。

* 我确信“类”有一个更好的名称,只是我不知道。

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

通过Java获取Windows文件关联 的相关文章

  • 如何向 OkHttp 请求拦截器添加标头?

    我将这个拦截器添加到我的 OkHttp 客户端 public class RequestTokenInterceptor implements Interceptor Override public Response intercept C
  • BigDecimal 中 Divide 方法的 Scale()

    new BigDecimal 37146555 53880000 divide new BigDecimal 1000000 scale 这返回10 但根据API divide method 返回一个 BigDecimal 其值为 这个 除
  • AES BadPaddingException

    如果我使用错误的密钥或错误的盐进行解密 则会引发 BadPaddingException 我希望返回一个不正确的字符串 doFinal 导致解密方法出现异常 信息 This is just an example Unfug S F V s
  • Eclipse 内容协助无法在枚举常量参数列表中工作

    使用 eclipse 当我输入以下内容时 public enum Foo A Integer private final Integer integer private Foo Integer integer this integer in
  • JSF 错误 - IllegalStateException:PWC3999:提交响应后无法创建会话[重复]

    这个问题在这里已经有答案了 我是 JSF 新手 正在构建一个使用 Facelet 创建的应用程序 这是我的模板master xhtml
  • 使用 Thymeleaf 时我们应该删除 HTML 属性吗?

    我正在研究 Thymeleaf 发现几乎所有示例中都有 Thymeleaf 的标签值以及标准 HTML 值 例如 这些
  • Hibernate、MySQL 视图和 hibernate.hbm2ddl.auto = 验证

    我可以在 Hibernate 中使用 MySQL 视图 将它们视为表 即 该实体与为表创建的实体没有什么不同 但是 当 Hibernate 设置为验证模型时 我的应用程序将不会部署 因为它找不到视图 因为它假设它是一个表 是否可以在启用部署
  • Java中的运算符重载和覆盖

    运算符重载和运算符重写有什么区别 它们在继承和控制台程序中是否相同 Java 不支持运算符重载和重写 检查以下引用自的描述 http java sun com docs white langenv Simple doc2 html http
  • EasyMock : java.lang.IllegalStateException: 1 个匹配器预期,2 个记录

    我在使用 EasyMock 2 5 2 和 JUnit 4 8 2 通过 Eclipse 运行 时遇到问题 我已阅读此处所有类似的帖子 但尚未找到答案 我有一个包含两个测试的类 它们测试相同的方法 我正在使用匹配器 每个测试单独运行时都会通
  • 更改 Spring Web 应用程序的默认会话超时

    我必须测试一个由 spring 和 jsp 编写的 Web 应用程序 应用程序的默认会话超时为 30 分钟 我想减少会话超时 为此 我改变了web xml文件输入tomcatInstallationLocation conf 但这不起作用
  • 未从线程接收位置数据

    我尝试使用计时器经常发送包含用户位置的短信 最初 我遇到了空指针异常 这是由于我犯了一个简单的错误 一旦解决了这个问题 一切似乎都运行良好 但是 它永远不会获取我的位置 因此 不断发送的文本显示 无法接收位置 我想问的是为什么它无法获取我的
  • 不想保留一对一的实体

    假设我有两节课Employee and Department In Employee我已经写了 OneToOne fetch FetchType EAGER cascade CascadeType ALL JoinColumn name d
  • C3P0:生产中未返回的连接超时?

    参数unreturnedConnectionTimeout给定时间段后未返回的连接超时 我正在尝试决定是否应该在我的制作中使用它persistence xml 使用它的一大优点是连接池将能够从泄漏的连接中恢复 一个很大的缺点是泄漏的连接将很
  • 从字符串中提取文本 Java

    使用此字符串 ADACADABRA 如何从java中的字符串 ADACADABRA 中提取 CADA 以及如何提取 和 之间的id从下面的链接 http www youtube nocookie com embed zaaU9lJ34c5
  • 飞碟 - html 实体未呈现

    我正在使用 Flying saucer lib 生成 pdf 但我对一些 html 实体有问题 我已经在寻找解决方案 我在这个论坛和其他地方找到了很多提示 但仍然存在问题 我尝试过这种方法 http sdtidbits blogspot c
  • System.out.println("嗨"+6+10);打印Hi610?

    为什么要这样做 太令人困惑了 运算符优先级和结合性 两点 操作员 如果一个或两个参数都是字符串 则进行字符串连接 操作员 从左到右工作 所以在你的例子中 Hi 6 is Hi6 and Hi6 10 is Hi610 编辑 正如您在对另一个
  • 为什么我的 Java 路径中添加了“L”?

    我在我的类路径中加载了一个 jar 在 iReport 中 如果重要的话 我确信它具有所需的方法 但是当我尝试测试连接 从而调用该 jar 时 我得到一个 java lang NoSuchMethodError 说它正在引用班上 Lorg
  • Hibernate 命名查询使用 Like 和 % % 运算符?

    在我的 Hibernate JPA 示例代码中 public List
  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用
  • Java:如何检测(并更改?)System.console 的编码?

    我有一个在控制台上运行的程序 其变音符号和其他特殊字符在 Mac 上以 的形式输出 这是一个简单的测试程序 public static void main String args System out println h h System

随机推荐

  • Java:打破jtable中的焦点循环

    在我的 JTable 中 我想像在 Excel 中一样编辑所有相关单元格 我实现了 ENTER 停止编辑单元格并将焦点转移到下一个单元格 但是 当我在最后一个单元格中按 ENTER 时 焦点循环使我跳到第一个单元格 但我想继续在表之外并将焦
  • Django mysql 连接过多

    我将 Django 与 mysql 一起使用 并遇到连接过多的问题 我从命令行运行 python 脚本 但与 Django 模型集成以检查数据库中的数据 该脚本每 30 秒运行一次 我使用线程来控制它 My function 是检查数据库状
  • 将数据从宽变为长:基于列名称的新变量

    我想将数据集从宽格式重塑为长格式 该数据集包含 300 个变量 每个变量均按照以下原则命名 ModelID Emotion ModelGender 样本数据如下 df lt structure list X71 Anger Male str
  • 向后循环 python 字符串的最佳方法

    向后循环 python 字符串的最佳方法是什么 对于所有需要 1 偏移量的情况 以下内容似乎有点尴尬 string trick or treat for i in range len string 1 0 1 1 print string
  • docker run“--env-file”提供的文件未按预期评估的解决方法

    我当前运行 docker 容器的设置如下 我有一个main env file Main export PRIVATE IP echo localhost export MONGODB HOST PRIVATE IP export MONGO
  • Laravel API,如何正确处理错误

    任何人都知道 Laravel 中处理错误的最佳方法是什么 有什么规则或需要遵循吗 目前我正在这样做 public function store Request request plate Plate create request gt al
  • 如何安装 json gem - 无法构建 gem 本机扩展

    我正在尝试将 Rails 应用程序部署到我的 ubuntu Linux 服务器 我正在使用 capistrano 和捆绑器 当安装 gems 时 它失败并出现以下错误 Installing json 1 7 7 with native ex
  • java计算句子中每个单词的频率

    我正在编写一个非常基本的java程序 它计算句子中每个单词的频率 到目前为止我已经做到了这么多 import java io class Linked public static void main String args throws I
  • MySQL的行数count(*)与information_schema中的table.table_rows不一致

    我遇到了一个奇怪的现象 我希望有人可以向我解释一下 我有一些 静态 表格 它们每天更改一次 mysql gt select appObjectGroups as tbl count as num from appObjectGroups u
  • 数据库丢失!寻找根本原因

    假设有一天 管理员像往常一样来到办公室 在 Sql Server 数据库上执行管理任务 他惊讶地发现数据库丢失了 他不知道是谁删除了它 或者是来自外部批处理或 SQL 注入等 从哪里开始调查 以及应该采取哪些重要参数 发现来找到删除数据库的
  • OpenCPU 上的自定义 R 包/找到包,但没有可见的函数

    CI 为 OpenCPU 编写了一个 R 包 并希望在我自己的云服务器上使用它 即使包本身被识别并且可以更新 我也无法访问任何功能 并且我可以通常通过 POST 和 GET 访问其他 非自定义 例如基本或统计 包 我已经安装了自定义包以及所
  • 根据两个属性值的组合选择唯一节点

    我有一些 XML 看起来像这样
  • 当公式更改单元格值时触发脚本

    我正在使用 Google 脚本 然后在 Google 工作表中的特定列发生更改时发送电子邮件 单元格中的信息可以手动输入 也可以根据其他单元格中的信息使用公式完成 当手动输入信息时 脚本可以正常工作 但在公式运行时则不行 我已经阅读了它并意
  • 为什么我无法从其他节点 IP 访问 kubernetes pod?

    我已经在 Kubespray 的帮助下安装了 kubernetes 集群 集群有 3 个节点 2 个主节点和 1 个工作节点 节点1 10 1 10 110 节点2 10 1 10 111 节点3 10 1 10 112 kubectl g
  • 如何在 NancyFX 中写入流输出?

    我正在使用 Nancy 编写一个简单的 Web 应用程序 至少一个请求会导致长度未知的流 因此我无法提供Content Length 我想用Transfer Encoding chunked 或 在这种情况下同样可以接受 Connectio
  • 在 Ruby 中迭代无限序列

    我正在尝试解决 Project Euler 问题 12 三角形数序列是通过将自然数相加生成的 数字 所以第 7 个三角形数 将为 1 2 3 4 5 6 7 28 前十项是 1 3 6 10 15 21 28 36 45 55 让我们列出前
  • PHP XML/HTML DOM 获取带有空格的 CSS 类属性

    我有以下问题 我正在使用 PHP XML DOM 解析器 当我解析现实世界的 HTML 时 许多元素的 class 属性中都有空格 因此这些元素实际上有多个 CSS 类 但是 当我使用 getAttribute 查询 DOMNode 时 我
  • 如何使用 REGEXP_SUBSTR 解析数据?

    我有一个像这样的数据集 见下文 我尝试提取形式为 variable number of digits hyphen only one digit 的数字 with mcte as select ILLD ELKJS 00000000 ELK
  • Composer 软件包已更新但未安装

    做完之后 sudo php composer phar update 我得到以下信息 Loading composer repositories with package information Updating dependencies
  • 通过Java获取Windows文件关联

    我以为这会是一件容易的事 但是 我希望我的 Java 程序能够获取用户的 Windows 文件关联 换句话说 我想知道用户使用什么来打开 txt文件 cvs文件等 assoc 和 ftype 命令提供该信息 但不提供给用户 换句话说 如果我