0
点赞
收藏
分享

微信扫一扫

前端调用exe程序

90哦吼 2022-04-14 阅读 131
java

实现过程:Java语言编写程序并操作注册表,通过exe4j工具将程序打包成exe,通过前端界面联动exe程序并传参。

一、使用技术

二、Java操作

2.1创建JavaSE项目

2.2导入资源

1.添加registry.jar包

2.将dll文件放入jdk/bin目录下

如果出现以下报错,说明jdk和dll文件的位数不符

 解决办法:下载64为的dll >>>

 2.3创建注册表目录

public class RegisteryUtil {
    static final String KEY_NAME = "aClient";
    static final String EXE__PATH="C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe";

    @SneakyThrows
    public void isRegExist() {
        RegistryKey subKey = Registry.HKEY_CLASSES_ROOT.createSubKey(KEY_NAME,"");
        RegStringValue value = new RegStringValue(subKey, "");
        value.setData("aClientProtocol");
        subKey.setValue(value);
        subKey.setValue(new RegStringValue(subKey, "URL Protocol", EXE__PATH));
        subKey.closeKey();

        RegistryKey subKey1 = Registry.HKEY_CLASSES_ROOT.createSubKey(KEY_NAME + "\\DefaultIcon", EXE__PATH);
        RegStringValue value1 = new RegStringValue(subKey1, "");
        value1.setData(EXE__PATH);
        subKey1.setValue(value1);
        subKey1.closeKey();
        RegistryKey subKey2 = Registry.HKEY_CLASSES_ROOT.createSubKey(KEY_NAME + "\\shell", "");
        subKey2.closeKey();
        RegistryKey subKey3 = Registry.HKEY_CLASSES_ROOT.createSubKey(KEY_NAME + "\\shell\\open", "");
        subKey3.closeKey();
        RegistryKey subKey4 = Registry.HKEY_CLASSES_ROOT.createSubKey(KEY_NAME + "\\shell\\open\\command", "");
        RegStringValue value2 = new RegStringValue(subKey4, "");
        value2.setData(EXE__PATH);
        subKey4.setValue(value2);
        subKey4.closeKey();

    }

}

运行结果:

 三、exe4j打包

 

 

 

 

如果是springboot项目,选择这个:

 

 

四、前端

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>ForC</title>
  <meta name="language" content="zh-CN">
</head>

<body>

<a href="aClient://=参数1=参数2">打开程序</a>

</body>

</html>

因为前端给exe传参只能传递一个参数,所以需要用=号连接,后端进行解析即可。

五、注册表传参格式

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\aClient]
@="aClientProtocol"
"URL Protocol"="C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe"
 
[HKEY_CLASSES_ROOT\aClient\DefaultIcon]
@="C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe,1" 

[HKEY_CLASSES_ROOT\aClient\shell]
@="" 

[HKEY_CLASSES_ROOT\aClient\shell\open]
@=""

[HKEY_CLASSES_ROOT\aClient\shell\open\command]
@="\"C:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe\" \"%1\""

六、错误解决

6.1依赖问题

解决方案:可以将依赖包推送至本地maven仓库>>>

6.2启动类错误

 解决:

 6.3启动awt错误

 解决方案:

举报

相关推荐

0 条评论