Skip to content

Commit

Permalink
DISMTools 0.6 Preview 7 (#196)
Browse files Browse the repository at this point in the history
* Update assembly information

* [DynaLog] Add log file age detection

* [Info Saver] Do not mention text box in results dialog

* Update Inno Setup installer script (#192)

* Update Inno Setup installer script

* Update Installer/dt.iss

* Update dt.iss

Fix necessary things

---------

Co-authored-by: CodingWonders <[email protected]>

* [Installer] Additional Fixes

* [Translations] Italian correction: "Impegna" -> "Applica"

* [UnattendGen] Update versions

* [PE Helper] Remove log path warning for Selenium

* [Translations] Translate "Grab from last image" and Italian fixes

* [AppEvent] Include portable copy flag

* [Fix] Fixed exception

* [ISO Creator] Add Taskbar Helper

* [Enhance] Add panel border

* [Unattended answer file] Change password mask character

* [PE Helper] Add drop shadow to image backgrounds

* [ISO Creator] Use List View and more translations

* [About_Licenses] Add WindowsAPICodePack

* [Event] Add AME Playbook detection to output with DynaLog

* [Event] Add detection of AME 10/11

* [REL] Update What's New section and Update Info files

---------

Co-authored-by: bovirus <[email protected]>
  • Loading branch information
CodingWonders and bovirus authored Nov 23, 2024
1 parent d867cab commit b817ea4
Show file tree
Hide file tree
Showing 37 changed files with 421 additions and 130 deletions.
3 changes: 2 additions & 1 deletion ApplicationEvents.vb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ Namespace My
" - DISMTools Version: " & My.Application.Info.Version.ToString() & CrLf &
" - Preview release? " & If(DISMTools.MainForm.dtBranch.Contains("preview"), "Yes", "No") & CrLf &
" - Branch: " & DISMTools.MainForm.dtBranch & CrLf &
" - Build time: " & DISMTools.PrgAbout.RetrieveLinkerTimestamp(My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe").ToString("yyMMdd-HHmm"))
" - Build time: " & DISMTools.PrgAbout.RetrieveLinkerTimestamp(My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe").ToString("yyMMdd-HHmm") & CrLf &
" - Portable copy? " & If(File.Exists(My.Application.Info.DirectoryPath & "\portable"), "Yes", "No") & CrLf)
' Get image information if a project has been loaded
If DISMTools.MainForm.isProjectLoaded And Not DISMTools.MainForm.OnlineManagement Then
Try
Expand Down
1 change: 1 addition & 0 deletions DISMTools.vbproj
Original file line number Diff line number Diff line change
Expand Up @@ -857,6 +857,7 @@
<Compile Include="Utilities\DT_Utils.vb" />
<Compile Include="Utilities\DynaLog.vb" />
<Compile Include="Utilities\ImageWatcher.vb" />
<Compile Include="Utilities\PlaybookDetector.vb" />
<Compile Include="Utilities\PriReader.vb" />
<Compile Include="Utilities\TaskbarHelper.vb" />
<Compile Include="Videos\Video.vb" />
Expand Down
10 changes: 9 additions & 1 deletion Helpers/extps1/PE_Helper/PE_Helper.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -1369,8 +1369,16 @@ function Set-Serviceability
New-Item -Path "$folderPath\`$DISMTOOLS.~LS\PackageTemp\$guidStr" -ItemType Directory | Out-Null
Write-Host "Successfully created the scratch directory."
$scratchDir = "$folderPath\`$DISMTOOLS.~LS\PackageTemp\$guidStr"
New-Item -Path "$folderPath\Windows\Logs\DISMTools" -ItemType Directory -Force -ErrorAction SilentlyContinue | Out-Null
# Bit of a mouthful, but good for PowerShell verbs (+ scratch dir support)
dism /image=$ImagePath /scratchdir="$scratchDir" /is-serviceable
if (Test-Path -Path "$folderPath\Windows\Logs\DISMTools")
{
dism /image=$ImagePath /logpath="$folderPath\Windows\Logs\DISMTools\serviceability.log" /scratchdir="$scratchDir" /is-serviceable
}
else
{
dism /image=$ImagePath /scratchdir="$scratchDir" /is-serviceable
}
}
catch
{
Expand Down
Binary file modified Helpers/extps1/PE_Helper/backgrounds/winpe_amd64.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Helpers/extps1/PE_Helper/backgrounds/winpe_arm.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Helpers/extps1/PE_Helper/backgrounds/winpe_arm64.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Helpers/extps1/PE_Helper/backgrounds/winpe_x86.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
72 changes: 49 additions & 23 deletions Installer/dt.iss
Original file line number Diff line number Diff line change
@@ -1,18 +1,25 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "DISMTools"
#define MyAppVersion "0.6"
#define MyAppPublisher "CodingWonders Software"
#define MyAppURL "https://github.com/CodingWonders/DISMTools"
#define MyAppExeName "DISMTools.exe"
#define MyAppAssocName MyAppName + " project"
#define MyAppAssocExt ".dtproj"
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt
#define verConst "0.6 Preview"

#define pfDir "{commonpf}\DISMTools\Preview"
#define MyAppName "DISMTools"
#define MyAppExeName "DISMTools.exe"
#define MyAppVersion GetVersionNumbersString('.\files\' + MyAppExeName)
#define MyAppPublisher "CodingWonders Software"
#define MyAppURL "https://github.com/CodingWonders/DISMTools"
#define MyAppAssocName MyAppName + " project"
#define MyAppAssocExt ".dtproj"
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt

#define scName "DISMTools Preview"
#define pfDir "{commonpf}\DISMTools\Preview"

#define scName "DISMTools Preview"

#define CurrentYear GetDateTimeString('yyyy','','')
#define MyAppCopyright "(c) 2022-" + CurrentYear + " " + MyAppPublisher

#define AppListName MyAppName + " " + verConst

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
Expand All @@ -21,35 +28,55 @@ AppId={{AB033696-A4AC-4DF2-B802-9D8BB8B0EEB5}}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}

; Uninstaller info
UninstallDisplayName={#AppListName}
UninstallDisplayIcon={app}\{#MyAppExeName}
AppPublisher={#MyAppPublisher}

; Copyright info
AppCopyright={#MyAppCopyright}

; URL support setup
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}

; Setup version info
VersionInfoDescription={#MyAppName} installer
VersionInfoProductName={#MyAppName}
VersionInfoProductVersion={#MyAppVersion}
VersionInfoProductTextVersion={#MyAppVersion}
VersionInfoVersion={#MyAppVersion}
VersionInfoTextVersion={#MyAppVersion}

; Language info
ShowLanguageDialog=yes
UsePreviousLanguage=no
LanguageDetectionMethod=uilanguage

;Wizard setup
WizardStyle=modern
WizardImageFile=mainImg.bmp
WizardSmallImageFile=logo.bmp

; Uncomment the following line to run in non administrative install mode (install for current user only.)
PrivilegesRequired=admin

DefaultDirName={#pfDir}
DisableDirPage=yes
ChangesAssociations=yes
DisableProgramGroupPage=yes
LicenseFile=.\files\LICENSE
; Uncomment the following line to run in non administrative install mode (install for current user only.)
PrivilegesRequired=admin
OutputBaseFilename=dt_setup
Compression=lzma
SolidCompression=yes
WizardStyle=modern
DisableWelcomePage=no
ArchitecturesInstallIn64BitMode=x64
CloseApplications=yes
WizardImageFile=mainImg.bmp
WizardSmallImageFile=logo.bmp
SetupIconFile=dt_inst.ico
UninstallFilesDir={#pfDir}

; Setup version info
VersionInfoProductVersion={#MyAppVersion}
VersionInfoProductTextVersion={#MyAppVersion}
VersionInfoVersion={#MyAppVersion}
VersionInfoTextVersion={#MyAppVersion}

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "es"; MessagesFile: "compiler:Spanish.isl"
Expand Down Expand Up @@ -145,7 +172,6 @@ Root: HKCU; Subkey: "Software\DISMTools\Preview\Personalization"; ValueType: dwo
Root: HKCU; Subkey: "Software\DISMTools\Preview\Personalization"; ValueType: string; ValueName: "LogFont"; ValueData: "Consolas"; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCU; Subkey: "Software\DISMTools\Preview\Personalization"; ValueType: dword; ValueName: "LogFontBold"; ValueData: 0; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCU; Subkey: "Software\DISMTools\Preview\Personalization"; ValueType: dword; ValueName: "LogFontSi"; ValueData: 11; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCU; Subkey: "Software\DISMTools\Preview\Personalization"; ValueType: dword; ValueName: "NewDesign"; ValueData: 1; Flags: uninsdeletevalue createvalueifdoesntexist
Root: HKCU; Subkey: "Software\DISMTools\Preview\Personalization"; ValueType: dword; ValueName: "SecondaryProgressPanelStyle"; ValueData: 1; Flags: uninsdeletevalue createvalueifdoesntexist

Root: HKCU; Subkey: "Software\DISMTools\Preview\Program"; Flags: uninsdeletekey
Expand Down Expand Up @@ -193,4 +219,4 @@ Filename: "{cmd}"; Parameters: "/C qprocess wimserv.exe && if %ERRORLEVEL% equ 0
Type: filesandordirs; Name: "{#pfDir}\logs"
Type: filesandordirs; Name: "{#pfDir}\tempinfo"
Type: files; Name: "{#pfDir}\settings.ini"
Type: filesandordirs; Name: "{#pfDir}"
Type: filesandordirs; Name: "{#pfDir}"
22 changes: 18 additions & 4 deletions MainForm.vb
Original file line number Diff line number Diff line change
Expand Up @@ -538,6 +538,7 @@ Public Class MainForm
End Function

Sub InitDynaLog()
DynaLog.CheckLogAge()
DynaLog.LogMessage("DISMTools - Version " & My.Application.Info.Version.ToString() & " (" & dt_codeName & "), build timestamp: " & PrgAbout.RetrieveLinkerTimestamp(My.Application.Info.DirectoryPath & "\" & My.Application.Info.AssemblyName & ".exe").ToString("yyMMdd-HHmm"))
' Display copyright/author information for every component
DynaLog.LogMessage("Components:")
Expand Down Expand Up @@ -590,6 +591,19 @@ Public Class MainForm
Catch ex As Exception

End Try

' Detect presence of verified AME Playbooks in current system. This is NOT a way to block these projects, but a way to help isolate
' specific program bugs on those types of systems
If PlaybookDetector.DetectInstalledPlaybook(PlaybookDetector.VerifiedPlaybooks.AtlasOS) Then
DynaLog.LogMessage("Atlas OS has been detected on this system. There may be compatibility issues with DISMTools on your system", False)
End If
If PlaybookDetector.DetectInstalledPlaybook(PlaybookDetector.VerifiedPlaybooks.ReviOS) Then
DynaLog.LogMessage("Revision (ReviOS) has been detected on this system. There may be compatibility issues with DISMTools on your system", False)
End If
If PlaybookDetector.DetectInstalledPlaybook(PlaybookDetector.VerifiedPlaybooks.AME) Then
DynaLog.LogMessage("AME 10/11 has been detected on this system. There may be compatibility issues with DISMTools on your system", False)
End If

If Not Directory.Exists(Application.StartupPath & "\logs") Then Directory.CreateDirectory(Application.StartupPath & "\logs")
If Not Debugger.IsAttached Then SplashScreen.Show()
Thread.Sleep(2000)
Expand Down Expand Up @@ -6928,8 +6942,8 @@ Public Class MainForm
LinkLabel19.Text = "Smontare l'immagine"
GroupBox4.Text = "Operazioni sull'immagine"
Button26.Text = "Monta l'immagine..."
Button27.Text = "Impegna le modifiche correnti"
Button28.Text = "Impegnare e smontare l'immagine"
Button27.Text = "Applica le modifiche correnti"
Button28.Text = "Applicare e smontare l'immagine"
Button29.Text = "Smonta l'immagine eliminando le modifiche"
Button25.Text = "Ricarica la sessione di assistenza"
Button24.Text = "Cambia gli indici dell'immagine..."
Expand Down Expand Up @@ -8586,8 +8600,8 @@ Public Class MainForm
LinkLabel19.Text = "Smontare l'immagine"
GroupBox4.Text = "Operazioni sull'immagine"
Button26.Text = "Monta l'immagine..."
Button27.Text = "Impegna le modifiche correnti"
Button28.Text = "Impegnare e smontare l'immagine"
Button27.Text = "Applica le modifiche correnti"
Button28.Text = "Applicare e smontare l'immagine"
Button29.Text = "Smonta l'immagine eliminando le modifiche"
Button25.Text = "Ricarica la sessione di assistenza"
Button24.Text = "Cambia gli indici dell'immagine..."
Expand Down
4 changes: 2 additions & 2 deletions My Project/AssemblyInfo.vb
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' mediante el asterisco ('*'), como se muestra a continuación:
' <Assembly: AssemblyVersion("1.0.*")>

<Assembly: AssemblyVersion("0.6.0.24111")>
<Assembly: AssemblyFileVersion("0.6.0.24111")>
<Assembly: AssemblyVersion("0.6.0.24112")>
<Assembly: AssemblyFileVersion("0.6.0.24112")>
12 changes: 6 additions & 6 deletions My Project/Resources.Designer.vb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 24 additions & 8 deletions My Project/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,18 @@ Permission is hereby granted, free of charge, to any person obtaining a copy of

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

- Windows API Code Pack

MIT License

Copyright (c) 2009 - 2010 Microsoft Corporation, then modifications by Jacob Slusser 2014, Peter William Wagner 2017 - 2024

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</value>
</data>
<data name="help_glyph" type="System.Resources.ResXFileRef, System.Windows.Forms">
Expand Down Expand Up @@ -777,17 +789,21 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
<data name="WhatsNew" xml:space="preserve">
<value>Bugfixes:

- The image name and description fields of the new design no longer use mnemonics, to prevent ampersands from showing as underscores
- The image information report results dialog no longer mentions a text box
- Italian translations have been slightly fixed (thanks @bovirus for spotting)
- Fixed an issue where a log path warning would be triggered during serviceability tests with the OS installer
- Fixed an exception that would sometimes happen when launching the AppX package addition dialog

New features:

- The menu items of Web Resources are now translated
- Markdig has been updated to version 0.38.0
- The program installer is now built with a new version of Inno Setup
- When appending changes of an image to another index, you can now grab the name of the last index
- The time taken for the unattended answer file to be applied by the OS installer has been reduced
- You will now see progress indication in the taskbar for certain tasks
- CODE: work on a unified logging infrastructure has started</value>
- The DynaLog logging system has received log cleanup functionality
- Improvements have been made to the installers (#192, thanks @bovirus)
- UnattendGen has been updated to the latest version
- Exception reporting now includes information about whether or not a copy is portable
- During ISO creation, the taskbar button will now show a progress bar
- The mask character of password fields in the unattended answer file generation wizard has been updated
- Image file information in the ISO creation wizard is now shown in a list view
- The program now detects verified AME Playbooks and logs results with DynaLog. This is done to help isolate issues more</value>
</data>
<data name="split_img" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\split_img.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
Expand Down
4 changes: 4 additions & 0 deletions Panels/Exe_Ops/Migration/MigrationForm.vb
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,8 @@ Public Class MigrationForm
Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
Close()
End Sub

Private Sub MigrationForm_Paint(sender As Object, e As PaintEventArgs) Handles MyBase.Paint
ControlPaint.DrawBorder(e.Graphics, ClientRectangle, Color.FromArgb(53, 153, 41), ButtonBorderStyle.Solid)
End Sub
End Class
2 changes: 1 addition & 1 deletion Panels/Get_Ops/InfoSave/InfoSaveResults.Designer.vb

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit b817ea4

Please sign in to comment.