參考了太多的其它博客,就不一一列舉了,願原博客博主見諒
主要主關注註冊表修改,其它不管,
將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}"
可以查看幫助文檔
[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>