#define MyAppName "InstallubuntuWSL"
#define MyAppVersion "1.2"
#define MyAppPublisher "DBS"
#define MyAppURL "https://dbs.fr"
#define MyAppExeName "InstallUbuntuWSL"
#define MyAppInstallPath "\\NAS\WSL_Ubuntu\Installer"
#define MyAppDefaultDir "C:\Users\{code:GetLoggedUsername}\UbuntuWSL"
[Setup]
AppId={{PPPPPPP-PPPP-PPPP-PPPP-PPPPPPP}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
VersionInfoVersion=1.1.6
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
UsePreviousAppDir=no
DefaultDirName={#MyAppDefaultDir}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile={#MyAppInstallPath}\distrib\gpl
OutputDir=C:\temp
OutputBaseFilename=Install_WSL_Ubuntu_Setup
SetupIconFile={#MyAppInstallPath}\distrib\setup.ico
Compression=lzma
SolidCompression=yes
WizardSmallImageFile={#MyAppInstallPath}\distrib\dbs.bmp
AlwaysRestart=no
DisableProgramGroupPage=yes
DisableDirPage=yes
ShowLanguageDialog=auto
UninstallDisplayIcon={#MyAppDefaultDir}\install\ubuntu.ico
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "fr"; MessagesFile: "compiler:Languages\French.isl"
[Files]
Source: "{#MyAppInstallPath}\distrib\*"; DestDir: {tmp}
Source: "{#MyAppInstallPath}\package\*"; DestDir: "{app}\install"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#MyAppInstallPath}\package\installUbuntu.bat"; DestDir: "C:\Users\{code:GetLoggedUsername}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"; Flags: ignoreversion recursesubdirs createallsubdirs
[Icons]
Name: "C:\Users\{code:GetLoggedUsername}\AppData\Roaming\Microsoft\Windows\Start Menu\Ubuntu"; Filename: "{app}\install\ubuntu1804.exe"
[Run]
Filename: "{tmp}\7za.exe"; Parameters: "x {tmp}\ubuntu.zip -o{app}"; Flags: runhidden; StatusMsg: Extracting Ubuntu
[UninstallDelete]
Type: filesandordirs; Name: "C:\Users\{code:GetLoggedUsername}\UbuntuWSL"
Type: filesandordirs; Name: "C:\Users\{code:GetLoggedUsername}\Desktop\ubuntu1804.exe"
[Code]
var
NeedRestartFlag: Boolean;
function GetLoggedUsername(Param: string): string;
var
TmpFileName, ExecStdout: AnsiString;
ResultCode: integer;
begin
TmpFileName := ExpandConstant('{tmp}\loggedusername.txt');
ExtractTemporaryFile('getLoggedUsername.bat');
ExtractTemporaryFile('query.exe');
Exec(ExpandConstant('{tmp}\getLoggedUsername.bat'), ExpandConstant('{tmp}'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
if LoadStringFromFile(TmpFileName, ExecStdout) then
begin
SetLength(ExecStdout,LENGTH(ExecStdout)-3)
Result := ExecStdout;
end
else
begin
Result := ''
end;
DeleteFile(TmpFileName)
end;
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if CurStep = ssInstall then
begin
EnableFsRedirection(False);
if not (FileExists('C:\Windows\System32\bash.exe')) then
begin
NeedRestartFlag := True
Exec(ExpandConstant('dism.exe'), '/quiet /NoRestart /online /Enable-Feature /featurename:Microsoft-Windows-Subsystem-Linux', '', SW_HIDE, ewNoWait, ResultCode);
Sleep(850)
end
else
begin
NeedRestartFlag := False
end;
end;
if CurStep = ssPostInstall then
begin
EnableFsRedirection(False);
if (FileExists('C:\Windows\System32\bash.exe')) then
begin
Exec('schtasks.exe', ExpandConstant('/create /sc ONLOGON /tn InstallUbuntuWSL /F /ru AD\{code:GetLoggedUsername} /tr {app}\install\installUbuntu.bat'), '', SW_HIDE, ewWaitUntilTerminated, ResultCode)
Exec('schtasks.exe', '/run /tn InstallUbuntuWSL', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
Exec('schtasks.exe', '/delete /tn InstallUbuntuWSL /f', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
end
end;
end;
function NeedRestart(): Boolean;
begin
if NeedRestartFlag then
begin
Log('Need restart');
Result := True;
end
else
begin
Log('Do not need restart');
Result := False;
end;
end;
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎