【问题标题】:Custom icon for custom file in JavaJava中自定义文件的自定义图标
【发布时间】:2019-05-21 20:07:01
【问题描述】:

我正在用 Java 编写一个 windows 程序(比如屏幕上的贴纸,用于写一些重要的笔记等)。当它关闭时,它会自动保存并编码您输入的所有内容。为了保存,我制作了自定义文件扩展名(.T22),但它显示为空白页。我想在程序首次启动时自动更改它。基本上我想要保存文件的自定义图标,例如 photoshop 的 .psd 文件,但都是用 java 制作的。

我尝试浏览了很多网站,但找不到任何人在谈论它。

【问题讨论】:

    标签: java windows


    【解决方案1】:

    这不能通过 Java 实现。好吧,至少没有管理员权限。 Windows 通过从Windows Registries. 获取值来显示文件扩展名的图标问题是,当一个图标发生时,它必须根据this link. 为所有用户获取在链接中,HKEY_CLASSES_ROOT 被引用以实现这一点。这就是“管理员权限”部分的来源。值得一提的是,没有 100% 的把握,一个 .JAR 文件(一个 java 应用程序)可以使用管理员权限执行,前提是您以管理员身份执行 cmd,然后执行 java -jar myapp.jar。一天我花了很多时间从 Java 编辑这些注册表,但没有管理员权限我无法做到这一点。 (如果你这样做了,请告诉我你是怎么做到的:))

    现在,假设您拥有管理员权限,一种方法很简单 来自管理员特权cmdreg 命令。

    如上一个链接中所述,您不能简单(我不太确定)更改文件扩展名的图标,而不提供程序可执行文件的完整路径 (.exe)。是的,您猜对了,您的程序不是 Windows 可执行文件。它只是一个压缩文件。所以,这也被拒绝了。

    现在,您的问题直奔How can I convert a JAR file to an EXE file?。然后,加上管理员权限,你也许可以做到。

    不过,我个人的建议是找到一个 JAR 到 EXE 转换器,它在程序安装期间提供此选项。我的意思是,我相信您在 Windows 安装中看到过类似“Associate .txt files with Notepad ++”之类的东西。

    【讨论】:

    • 经过一段时间的修补,我设法做到了:1. 将 JAR 转换为 EXE 2. 创建 .bat 文件,将默认应用程序设置为打开 .t22 文件作为我的程序 3. 在 inno setup 中创建安装安装后运行批处理文件。缺点:正如我刚刚介绍过 inno setup 我不知道如何通过安装制作 .bat 文件,因此安装文件夹可以在任何地方......因此我让用户无法更改安装文件夹。
    猜你喜欢
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 2011-10-21
    • 1970-01-01
    • 2023-03-17
    • 2014-02-12
    相关资源
    最近更新 更多