欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

window系统通过inno setup打包软件安装包实现js调用本机的exe文件

程序员文章站 2024-02-07 08:30:40
...

参考了太多的其它博客,就不一一列举了,愿原博客博主见谅

主要主关注注册表修改,其它不管,

将jar包打包为exe可执行文件,不用安装jdk即可运行参考https://blog.csdn.net/qq_25189723/article/details/80052389

一、inno setup下载(百度有很多),推荐***,***的帮助文档也是中文的

二、安装制作(百度也有很多)

三、修改inno setup打包软件的脚本,实现安装时注册表修改

下面是根据教程生成的一个示例脚本([Registry]部分是生成之后加入的)

示例脚本里所有都采用默认,用户不能做任何操作

; 脚本由 Inno Setup 脚本向导 生成!
; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!

#define MyAppName "TscApp"
#define MyAppVersion "1.5"
#define MyAppPublisher "科创"
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "TscApp.exe"

[Setup]
; 注: AppId的值为单独标识该应用程序。
; 不要为其他安装程序使用相同的AppId值。
; (若要生成新的 GUID,可在菜单中点击 "工具|生成 GUID"。)
AppId={{36616C85-0471-4E05-A010-FD11B6BC6484}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableDirPage=yes
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
; 以下行取消注释,以在非管理安装模式下运行(仅为当前用户安装)。
;PrivilegesRequired=lowest
OutputDir=C:\Users\yuye\Desktop
OutputBaseFilename=TscApp-setup
SetupIconFile=C:\Users\yuye\Desktop\项目云盘.ico
Compression=lzma
SolidCompression=yes
WizardStyle=modern

[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"

[Registry]
;在脚本中用""表示一个"字符
;在HKEY_CLASSES_ROOT键下创建一个名为TscApp的子路径,flags:uninsdeletekey表示卸载的时候删除注册表
Root: HKCR; Subkey: "TscApp"; Flags: uninsdeletekey
;在TscApp自路径中创建一个值,名称为""(默认),值为TscAppProtocol
Root: HKCR; Subkey: "TscApp"; ValueType: string; ValueName: ""; ValueData: "TscAppProtocol"
;在TscApp路径中创建一个名称为URL Protocol,值为C:\Program Files (x86)\TscApp\TscApp.exe的值
Root: HKCR; Subkey: "TscApp"; ValueType: string; ValueName: "URL Protocol"; ValueData: "C:\Program Files (x86)\TscApp\TscApp.exe"
;在TscApp目录创建一个DefaultIcon子目录,并创建一个默认名称值为C:\Program Files (x86)\TscApp\TscApp.exe,1的值,其中1为参数占位符
Root: HKCR; Subkey: "TscApp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "C:\Program Files (x86)\TscApp\TscApp.exe,1"
;在TscApp目录下创建一个shell子目录下创建一个open子目录下创建一个command子目录并创建一个默认名称值为"""C:\Program Files (x86)\TscApp\TscApp.exe"" ""%1"""的键
;其中%1为占位符,用于获取参数
Root: HKCR; Subkey: "TscApp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """C:\Program Files (x86)\TscApp\TscApp.exe"" ""%1"""
;实际中只需要将TscApp修改为你想要的名称,所有路径修改为exe文件对用的路径就可以了,其他不用做任何修改

[Files]
Source: "C:\Users\yuye\Desktop\TscApp.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Users\yuye\Desktop\jre\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; 注意: 不要在任何共享系统文件上使用“Flags: ignoreversion”

[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

可以查看帮助文档

window系统通过inno setup打包软件安装包实现js调用本机的exe文件

[Registry]部分说明

帮助文档中注册表项对注册表的各个参数有详细的说明

Root:根目录,表示在那个目录下创建下级,可取值

HKCU (HKEY_CURRENT_USER)
HKLM (HKEY_LOCAL_MACHINE)
HKCR (HKEY_CLASSES_ROOT)
HKU (HKEY_USERS)
HKCC (HKEY_CURRENT_CONFIG)

Subkey:表示在root根键下创建的一个键值,可以有多层目录

ValueType:值类型,可取值(none,string,expandsz,multisz,dword,qword,binary)

ValueName:创建的值名称

ValueData:创建名称所对应的值

Flags:表示对注册表做怎样的操作,如安装和删除的时候怎么操作,可取值在帮助文档中

<a href="tscapp://http://localhost:8080/files/qrcode/2019/11/29/1574990893604.png">执行可执行文件</a>

相关标签: js调用exe