diff --git a/DISMTools.vbproj b/DISMTools.vbproj index 12d57adf..412d9351 100644 --- a/DISMTools.vbproj +++ b/DISMTools.vbproj @@ -160,6 +160,12 @@ Settings.settings True + + WimScriptEditor.vb + + + Form + ProgressPanel.vb @@ -570,6 +576,9 @@ My.Resources Designer + + WimScriptEditor.vb + ProgressPanel.vb diff --git a/Installer/Output/dt_setup.exe b/Installer/Output/dt_setup.exe index ce9155f3..b6290087 100644 Binary files a/Installer/Output/dt_setup.exe and b/Installer/Output/dt_setup.exe differ diff --git a/MainForm.Designer.vb b/MainForm.Designer.vb index 051bd636..8ae7ed3c 100644 --- a/MainForm.Designer.vb +++ b/MainForm.Designer.vb @@ -166,6 +166,8 @@ Partial Class MainForm Me.UnattendedAnswerFileManagerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ReportManagerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.MountedImageManagerTSMI = New System.Windows.Forms.ToolStripMenuItem() + Me.ToolStripSeparator28 = New System.Windows.Forms.ToolStripSeparator() + Me.WimScriptEditorCommand = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator9 = New System.Windows.Forms.ToolStripSeparator() Me.ActionEditorToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() Me.ToolStripSeparator22 = New System.Windows.Forms.ToolStripSeparator() @@ -1244,7 +1246,7 @@ Partial Class MainForm ' 'ToolsToolStripMenuItem ' - Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ImageConversionToolStripMenuItem, Me.ToolStripSeparator12, Me.MergeSWM, Me.ToolStripSeparator18, Me.RemountImageWithWritePermissionsToolStripMenuItem, Me.ToolStripSeparator13, Me.CommandShellToolStripMenuItem, Me.ToolStripSeparator16, Me.UnattendedAnswerFileManagerToolStripMenuItem, Me.ReportManagerToolStripMenuItem, Me.MountedImageManagerTSMI, Me.ToolStripSeparator9, Me.ActionEditorToolStripMenuItem, Me.ToolStripSeparator22, Me.OptionsToolStripMenuItem}) + Me.ToolsToolStripMenuItem.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ImageConversionToolStripMenuItem, Me.ToolStripSeparator12, Me.MergeSWM, Me.ToolStripSeparator18, Me.RemountImageWithWritePermissionsToolStripMenuItem, Me.ToolStripSeparator13, Me.CommandShellToolStripMenuItem, Me.ToolStripSeparator16, Me.UnattendedAnswerFileManagerToolStripMenuItem, Me.ReportManagerToolStripMenuItem, Me.MountedImageManagerTSMI, Me.ToolStripSeparator28, Me.WimScriptEditorCommand, Me.ToolStripSeparator9, Me.ActionEditorToolStripMenuItem, Me.ToolStripSeparator22, Me.OptionsToolStripMenuItem}) Me.ToolsToolStripMenuItem.Name = "ToolsToolStripMenuItem" Me.ToolsToolStripMenuItem.Size = New System.Drawing.Size(46, 20) Me.ToolsToolStripMenuItem.Text = "&Tools" @@ -1319,6 +1321,17 @@ Partial Class MainForm Me.MountedImageManagerTSMI.Size = New System.Drawing.Size(280, 22) Me.MountedImageManagerTSMI.Text = "Mounted image manager" ' + 'ToolStripSeparator28 + ' + Me.ToolStripSeparator28.Name = "ToolStripSeparator28" + Me.ToolStripSeparator28.Size = New System.Drawing.Size(277, 6) + ' + 'WimScriptEditorCommand + ' + Me.WimScriptEditorCommand.Name = "WimScriptEditorCommand" + Me.WimScriptEditorCommand.Size = New System.Drawing.Size(280, 22) + Me.WimScriptEditorCommand.Text = "Configuration list editor" + ' 'ToolStripSeparator9 ' Me.ToolStripSeparator9.Name = "ToolStripSeparator9" @@ -2315,7 +2328,7 @@ Partial Class MainForm Me.TableLayoutPanel2.ColumnCount = 3 Me.TableLayoutPanel2.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 44.44444!)) Me.TableLayoutPanel2.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 55.55556!)) - Me.TableLayoutPanel2.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 112.0!)) + Me.TableLayoutPanel2.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 117.0!)) Me.TableLayoutPanel2.Controls.Add(Me.ProjNameEditBtn, 2, 0) Me.TableLayoutPanel2.Controls.Add(Me.LinkLabel1, 1, 3) Me.TableLayoutPanel2.Controls.Add(Me.Panel8, 1, 0) @@ -2350,9 +2363,9 @@ Partial Class MainForm Me.LinkLabel1.Dock = System.Windows.Forms.DockStyle.Fill Me.LinkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline Me.LinkLabel1.LinkColor = System.Drawing.Color.DodgerBlue - Me.LinkLabel1.Location = New System.Drawing.Point(66, 146) + Me.LinkLabel1.Location = New System.Drawing.Point(64, 146) Me.LinkLabel1.Name = "LinkLabel1" - Me.LinkLabel1.Size = New System.Drawing.Size(187, 254) + Me.LinkLabel1.Size = New System.Drawing.Size(189, 254) Me.LinkLabel1.TabIndex = 5 Me.LinkLabel1.TabStop = True Me.LinkLabel1.Text = "Click here to mount an image" @@ -2362,9 +2375,9 @@ Partial Class MainForm Me.Panel8.Controls.Add(Me.projName) Me.Panel8.Controls.Add(Me.projNameText) Me.Panel8.Dock = System.Windows.Forms.DockStyle.Fill - Me.Panel8.Location = New System.Drawing.Point(66, 3) + Me.Panel8.Location = New System.Drawing.Point(64, 3) Me.Panel8.Name = "Panel8" - Me.Panel8.Size = New System.Drawing.Size(74, 23) + Me.Panel8.Size = New System.Drawing.Size(71, 23) Me.Panel8.TabIndex = 8 ' 'projName @@ -2373,7 +2386,7 @@ Partial Class MainForm Me.projName.Dock = System.Windows.Forms.DockStyle.Fill Me.projName.Location = New System.Drawing.Point(0, 0) Me.projName.Name = "projName" - Me.projName.Size = New System.Drawing.Size(74, 23) + Me.projName.Size = New System.Drawing.Size(71, 23) Me.projName.TabIndex = 2 Me.projName.Text = "projName" Me.projName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft @@ -2383,7 +2396,7 @@ Partial Class MainForm Me.projNameText.Dock = System.Windows.Forms.DockStyle.Fill Me.projNameText.Location = New System.Drawing.Point(0, 0) Me.projNameText.Name = "projNameText" - Me.projNameText.Size = New System.Drawing.Size(74, 21) + Me.projNameText.Size = New System.Drawing.Size(71, 21) Me.projNameText.TabIndex = 4 Me.projNameText.Text = "projName" Me.projNameText.Visible = False @@ -2394,9 +2407,9 @@ Partial Class MainForm Me.Label5.AutoSize = True Me.TableLayoutPanel2.SetColumnSpan(Me.Label5, 2) Me.Label5.Dock = System.Windows.Forms.DockStyle.Fill - Me.Label5.Location = New System.Drawing.Point(66, 131) + Me.Label5.Location = New System.Drawing.Point(64, 131) Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(187, 15) + Me.Label5.Size = New System.Drawing.Size(189, 15) Me.Label5.TabIndex = 2 Me.Label5.Text = "imgStatus" ' @@ -2406,7 +2419,7 @@ Partial Class MainForm Me.Label2.Dock = System.Windows.Forms.DockStyle.Fill Me.Label2.Location = New System.Drawing.Point(3, 29) Me.Label2.Name = "Label2" - Me.Label2.Size = New System.Drawing.Size(57, 102) + Me.Label2.Size = New System.Drawing.Size(55, 102) Me.Label2.TabIndex = 1 Me.Label2.Text = "Location:" Me.Label2.TextAlign = System.Drawing.ContentAlignment.TopRight @@ -2416,9 +2429,9 @@ Partial Class MainForm Me.Label3.AutoEllipsis = True Me.TableLayoutPanel2.SetColumnSpan(Me.Label3, 2) Me.Label3.Dock = System.Windows.Forms.DockStyle.Fill - Me.Label3.Location = New System.Drawing.Point(66, 29) + Me.Label3.Location = New System.Drawing.Point(64, 29) Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(187, 102) + Me.Label3.Size = New System.Drawing.Size(189, 102) Me.Label3.TabIndex = 2 Me.Label3.Text = "projPath" ' @@ -2429,7 +2442,7 @@ Partial Class MainForm Me.Label4.Location = New System.Drawing.Point(3, 131) Me.Label4.Name = "Label4" Me.TableLayoutPanel2.SetRowSpan(Me.Label4, 2) - Me.Label4.Size = New System.Drawing.Size(57, 269) + Me.Label4.Size = New System.Drawing.Size(55, 269) Me.Label4.TabIndex = 1 Me.Label4.Text = "Images mounted?" Me.Label4.TextAlign = System.Drawing.ContentAlignment.TopRight @@ -2440,7 +2453,7 @@ Partial Class MainForm Me.Panel9.Dock = System.Windows.Forms.DockStyle.Fill Me.Panel9.Location = New System.Drawing.Point(3, 3) Me.Panel9.Name = "Panel9" - Me.Panel9.Size = New System.Drawing.Size(57, 23) + Me.Panel9.Size = New System.Drawing.Size(55, 23) Me.Panel9.TabIndex = 9 ' 'Label1 @@ -2448,7 +2461,7 @@ Partial Class MainForm Me.Label1.Dock = System.Windows.Forms.DockStyle.Fill Me.Label1.Location = New System.Drawing.Point(0, 0) Me.Label1.Name = "Label1" - Me.Label1.Size = New System.Drawing.Size(57, 23) + Me.Label1.Size = New System.Drawing.Size(55, 23) Me.Label1.TabIndex = 1 Me.Label1.Text = "Name:" Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight @@ -3490,7 +3503,7 @@ Partial Class MainForm Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) Me.MaximumSize = New System.Drawing.Size(4096, 4096) - Me.MinimumSize = New System.Drawing.Size(1024, 600) + Me.MinimumSize = New System.Drawing.Size(1280, 720) Me.Name = "MainForm" Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual Me.Text = "DISMTools" @@ -3943,4 +3956,6 @@ Partial Class MainForm Friend WithEvents ToolStripSeparator26 As System.Windows.Forms.ToolStripSeparator Friend WithEvents ManageOnlineInstallationToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem Friend WithEvents UpdCheckerBW As System.ComponentModel.BackgroundWorker + Friend WithEvents ToolStripSeparator28 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents WimScriptEditorCommand As System.Windows.Forms.ToolStripMenuItem End Class diff --git a/MainForm.resx b/MainForm.resx index c4c37083..c02b357f 100644 --- a/MainForm.resx +++ b/MainForm.resx @@ -291,12 +291,6 @@ These options, and the program information, can be found by opening the Help men JCQkJEQxb97/AOrW4M1DfY/XAAAAAElFTkSuQmCC - - 249, 17 - - - 356, 17 - iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAxpJREFUaEPt @@ -611,12 +605,6 @@ These options, and the program information, can be found by opening the Help men 866, 17 - - 132, 17 - - - 866, 17 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 diff --git a/MainForm.vb b/MainForm.vb index 2a5e29d9..fe9e7bd0 100644 --- a/MainForm.vb +++ b/MainForm.vb @@ -205,6 +205,7 @@ Public Class MainForm Dim WndTop As Integer Public CompletedTasks(4) As Boolean + Public PendingTasks(4) As Boolean Dim HasRemounted As Boolean @@ -1393,30 +1394,40 @@ Public Class MainForm CompletedTasks(2) = True CompletedTasks(3) = True CompletedTasks(4) = True + ' Set pending task + PendingTasks(0) = True Case 2 CompletedTasks(0) = True CompletedTasks(1) = False CompletedTasks(2) = True CompletedTasks(3) = True CompletedTasks(4) = True + ' Set pending task + PendingTasks(1) = True Case 3 CompletedTasks(0) = True CompletedTasks(1) = True CompletedTasks(2) = False CompletedTasks(3) = True CompletedTasks(4) = True + ' Set pending task + PendingTasks(2) = True Case 4 CompletedTasks(0) = True CompletedTasks(1) = True CompletedTasks(2) = True CompletedTasks(3) = False CompletedTasks(4) = True + ' Set pending task + PendingTasks(3) = True Case 5 CompletedTasks(0) = True CompletedTasks(1) = True CompletedTasks(2) = True CompletedTasks(3) = True CompletedTasks(4) = False + ' Set pending task + PendingTasks(4) = True End Select regJumps = True progressMin = 20 @@ -1591,6 +1602,7 @@ Public Class MainForm GetImageAppxPackages(True, OnlineMode) Else Debug.WriteLine("[IsWindows8OrHigher] Returned False") + PendingTasks(2) = False End If Case 4 If IsWindows10OrHigher(MountDir & "\Windows\system32\ntoskrnl.exe") = True Then @@ -1613,6 +1625,7 @@ Public Class MainForm GetImageCapabilities(True, OnlineMode) Else Debug.WriteLine("[IsWindows10OrHigher] Returned False") + PendingTasks(3) = False End If Case 5 Select Case Language @@ -1631,6 +1644,27 @@ Public Class MainForm ImgBW.ReportProgress(progressMin + progressDivs) GetImageDrivers(True, OnlineMode) End Select + If bgProcOptn <> 0 And PendingTasks.Contains(True) Then + Select Case Language + Case 0 + Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName + Case "ENG" + progressLabel = "Running pending tasks. This may take some time..." + Case "ESN" + progressLabel = "Ejecutando tareas pendientes. Esto puede llevar algo de tiempo..." + End Select + Case 1 + progressLabel = "Running pending tasks. This may take some time..." + Case 2 + progressLabel = "Ejecutando tareas pendientes. Esto puede llevar algo de tiempo..." + End Select + ImgBW.ReportProgress(99) + If PendingTasks(0) Then GetImagePackages(True, OnlineMode) + If PendingTasks(1) Then GetImageFeatures(True, OnlineMode) + If PendingTasks(2) Then GetImageAppxPackages(True, OnlineMode) + If PendingTasks(3) Then GetImageCapabilities(True, OnlineMode) + If PendingTasks(4) Then GetImageDrivers(True, OnlineMode) + End If DeleteTempFiles() If UseApi And session IsNot Nothing Then DismApi.CloseSession(session) @@ -2385,6 +2419,7 @@ Public Class MainForm If ImgBW.CancellationPending Then If UseApi And session IsNot Nothing Then DismApi.CloseSession(session) CompletedTasks(0) = False + PendingTasks(0) = True Exit Sub End If imgPackageNameList.Add(package.PackageName) @@ -2401,6 +2436,7 @@ Public Class MainForm DismApi.Shutdown() End Try CompletedTasks(0) = True + PendingTasks(0) = False Exit Sub 'Try @@ -2512,6 +2548,7 @@ Public Class MainForm End If Next CompletedTasks(0) = True + PendingTasks(0) = False 'imgPackageNameLastEntry = UBound(imgPackageNames) 'ImgBW.ReportProgress(progressMin + progressDivs) End Sub @@ -2531,6 +2568,7 @@ Public Class MainForm If ImgBW.CancellationPending Then If UseApi And session IsNot Nothing Then DismApi.CloseSession(session) CompletedTasks(1) = False + PendingTasks(1) = True Exit Sub End If imgFeatureNameList.Add(feature.FeatureName) @@ -2560,6 +2598,7 @@ Public Class MainForm DismApi.Shutdown() End Try CompletedTasks(1) = True + PendingTasks(1) = False Exit Sub 'Try ' If session IsNot Nothing Then @@ -2637,6 +2676,7 @@ Public Class MainForm End If Next CompletedTasks(1) = True + PendingTasks(1) = False 'ImgBW.ReportProgress(progressMin + progressDivs) End Sub @@ -2660,6 +2700,7 @@ Public Class MainForm If ImgBW.CancellationPending Then If UseApi And session IsNot Nothing Then DismApi.CloseSession(session) CompletedTasks(2) = False + PendingTasks(2) = True Exit Sub End If Select Case AppxPackage.Architecture @@ -2740,6 +2781,7 @@ Public Class MainForm DismApi.Shutdown() End Try CompletedTasks(2) = True + PendingTasks(2) = False Exit Sub End If Debug.WriteLine("[GetImageAppxPackages] Running function...") @@ -2752,6 +2794,7 @@ Public Class MainForm Case 1 Debug.WriteLine("[GetImageAppxPackages] The image is Windows 8 or later, but this version of DISM does not support this command. Exiting...") CompletedTasks(2) = False + PendingTasks(2) = True Exit Sub End Select End Select @@ -2777,6 +2820,7 @@ Public Class MainForm Catch ex As Exception Debug.WriteLine("[GetImageAppxPackages] Failed writing getter scripts. Reason: " & ex.Message) CompletedTasks(2) = False + PendingTasks(2) = True Exit Sub End Try Debug.WriteLine("[GetImageAppxPackages] Finished writing getter scripts. Executing them...") @@ -2903,6 +2947,7 @@ Public Class MainForm imgAppxResourceIds = imgAppxResourceIdList.ToArray() End If CompletedTasks(2) = True + PendingTasks(2) = False 'ImgBW.ReportProgress(progressMin + progressDivs) End Sub @@ -2940,6 +2985,7 @@ Public Class MainForm If ImgBW.CancellationPending Then If UseApi And session IsNot Nothing Then DismApi.CloseSession(session) CompletedTasks(3) = False + PendingTasks(3) = True Exit Sub End If imgCapabilityNameList.Add(capability.Name) @@ -2969,6 +3015,7 @@ Public Class MainForm DismApi.Shutdown() End Try CompletedTasks(3) = True + PendingTasks(3) = False Exit Sub 'Try @@ -3083,6 +3130,7 @@ Public Class MainForm End If Next CompletedTasks(3) = True + PendingTasks(3) = False 'ImgBW.ReportProgress(progressMin + progressDivs) End Sub @@ -3108,6 +3156,7 @@ Public Class MainForm If ImgBW.CancellationPending Then If UseApi And session IsNot Nothing Then DismApi.CloseSession(session) CompletedTasks(4) = False + PendingTasks(4) = True Exit Sub End If imgDrvPublishedNameList.Add(driver.PublishedName) @@ -3132,6 +3181,7 @@ Public Class MainForm DismApi.Shutdown() End Try CompletedTasks(4) = True + PendingTasks(4) = False Exit Sub 'Try ' If session IsNot Nothing Then @@ -3300,6 +3350,7 @@ Public Class MainForm End If Next CompletedTasks(4) = True + PendingTasks(4) = False 'ImgBW.ReportProgress(progressMin + progressDivs) End Sub @@ -3378,6 +3429,8 @@ Public Class MainForm DTSettingForm.RichTextBox2.AppendText(CrLf & "WndLeft=0") DTSettingForm.RichTextBox2.AppendText(CrLf & "WndTop=0") DTSettingForm.RichTextBox2.AppendText(CrLf & "WndMaximized=0") + DTSettingForm.RichTextBox2.AppendText(CrLf & CrLf & "[ImgDetection]" & CrLf) + DTSettingForm.RichTextBox2.AppendText("CPUMode=0") File.WriteAllText(Application.StartupPath & "\settings.ini", DTSettingForm.RichTextBox2.Text, ASCII) If File.Exists(Application.StartupPath & "\portable") Then Exit Sub Dim KeyStr As String = "Software\DISMTools\" & If(dtBranch.Contains("preview"), "Preview", "Stable") @@ -3445,6 +3498,9 @@ Public Class MainForm WndKey.SetValue("WndTop", 0, RegistryValueKind.DWord) WndKey.SetValue("WndMaximized", 0, RegistryValueKind.DWord) WndKey.Close() + Dim ImgDetectionKey As RegistryKey = Key.CreateSubKey("ImgDetection") + ImgDetectionKey.SetValue("CPUMode", 0, RegistryValueKind.DWord) + ImgDetectionKey.Close() Key.Close() End Sub @@ -3615,6 +3671,7 @@ Public Class MainForm DTSettingForm.RichTextBox2.AppendText(CrLf & "WndLeft=" & WndLeft) DTSettingForm.RichTextBox2.AppendText(CrLf & "WndTop=" & WndTop) DTSettingForm.RichTextBox2.AppendText(CrLf & "WndMaximized=" & If(WindowState = FormWindowState.Maximized, "1", "0")) + DTSettingForm.RichTextBox2.AppendText(CrLf & CrLf & "[ImgDetection]" & CrLf) File.WriteAllText(Application.StartupPath & "\settings.ini", DTSettingForm.RichTextBox2.Text, ASCII) Else ' Tell settings file to use this method @@ -3684,6 +3741,8 @@ Public Class MainForm WndKey.SetValue("WndTop", WndTop, RegistryValueKind.DWord) WndKey.SetValue("WndMaximized", If(WindowState = FormWindowState.Maximized, 1, 0), RegistryValueKind.DWord) WndKey.Close() + Dim ImgDetectionKey As RegistryKey = Key.CreateSubKey("ImgDetection") + ImgDetectionKey.Close() Key.Close() End If End If @@ -5992,6 +6051,7 @@ Public Class MainForm SaveProjectasToolStripMenuItem.Enabled = False BGProcDetails.Hide() Array.Clear(CompletedTasks, 0, CompletedTasks.Length) + PendingTasks = Enumerable.Repeat(True, PendingTasks.Length).ToArray() If OnlineManagement Then EndOnlineManagement() End Sub @@ -6180,6 +6240,7 @@ Public Class MainForm TableLayoutPanel2.SetColumnSpan(Label3, 2) ManageOnlineInstallationToolStripMenuItem.Enabled = True Array.Clear(CompletedTasks, 0, CompletedTasks.Length) + PendingTasks = Enumerable.Repeat(True, PendingTasks.Count).ToArray() MountDir = "" End Sub @@ -8976,6 +9037,7 @@ Public Class MainForm Do If MountedImageDetectorBW.CancellationPending Or ImgBW.IsBusy Then Exit Do DetectMountedImages(False) + Thread.Sleep(500) Loop End Sub @@ -10084,4 +10146,17 @@ Public Class MainForm Private Sub ViewProjectFilesInFileExplorerToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ViewProjectFilesInFileExplorerToolStripMenuItem.Click ExplorerView.PerformClick() End Sub + + Private Sub WimScriptEditorCommand_Click(sender As Object, e As EventArgs) Handles WimScriptEditorCommand.Click + If WimScriptEditor.Visible Then + If WimScriptEditor.WindowState = FormWindowState.Minimized Then + WimScriptEditor.WindowState = FormWindowState.Normal + Else + WimScriptEditor.BringToFront() + End If + WimScriptEditor.Focus() + Else + WimScriptEditor.Show() + End If + End Sub End Class \ No newline at end of file diff --git a/My Project/AssemblyInfo.vb b/My Project/AssemblyInfo.vb index baebdfe8..30c49169 100644 --- a/My Project/AssemblyInfo.vb +++ b/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' mediante el asterisco ('*'), como se muestra a continuación: ' - - + + diff --git a/My Project/Resources.Designer.vb b/My Project/Resources.Designer.vb index 0046c96d..6ea63bf3 100644 --- a/My Project/Resources.Designer.vb +++ b/My Project/Resources.Designer.vb @@ -1748,14 +1748,13 @@ Namespace My.Resources ''' ''' Busca una cadena traducida similar a Bugfixes ''' - '''- Fixed an issue where the program opened the resource directory of an AppX package instead of the actual resource file if the directory only contained 1 file in it + '''- Fixed an issue that caused the program to make you specify a capability addition source in the online installation management mode when the "Limit Windows Update access" check box was unticked ''' '''New features ''' - '''- The program no longer uses the system DISM at all times if the user specified a custom DISM executable - '''- Introduced the driver information dialog - '''- You can now see the architecture of a driver file when adding it - '''- To avoid creating big log files, the program no longer gets driver information if a file targets [resto de la cadena truncado]";. + '''- When a driver file contains more than 10 hardware targets, the program now shows the file name of the driver file for a quicker and easier reference task + '''- The mounted image detector has received optimizations which cause a significant CPU usage decrease + '''- If an ESD file is specifi [resto de la cadena truncado]";. ''' Friend ReadOnly Property WhatsNew() As String Get diff --git a/My Project/Resources.resx b/My Project/Resources.resx index bfc49324..1f9a2ac0 100644 --- a/My Project/Resources.resx +++ b/My Project/Resources.resx @@ -1072,14 +1072,15 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI Bugfixes -- Fixed an issue where the program opened the resource directory of an AppX package instead of the actual resource file if the directory only contained 1 file in it +- Fixed an issue that caused the program to make you specify a capability addition source in the online installation management mode when the "Limit Windows Update access" check box was unticked New features -- The program no longer uses the system DISM at all times if the user specified a custom DISM executable -- Introduced the driver information dialog -- You can now see the architecture of a driver file when adding it -- To avoid creating big log files, the program no longer gets driver information if a file targets more than 10 devices +- When a driver file contains more than 10 hardware targets, the program now shows the file name of the driver file for a quicker and easier reference task +- The mounted image detector has received optimizations which cause a significant CPU usage decrease +- If an ESD file is specified in the source image field of the image mount dialog, the image conversion dialog will now appear automatically +- The image conversion dialog can now convert the index you specify, as opposed to the first index +- If background processes were canceled prematurely and image information tasks are still pending, those tasks will now run after the task related to what has changed ..\Resources\jumpto.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/Panels/ConfigLists/WimScriptEditor.Designer.vb b/Panels/ConfigLists/WimScriptEditor.Designer.vb new file mode 100644 index 00000000..02d9e719 --- /dev/null +++ b/Panels/ConfigLists/WimScriptEditor.Designer.vb @@ -0,0 +1,532 @@ + _ +Partial Class WimScriptEditor + Inherits System.Windows.Forms.Form + + 'Form reemplaza a Dispose para limpiar la lista de componentes. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Requerido por el Diseñador de Windows Forms + Private components As System.ComponentModel.IContainer + + 'NOTA: el Diseñador de Windows Forms necesita el siguiente procedimiento + 'Se puede modificar usando el Diseñador de Windows Forms. + 'No lo modifique con el editor de código. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(WimScriptEditor)) + Me.Label1 = New System.Windows.Forms.Label() + Me.Scintilla1 = New ScintillaNET.Scintilla() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.Panel2 = New System.Windows.Forms.Panel() + Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() + Me.ConfigFileSettingsPanel = New System.Windows.Forms.Panel() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.ListView3 = New System.Windows.Forms.ListView() + Me.Button12 = New System.Windows.Forms.Button() + Me.Button9 = New System.Windows.Forms.Button() + Me.Button11 = New System.Windows.Forms.Button() + Me.Button10 = New System.Windows.Forms.Button() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.ListView2 = New System.Windows.Forms.ListView() + Me.Button8 = New System.Windows.Forms.Button() + Me.Button5 = New System.Windows.Forms.Button() + Me.Button7 = New System.Windows.Forms.Button() + Me.Button6 = New System.Windows.Forms.Button() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.ListView1 = New System.Windows.Forms.ListView() + Me.Button4 = New System.Windows.Forms.Button() + Me.Button3 = New System.Windows.Forms.Button() + Me.Button2 = New System.Windows.Forms.Button() + Me.Button1 = New System.Windows.Forms.Button() + Me.DarkToolStrip1 = New DarkUI.Controls.DarkToolStrip() + Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripButton4 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator4 = New System.Windows.Forms.ToolStripSeparator() + Me.FontFamilyTSCB = New System.Windows.Forms.ToolStripComboBox() + Me.FontSizeTSCB = New System.Windows.Forms.ToolStripComboBox() + Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton5 = New System.Windows.Forms.ToolStripButton() + Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator() + Me.ToolStripButton6 = New System.Windows.Forms.ToolStripButton() + Me.Panel1.SuspendLayout() + Me.Panel2.SuspendLayout() + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SplitContainer1.Panel1.SuspendLayout() + Me.SplitContainer1.Panel2.SuspendLayout() + Me.SplitContainer1.SuspendLayout() + Me.ConfigFileSettingsPanel.SuspendLayout() + Me.GroupBox3.SuspendLayout() + Me.GroupBox2.SuspendLayout() + Me.GroupBox1.SuspendLayout() + Me.DarkToolStrip1.SuspendLayout() + Me.SuspendLayout() + ' + 'Label1 + ' + Me.Label1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label1.AutoEllipsis = True + Me.Label1.Location = New System.Drawing.Point(13, 13) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(983, 31) + Me.Label1.TabIndex = 0 + Me.Label1.Text = resources.GetString("Label1.Text") + ' + 'Scintilla1 + ' + Me.Scintilla1.Dock = System.Windows.Forms.DockStyle.Fill + Me.Scintilla1.Location = New System.Drawing.Point(0, 0) + Me.Scintilla1.Name = "Scintilla1" + Me.Scintilla1.Size = New System.Drawing.Size(502, 477) + Me.Scintilla1.TabIndex = 1 + ' + 'Panel1 + ' + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Location = New System.Drawing.Point(0, 0) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(1008, 56) + Me.Panel1.TabIndex = 2 + ' + 'Panel2 + ' + Me.Panel2.Controls.Add(Me.SplitContainer1) + Me.Panel2.Controls.Add(Me.DarkToolStrip1) + Me.Panel2.Dock = System.Windows.Forms.DockStyle.Fill + Me.Panel2.Location = New System.Drawing.Point(0, 56) + Me.Panel2.Name = "Panel2" + Me.Panel2.Size = New System.Drawing.Size(1008, 505) + Me.Panel2.TabIndex = 3 + ' + 'SplitContainer1 + ' + Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill + Me.SplitContainer1.Location = New System.Drawing.Point(0, 28) + Me.SplitContainer1.Name = "SplitContainer1" + ' + 'SplitContainer1.Panel1 + ' + Me.SplitContainer1.Panel1.Controls.Add(Me.ConfigFileSettingsPanel) + ' + 'SplitContainer1.Panel2 + ' + Me.SplitContainer1.Panel2.Controls.Add(Me.Scintilla1) + Me.SplitContainer1.Size = New System.Drawing.Size(1008, 477) + Me.SplitContainer1.SplitterDistance = 502 + Me.SplitContainer1.TabIndex = 2 + ' + 'ConfigFileSettingsPanel + ' + Me.ConfigFileSettingsPanel.Controls.Add(Me.GroupBox3) + Me.ConfigFileSettingsPanel.Controls.Add(Me.GroupBox2) + Me.ConfigFileSettingsPanel.Controls.Add(Me.GroupBox1) + Me.ConfigFileSettingsPanel.Dock = System.Windows.Forms.DockStyle.Fill + Me.ConfigFileSettingsPanel.Location = New System.Drawing.Point(0, 0) + Me.ConfigFileSettingsPanel.Name = "ConfigFileSettingsPanel" + Me.ConfigFileSettingsPanel.Size = New System.Drawing.Size(502, 477) + Me.ConfigFileSettingsPanel.TabIndex = 0 + ' + 'GroupBox3 + ' + Me.GroupBox3.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox3.Controls.Add(Me.ListView3) + Me.GroupBox3.Controls.Add(Me.Button12) + Me.GroupBox3.Controls.Add(Me.Button9) + Me.GroupBox3.Controls.Add(Me.Button11) + Me.GroupBox3.Controls.Add(Me.Button10) + Me.GroupBox3.Location = New System.Drawing.Point(8, 320) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(486, 150) + Me.GroupBox3.TabIndex = 0 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Compression exclusion list" + ' + 'ListView3 + ' + Me.ListView3.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListView3.LabelEdit = True + Me.ListView3.Location = New System.Drawing.Point(5, 21) + Me.ListView3.Name = "ListView3" + Me.ListView3.Size = New System.Drawing.Size(394, 123) + Me.ListView3.TabIndex = 2 + Me.ListView3.UseCompatibleStateImageBehavior = False + Me.ListView3.View = System.Windows.Forms.View.List + ' + 'Button12 + ' + Me.Button12.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button12.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button12.Location = New System.Drawing.Point(405, 108) + Me.Button12.Name = "Button12" + Me.Button12.Size = New System.Drawing.Size(75, 23) + Me.Button12.TabIndex = 1 + Me.Button12.Text = "Help" + Me.Button12.UseVisualStyleBackColor = True + ' + 'Button9 + ' + Me.Button9.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button9.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button9.Location = New System.Drawing.Point(405, 50) + Me.Button9.Name = "Button9" + Me.Button9.Size = New System.Drawing.Size(75, 23) + Me.Button9.TabIndex = 1 + Me.Button9.Text = "Edit..." + Me.Button9.UseVisualStyleBackColor = True + ' + 'Button11 + ' + Me.Button11.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button11.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button11.Location = New System.Drawing.Point(405, 21) + Me.Button11.Name = "Button11" + Me.Button11.Size = New System.Drawing.Size(75, 23) + Me.Button11.TabIndex = 1 + Me.Button11.Text = "Add..." + Me.Button11.UseVisualStyleBackColor = True + ' + 'Button10 + ' + Me.Button10.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button10.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button10.Location = New System.Drawing.Point(405, 79) + Me.Button10.Name = "Button10" + Me.Button10.Size = New System.Drawing.Size(75, 23) + Me.Button10.TabIndex = 1 + Me.Button10.Text = "Remove" + Me.Button10.UseVisualStyleBackColor = True + ' + 'GroupBox2 + ' + Me.GroupBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox2.Controls.Add(Me.ListView2) + Me.GroupBox2.Controls.Add(Me.Button8) + Me.GroupBox2.Controls.Add(Me.Button5) + Me.GroupBox2.Controls.Add(Me.Button7) + Me.GroupBox2.Controls.Add(Me.Button6) + Me.GroupBox2.Location = New System.Drawing.Point(8, 164) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(486, 150) + Me.GroupBox2.TabIndex = 0 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Exclusion exception list" + ' + 'ListView2 + ' + Me.ListView2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListView2.LabelEdit = True + Me.ListView2.Location = New System.Drawing.Point(5, 21) + Me.ListView2.Name = "ListView2" + Me.ListView2.Size = New System.Drawing.Size(394, 123) + Me.ListView2.TabIndex = 2 + Me.ListView2.UseCompatibleStateImageBehavior = False + Me.ListView2.View = System.Windows.Forms.View.List + ' + 'Button8 + ' + Me.Button8.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button8.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button8.Location = New System.Drawing.Point(405, 108) + Me.Button8.Name = "Button8" + Me.Button8.Size = New System.Drawing.Size(75, 23) + Me.Button8.TabIndex = 1 + Me.Button8.Text = "Help" + Me.Button8.UseVisualStyleBackColor = True + ' + 'Button5 + ' + Me.Button5.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button5.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button5.Location = New System.Drawing.Point(405, 21) + Me.Button5.Name = "Button5" + Me.Button5.Size = New System.Drawing.Size(75, 23) + Me.Button5.TabIndex = 1 + Me.Button5.Text = "Add..." + Me.Button5.UseVisualStyleBackColor = True + ' + 'Button7 + ' + Me.Button7.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button7.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button7.Location = New System.Drawing.Point(405, 79) + Me.Button7.Name = "Button7" + Me.Button7.Size = New System.Drawing.Size(75, 23) + Me.Button7.TabIndex = 1 + Me.Button7.Text = "Remove" + Me.Button7.UseVisualStyleBackColor = True + ' + 'Button6 + ' + Me.Button6.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button6.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button6.Location = New System.Drawing.Point(405, 50) + Me.Button6.Name = "Button6" + Me.Button6.Size = New System.Drawing.Size(75, 23) + Me.Button6.TabIndex = 1 + Me.Button6.Text = "Edit..." + Me.Button6.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.ListView1) + Me.GroupBox1.Controls.Add(Me.Button4) + Me.GroupBox1.Controls.Add(Me.Button3) + Me.GroupBox1.Controls.Add(Me.Button2) + Me.GroupBox1.Controls.Add(Me.Button1) + Me.GroupBox1.Location = New System.Drawing.Point(8, 8) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(486, 150) + Me.GroupBox1.TabIndex = 0 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Exclusion list" + ' + 'ListView1 + ' + Me.ListView1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListView1.LabelEdit = True + Me.ListView1.Location = New System.Drawing.Point(5, 21) + Me.ListView1.Name = "ListView1" + Me.ListView1.Size = New System.Drawing.Size(394, 123) + Me.ListView1.TabIndex = 2 + Me.ListView1.UseCompatibleStateImageBehavior = False + Me.ListView1.View = System.Windows.Forms.View.List + ' + 'Button4 + ' + Me.Button4.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button4.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button4.Location = New System.Drawing.Point(405, 108) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(75, 23) + Me.Button4.TabIndex = 1 + Me.Button4.Text = "Help" + Me.Button4.UseVisualStyleBackColor = True + ' + 'Button3 + ' + Me.Button3.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button3.Location = New System.Drawing.Point(405, 79) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(75, 23) + Me.Button3.TabIndex = 1 + Me.Button3.Text = "Remove" + Me.Button3.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button2.Location = New System.Drawing.Point(405, 50) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(75, 23) + Me.Button2.TabIndex = 1 + Me.Button2.Text = "Edit..." + Me.Button2.UseVisualStyleBackColor = True + ' + 'Button1 + ' + Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button1.Location = New System.Drawing.Point(405, 21) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(75, 23) + Me.Button1.TabIndex = 1 + Me.Button1.Text = "Add..." + Me.Button1.UseVisualStyleBackColor = True + ' + 'DarkToolStrip1 + ' + Me.DarkToolStrip1.AutoSize = False + Me.DarkToolStrip1.BackColor = System.Drawing.Color.FromArgb(CType(CType(31, Byte), Integer), CType(CType(31, Byte), Integer), CType(CType(31, Byte), Integer)) + Me.DarkToolStrip1.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.DarkToolStrip1.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.DarkToolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden + Me.DarkToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton2, Me.ToolStripButton3, Me.ToolStripButton4, Me.ToolStripSeparator4, Me.FontFamilyTSCB, Me.FontSizeTSCB, Me.ToolStripSeparator5, Me.ToolStripButton5, Me.ToolStripSeparator6, Me.ToolStripButton6}) + Me.DarkToolStrip1.Location = New System.Drawing.Point(0, 0) + Me.DarkToolStrip1.Name = "DarkToolStrip1" + Me.DarkToolStrip1.Padding = New System.Windows.Forms.Padding(5, 0, 1, 0) + Me.DarkToolStrip1.Size = New System.Drawing.Size(1008, 28) + Me.DarkToolStrip1.TabIndex = 4 + Me.DarkToolStrip1.Text = "DarkToolStrip1" + ' + 'ToolStripButton2 + ' + Me.ToolStripButton2.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripButton2.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton2.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripButton2.Image = Global.DISMTools.My.Resources.Resources.newfile_dark + Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton2.Name = "ToolStripButton2" + Me.ToolStripButton2.Size = New System.Drawing.Size(23, 25) + Me.ToolStripButton2.Text = "New" + ' + 'ToolStripButton3 + ' + Me.ToolStripButton3.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripButton3.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton3.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripButton3.Image = Global.DISMTools.My.Resources.Resources.openfile_dark + Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton3.Name = "ToolStripButton3" + Me.ToolStripButton3.Size = New System.Drawing.Size(23, 25) + Me.ToolStripButton3.Text = "Open..." + ' + 'ToolStripButton4 + ' + Me.ToolStripButton4.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripButton4.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton4.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripButton4.Image = Global.DISMTools.My.Resources.Resources.save_glyph_dark + Me.ToolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton4.Name = "ToolStripButton4" + Me.ToolStripButton4.Size = New System.Drawing.Size(23, 25) + Me.ToolStripButton4.Text = "Save as..." + ' + 'ToolStripSeparator4 + ' + Me.ToolStripSeparator4.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripSeparator4.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripSeparator4.Margin = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStripSeparator4.Name = "ToolStripSeparator4" + Me.ToolStripSeparator4.Size = New System.Drawing.Size(6, 28) + ' + 'FontFamilyTSCB + ' + Me.FontFamilyTSCB.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.FontFamilyTSCB.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FontFamilyTSCB.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.FontFamilyTSCB.Name = "FontFamilyTSCB" + Me.FontFamilyTSCB.Size = New System.Drawing.Size(121, 28) + ' + 'FontSizeTSCB + ' + Me.FontSizeTSCB.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.FontSizeTSCB.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.FontSizeTSCB.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.FontSizeTSCB.Items.AddRange(New Object() {"8", "9", "10", "11", "12", "14", "16", "18", "20", "24", "28", "36", "48", "72", "96"}) + Me.FontSizeTSCB.Name = "FontSizeTSCB" + Me.FontSizeTSCB.Size = New System.Drawing.Size(75, 28) + Me.FontSizeTSCB.Text = "10" + ' + 'ToolStripSeparator5 + ' + Me.ToolStripSeparator5.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripSeparator5.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripSeparator5.Margin = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStripSeparator5.Name = "ToolStripSeparator5" + Me.ToolStripSeparator5.Size = New System.Drawing.Size(6, 28) + ' + 'ToolStripButton5 + ' + Me.ToolStripButton5.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton5.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripButton5.Image = Global.DISMTools.My.Resources.Resources.wordwrap_dark + Me.ToolStripButton5.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton5.Name = "ToolStripButton5" + Me.ToolStripButton5.Size = New System.Drawing.Size(23, 25) + Me.ToolStripButton5.Text = "Word wrap" + ' + 'ToolStripSeparator6 + ' + Me.ToolStripSeparator6.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripSeparator6.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripSeparator6.Margin = New System.Windows.Forms.Padding(0, 0, 2, 0) + Me.ToolStripSeparator6.Name = "ToolStripSeparator6" + Me.ToolStripSeparator6.Size = New System.Drawing.Size(6, 28) + ' + 'ToolStripButton6 + ' + Me.ToolStripButton6.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right + Me.ToolStripButton6.BackColor = System.Drawing.Color.FromArgb(CType(CType(60, Byte), Integer), CType(CType(63, Byte), Integer), CType(CType(65, Byte), Integer)) + Me.ToolStripButton6.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image + Me.ToolStripButton6.ForeColor = System.Drawing.Color.FromArgb(CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer), CType(CType(220, Byte), Integer)) + Me.ToolStripButton6.Image = Global.DISMTools.My.Resources.Resources.help_glyph_dark + Me.ToolStripButton6.ImageTransparentColor = System.Drawing.Color.Magenta + Me.ToolStripButton6.Name = "ToolStripButton6" + Me.ToolStripButton6.Size = New System.Drawing.Size(23, 25) + Me.ToolStripButton6.Text = "Help" + ' + 'WimScriptEditor + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(1008, 561) + Me.Controls.Add(Me.Panel2) + Me.Controls.Add(Me.Panel1) + Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MinimumSize = New System.Drawing.Size(1024, 600) + Me.Name = "WimScriptEditor" + Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen + Me.Text = "DISM Configuration List Editor" + Me.Panel1.ResumeLayout(False) + Me.Panel2.ResumeLayout(False) + Me.SplitContainer1.Panel1.ResumeLayout(False) + Me.SplitContainer1.Panel2.ResumeLayout(False) + CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() + Me.SplitContainer1.ResumeLayout(False) + Me.ConfigFileSettingsPanel.ResumeLayout(False) + Me.GroupBox3.ResumeLayout(False) + Me.GroupBox2.ResumeLayout(False) + Me.GroupBox1.ResumeLayout(False) + Me.DarkToolStrip1.ResumeLayout(False) + Me.DarkToolStrip1.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents Scintilla1 As ScintillaNET.Scintilla + Friend WithEvents Panel1 As System.Windows.Forms.Panel + Friend WithEvents Panel2 As System.Windows.Forms.Panel + Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer + Friend WithEvents ConfigFileSettingsPanel As System.Windows.Forms.Panel + Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox + Friend WithEvents ListView3 As System.Windows.Forms.ListView + Friend WithEvents Button12 As System.Windows.Forms.Button + Friend WithEvents Button9 As System.Windows.Forms.Button + Friend WithEvents Button11 As System.Windows.Forms.Button + Friend WithEvents Button10 As System.Windows.Forms.Button + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents ListView2 As System.Windows.Forms.ListView + Friend WithEvents Button8 As System.Windows.Forms.Button + Friend WithEvents Button5 As System.Windows.Forms.Button + Friend WithEvents Button7 As System.Windows.Forms.Button + Friend WithEvents Button6 As System.Windows.Forms.Button + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents ListView1 As System.Windows.Forms.ListView + Friend WithEvents Button4 As System.Windows.Forms.Button + Friend WithEvents Button3 As System.Windows.Forms.Button + Friend WithEvents Button2 As System.Windows.Forms.Button + Friend WithEvents Button1 As System.Windows.Forms.Button + Friend WithEvents DarkToolStrip1 As DarkUI.Controls.DarkToolStrip + Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton3 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripButton4 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator4 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents FontFamilyTSCB As System.Windows.Forms.ToolStripComboBox + Friend WithEvents FontSizeTSCB As System.Windows.Forms.ToolStripComboBox + Friend WithEvents ToolStripSeparator5 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton5 As System.Windows.Forms.ToolStripButton + Friend WithEvents ToolStripSeparator6 As System.Windows.Forms.ToolStripSeparator + Friend WithEvents ToolStripButton6 As System.Windows.Forms.ToolStripButton +End Class diff --git a/Panels/ConfigLists/WimScriptEditor.resx b/Panels/ConfigLists/WimScriptEditor.resx new file mode 100644 index 00000000..e5aacbfa --- /dev/null +++ b/Panels/ConfigLists/WimScriptEditor.resx @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + The Configuration List Editor allows you to exclude files and/or folders during actions that let you specify these files, like capturing an image. You can either specify the settings from the graphical interface, or you can create the configuration file manually. When you've finished, click the Save icon. + + + 17, 17 + + + + + AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA + AAAgAAAAAQAgAAAAAAAwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyqqI/s6qh5rOq + ocmzqqEbAAAAAAAAAAAAAAAAAAAAADAgrk8xIK/mMCCvyCsrqgwAAAAAAAAAAAAAAAAAAAAAs6mhnqqB + U/+hfVf/s6qh2rOqoRsAAAAAAAAAADIfsFEyH6/7MSCv/zEgr/8yILBHAAAAAAAAAAAAAAAAAAAAALSp + oUSxoY/7saKR/7Oqof+zqqHas6qhGzAgr1AxH6/7MSCv/zEgr/8yIa/bMyKqDwAAAAAAAAAAAAAAAAAA + AAAAAAAAtKmhXLOqofyzqqH/s6qh/4p/pt8xIa/5MSCv/zEgr/8xIa7jLh+yIQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAC0qaFcs6qh/I2Apv8zIq//MSCv/zEgr/8yIK/cLxyzGwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGYqGpqWcP/RDOw/zEgr/8+Lq36XVOsNAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACooZomkYap82hYw/9YSK//pZuj/6uhmtuhlo9JoZiPOYCA + gAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuqJomq6Oa5amhmsSJe7WRqqCl/KSdlP+knJLrpJyU/6Ka + kv+gmJDTnpWNHQAAAAAAAAAAAAAAAAAAAACxo50nraWc5aqjmsSxnZ0NAAAAALCnoVGmnZXZqaGY/6ef + lv+knJT/opqS/6CYkLMAAAAAAAAAAAAAAACxqZ5cr6ad7a2lm7uqqo4JAAAAAAAAAAAAAAAArqad+Kyj + m/+poZiuppmZFKSdlHCimpLuAAAAAAAAAACzqqE5saif/6+mndiioqILAAAAAAAAAAAAAAAAAAAAALGo + n9eupp3/rKKbawAAAAAAAAAApJqUTAAAAAAAAAAAs6ugebGnnqmxo50nAAAAAAAAAAAAAAAAAAAAAAAA + AAC0q6JSsaif/K6mneasppkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALOqojyxqKCTraadcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA//8AAOfnAADDxwAA4YcAAPAP + AAD4HwAA/D8AAPwfAAD4AwAA84EAAOeNAADPnwAA388AAP/vAAD//wAAKAAAACAAAABAAAAAAQAgAAAA + AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACzqqIes6qgsrOqofazqqHTs6miSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + gAf+H8AD/D/A4/h/wfPw/8H74f/B/+H/4P/n//B////4P////////////////ygAAAAwAAAAYAAAAAEA + IAAAAAAAUCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + r/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEfr8s5HKoJAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALitoxmzqqHXs6qh/7Oq + of+zqqH/s6qh/7Oqof+zqqH/s6qh/7Oqof+zqqH/s6qh/7Oqof+zqqHIu6qZDwAAAAAzIqoPMCCvyDEg + r/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCw1zMfrRkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAC4raMZs6qh17Oqof+zqqH/s6qh/7Oqof+zqqH/s6qh/7Oqof+zqqH/s6qh/7Oqof+zqqH/s6qhyHJh + nh0xILDHMSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xILDXMx+tGQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAuK2jGbOqodezqqH/s6qh/7Oqof+zqqH/s6qh/7Oqof+zqqH/s6qh/7Oq + of+zqqH/q6Ki/0g5rfMxIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEg + sNczH60ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALitoxmzqqHXs6qh/7Oqof+zqqH/s6qh/7Oq + of+zqqH/s6qh/7Oqof+roqL/TT6s/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEgr/8xIK//MSCv/zEg + r/8xIK//MSCw1zMfrRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4raMZs6qh17Oq + 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 + nf+tpZz3rqOcSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyqqIhsqqgvLGp + oP+xqJ//sKee/6+mnv+upp3/raWc+K6im0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAALOqojyyqZ+Ysaif1bCnnumvpp7srqad1a6lnVsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///////8AAP///////wAA////////AAD///////8AAP///////wAA////////AAD/g///g/8AAP8B + //8B/wAA/wD//gH/AAD+AH/8AP8AAP4AP/gA/wAA/gAf8AD/AAD/AA/gAf8AAP8AB8AB/wAA/4ADgAP/ + AAD/wAEAB/8AAP/gAAAP/wAA//AAAB//AAD/+AAAP/8AAP/8AAB//wAA//4AAP//AAD//wAB//8AAP// + gAP//wAA///AAf//AAD//+AA//8AAP//wAB//wAA//+AAAH/AAD//wAAAH8AAP/+DgAAPwAA//wfAAAf + AAD/+D+AAA8AAP/wf8AADwAA/+D/4AAHAAD/wf/gDgcAAP8D/+AfhwAA/gf/4D/HAAD8D//gP+cAAPgP + /+A//wAA+B//8B//AADwP//wH/8AAPB///gP/wAA+////Af/AAD////+A/8AAP////+D/wAA//////// + AAD///////8AAP///////wAA////////AAA= + + + \ No newline at end of file diff --git a/Panels/ConfigLists/WimScriptEditor.vb b/Panels/ConfigLists/WimScriptEditor.vb new file mode 100644 index 00000000..4beeda72 --- /dev/null +++ b/Panels/ConfigLists/WimScriptEditor.vb @@ -0,0 +1,234 @@ +Imports System.IO +Imports Microsoft.VisualBasic.ControlChars +Imports ScintillaNET + +Public Class WimScriptEditor + + Private Sub WimScriptEditor_Load(sender As Object, e As EventArgs) Handles MyBase.Load + If MainForm.BackColor = Color.FromArgb(48, 48, 48) Then + BackColor = Color.FromArgb(31, 31, 31) + ForeColor = Color.White + ElseIf MainForm.BackColor = Color.FromArgb(239, 239, 242) Then + BackColor = Color.FromArgb(238, 238, 242) + ForeColor = Color.Black + End If + ListView1.BackColor = BackColor + ListView1.ForeColor = ForeColor + ListView2.BackColor = BackColor + ListView2.ForeColor = ForeColor + ListView3.BackColor = BackColor + ListView3.ForeColor = ForeColor + GroupBox1.ForeColor = ForeColor + GroupBox2.ForeColor = ForeColor + GroupBox3.ForeColor = ForeColor + Dim handle As IntPtr = MainForm.GetWindowHandle(Me) + If MainForm.IsWindowsVersionOrGreater(10, 0, 18362) Then MainForm.EnableDarkTitleBar(handle, MainForm.BackColor = Color.FromArgb(48, 48, 48)) + ' Fill in font combinations + FontFamilyTSCB.Items.Clear() + For Each fntFamily As FontFamily In FontFamily.Families + FontFamilyTSCB.Items.Add(fntFamily.Name) + Next + InitScintilla("Courier New", 10) + FontFamilyTSCB.SelectedItem = "Courier New" + End Sub + + ''' + ''' Initializes the Scintilla editor for WimScript.ini editing + ''' + ''' The name of the font used in the Scintilla editor + ''' The size of the font used in the Scintilla editor + ''' + Sub InitScintilla(fntName As String, fntSize As Integer) + ' Initialize Scintilla editor + Scintilla1.StyleResetDefault() + ' Use VS's selection color, as I find it the most natural + If MainForm.BackColor = Color.FromArgb(48, 48, 48) Then + Scintilla1.SetSelectionBackColor(True, Color.FromArgb(38, 79, 120)) + ElseIf MainForm.BackColor = Color.FromArgb(239, 239, 242) Then + Scintilla1.SetSelectionBackColor(True, Color.FromArgb(153, 201, 239)) + End If + Scintilla1.Styles(Style.Default).Font = fntName + Scintilla1.Styles(Style.Default).Size = fntSize + + ' Set background and foreground colors (from Visual Studio) + If MainForm.BackColor = Color.FromArgb(48, 48, 48) Then + Scintilla1.Styles(Style.Default).BackColor = Color.FromArgb(30, 30, 30) + Scintilla1.Styles(Style.Default).ForeColor = Color.White + Scintilla1.Styles(Style.LineNumber).BackColor = Color.FromArgb(30, 30, 30) + ElseIf MainForm.BackColor = Color.FromArgb(239, 239, 242) Then + Scintilla1.Styles(Style.Default).BackColor = Color.White + Scintilla1.Styles(Style.Default).ForeColor = Color.Black + Scintilla1.Styles(Style.LineNumber).BackColor = Color.White + End If + Scintilla1.StyleClearAll() + + ' Use Notepad++'s lexer style colors + If MainForm.BackColor = Color.FromArgb(48, 48, 48) Then + Scintilla1.Styles(Style.Properties.Default).ForeColor = Color.FromArgb(220, 220, 204) + Scintilla1.Styles(Style.Properties.Comment).ForeColor = Color.FromArgb(127, 159, 127) + Scintilla1.Styles(Style.Properties.Section).ForeColor = Color.FromArgb(140, 208, 211) + Scintilla1.Styles(Style.Properties.Assignment).ForeColor = Color.FromArgb(159, 157, 109) + Scintilla1.Styles(Style.Properties.DefVal).ForeColor = Color.FromArgb(255, 207, 175) + Scintilla1.Styles(Style.Properties.Key).ForeColor = Color.FromArgb(223, 196, 125) + ElseIf MainForm.BackColor = Color.FromArgb(239, 239, 242) Then + Scintilla1.Styles(Style.Properties.Default).ForeColor = Color.Black + Scintilla1.Styles(Style.Properties.Comment).ForeColor = Color.FromArgb(0, 128, 0) + Scintilla1.Styles(Style.Properties.Section).ForeColor = Color.FromArgb(128, 0, 255) + Scintilla1.Styles(Style.Properties.Assignment).ForeColor = Color.Red + Scintilla1.Styles(Style.Properties.DefVal).ForeColor = Color.Red + Scintilla1.Styles(Style.Properties.Key).ForeColor = Color.Blue + End If + + + ' Set lexer + Scintilla1.Lexer = Lexer.Properties + + ' Set line number margin properties + If MainForm.BackColor = Color.FromArgb(48, 48, 48) Then + Scintilla1.Styles(Style.LineNumber).BackColor = Color.FromArgb(30, 30, 30) + ElseIf MainForm.BackColor = Color.FromArgb(239, 239, 242) Then + Scintilla1.Styles(Style.LineNumber).BackColor = Color.White + End If + Scintilla1.Styles(Style.LineNumber).ForeColor = Color.FromArgb(165, 165, 165) + Dim Margin = Scintilla1.Margins(1) + Margin.Width = 30 + Margin.Type = MarginType.Number + Margin.Sensitive = True + Margin.Mask = 0 + + ' Initialize code folding + Scintilla1.SetFoldMarginColor(True, Scintilla1.Styles(Style.Default).BackColor) + Scintilla1.SetFoldMarginColor(True, Scintilla1.Styles(Style.Default).BackColor) + Scintilla1.SetProperty("fold", "1") + Scintilla1.SetProperty("fold.compact", "1") + + ' Configure bookmark margins + Dim Bookmarks = Scintilla1.Margins(2) + Bookmarks.Width = 20 + Bookmarks.Sensitive = True + Bookmarks.Type = MarginType.Symbol + Bookmarks.Mask = (1 << 2) + Dim Marker = Scintilla1.Markers(2) + Marker.Symbol = MarkerSymbol.Circle + Marker.SetBackColor(Color.FromArgb(255, 0, 59)) + Marker.SetForeColor(Color.Black) + Marker.SetAlpha(100) + + ' Set editor caret settings + Scintilla1.CaretForeColor = ForeColor + + + ' Configure code folding margins + Scintilla1.Margins(3).Type = MarginType.Symbol + Scintilla1.Margins(3).Mask = Marker.MaskFolders + Scintilla1.Margins(3).Sensitive = True + Scintilla1.Margins(3).Width = 1 + + ' Set colors for all folding markers + For x = 25 To 31 + Scintilla1.Markers(x).SetForeColor(Scintilla1.Styles(Style.Default).BackColor) + Scintilla1.Markers(x).SetBackColor(Scintilla1.Styles(Style.Default).ForeColor) + Next + + ' Folding marker configuration + Scintilla1.Markers(Marker.Folder).Symbol = MarkerSymbol.BoxPlus + Scintilla1.Markers(Marker.FolderOpen).Symbol = MarkerSymbol.BoxMinus + Scintilla1.Markers(Marker.FolderEnd).Symbol = MarkerSymbol.BoxPlusConnected + Scintilla1.Markers(Marker.FolderMidTail).Symbol = MarkerSymbol.TCorner + Scintilla1.Markers(Marker.FolderOpenMid).Symbol = MarkerSymbol.BoxMinusConnected + Scintilla1.Markers(Marker.FolderSub).Symbol = MarkerSymbol.VLine + Scintilla1.Markers(Marker.FolderTail).Symbol = MarkerSymbol.LCorner + + ' Enable folding + Scintilla1.AutomaticFold = (AutomaticFold.Show Or AutomaticFold.Click Or AutomaticFold.Show) + End Sub + + Private Sub Scintilla1_TextChanged(sender As Object, e As EventArgs) Handles Scintilla1.TextChanged + ' Clear list views for updated listings + ListView1.Items.Clear() + ListView2.Items.Clear() + ListView3.Items.Clear() + + Dim nextLine As Integer = 0 + + ' Go through the configuration file to fill in the entries + For Each TextLine In Scintilla1.Lines + nextLine = 0 + If TextLine.Text.Contains("[ExclusionList]") Then + While Not Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[CompressionExclusionList]") Or Not Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionException]") + If (TextLine.Index + 1) + nextLine >= Scintilla1.Lines.Count Then Exit While + If Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[CompressionExclusionList]") Or Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionException]") Then Exit While + nextLine += 1 + If String.IsNullOrWhiteSpace(Scintilla1.Lines(TextLine.Index + nextLine).Text) Then Continue While + ListView1.Items.Add(Scintilla1.Lines(TextLine.Index + nextLine).Text) + End While + ElseIf TextLine.Text.Contains("[ExclusionException]") Then + While Not Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[CompressionExclusionList]") Or Not Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionList]") + If (TextLine.Index + 1) + nextLine >= Scintilla1.Lines.Count Then Exit While + If Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[CompressionExclusionList]") Or Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionList]") Then Exit While + nextLine += 1 + If String.IsNullOrWhiteSpace(Scintilla1.Lines(TextLine.Index + nextLine).Text) Then Continue While + ListView2.Items.Add(Scintilla1.Lines(TextLine.Index + nextLine).Text) + End While + ElseIf TextLine.Text.Contains("[CompressionExclusionList]") Then + While Not Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionList]") Or Not Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionException]") + If (TextLine.Index + 1) + nextLine >= Scintilla1.Lines.Count Then Exit While + If Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionList]") Or Scintilla1.Lines(TextLine.Index + nextLine).Text.Contains("[ExclusionException]") Then Exit While + nextLine += 1 + If String.IsNullOrWhiteSpace(Scintilla1.Lines(TextLine.Index + nextLine).Text) Then Continue While + ListView3.Items.Add(Scintilla1.Lines(TextLine.Index + nextLine).Text) + End While + End If + Next + + ' Remove unnecessary ListView items + For Each LVItem As ListViewItem In ListView1.Items + If LVItem.Text.Contains("[ExclusionList]") Or _ + LVItem.Text.Contains("[CompressionExclusionList]") Or _ + LVItem.Text.Contains("[ExclusionException]") Then + ListView1.Items.Remove(LVItem) + End If + Next + For Each LVItem As ListViewItem In ListView2.Items + If LVItem.Text.Contains("[ExclusionList]") Or _ + LVItem.Text.Contains("[CompressionExclusionList]") Or _ + LVItem.Text.Contains("[ExclusionException]") Then + ListView2.Items.Remove(LVItem) + End If + Next + For Each LVItem As ListViewItem In ListView3.Items + If LVItem.Text.Contains("[ExclusionList]") Or _ + LVItem.Text.Contains("[CompressionExclusionList]") Or _ + LVItem.Text.Contains("[ExclusionException]") Then + ListView3.Items.Remove(LVItem) + End If + Next + End Sub + + Private Sub ToolStripButton2_Click(sender As Object, e As EventArgs) Handles ToolStripButton2.Click + Text = "New configuration list - DISM Configuration List Editor" + + ' Generate a default configuration list, as shown in the DISM configuration list documentation. + ' Source: https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-configuration-list-and-wimscriptini-files-winnext?view=windows-11 + + Scintilla1.Text = CrLf & _ + "[ExclusionList]" & CrLf & _ + "\$ntfs.log" & CrLf & _ + "\hiberfil.sys" & CrLf & _ + "\pagefile.sys" & CrLf & _ + "\swapfile.sys" & CrLf & _ + "\System Volume Information" & CrLf & _ + "\RECYCLER" & CrLf & _ + "\Windows\CSC" & CrLf & CrLf & _ + "[CompressionExclusionList]" & CrLf & _ + "*.mp3" & CrLf & _ + "*.zip" & CrLf & _ + "*.cab" & CrLf & _ + "\WINDOWS\inf\*.pnf" + End Sub + + Private Sub FontChange(sender As Object, e As EventArgs) Handles FontFamilyTSCB.SelectedIndexChanged, FontSizeTSCB.SelectedIndexChanged + ' Change Scintilla editor font + InitScintilla(FontFamilyTSCB.SelectedItem, FontSizeTSCB.SelectedItem) + End Sub +End Class \ No newline at end of file diff --git a/Panels/DoWork/ProgressPanel.vb b/Panels/DoWork/ProgressPanel.vb index e3f33347..ea45d8ee 100644 --- a/Panels/DoWork/ProgressPanel.vb +++ b/Panels/DoWork/ProgressPanel.vb @@ -429,6 +429,7 @@ Public Class ProgressPanel ' OperationNum: 991 Public imgSrcFile As String ' Source image file for conversion + Public imgConversionIndex As Integer ' Index to convert to the target image format Public imgDestFile As String ' Destination image file for conversion Public imgConversionMode As Integer ' 0: WIM -> ESD; 1: WIM <- ESD @@ -3150,7 +3151,8 @@ Public Class ProgressPanel ElseIf drvInfoCollection.Count > 10 Then LogView.AppendText(CrLf & CrLf & _ "This driver file targets more than 10 devices. To avoid creating log files large in size, we will not show information of this driver package, and will proceed anyway." & CrLf & _ - "If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file.") + "If you want to get information of this driver package, go to Commands > Drivers > Get driver information > I want to get information about driver files, and specify this driver file:" & CrLf & CrLf & _ + " " & Path.GetFileName(drvAdditionPkgs(x))) Else LogView.AppendText(CrLf & CrLf & _ "We couldn't get information of this driver package. Proceeding anyway...") @@ -3406,8 +3408,9 @@ Public Class ProgressPanel "Options:" & CrLf) ' Gather options - LogView.AppendText("- Source image file: " & imgSrcFile & CrLf & - "- Destination image file: " & imgDestFile & CrLf) + LogView.AppendText("- Source image file: " & imgSrcFile & CrLf & _ + "- Index to convert: " & imgConversionIndex & CrLf & _ + "- Destination image file: " & imgDestFile & CrLf) If imgConversionMode = 0 Then LogView.AppendText("- Image conversion mode: Windows Imaging (WIM) --> Electronic Software Distribution (ESD)") ElseIf imgConversionMode = 1 Then @@ -3422,10 +3425,10 @@ Public Class ProgressPanel Case 1 ' Not available Case Is >= 2 - CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /export-image /sourceimagefile=" & Quote & imgSrcFile & Quote & " /sourceindex=1 /destinationimagefile=" & Quote & imgDestFile & Quote + CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /export-image /sourceimagefile=" & Quote & imgSrcFile & Quote & " /sourceindex=" & imgConversionIndex & " /destinationimagefile=" & Quote & imgDestFile & Quote End Select Case 10 - CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /export-image /sourceimagefile=" & Quote & imgSrcFile & Quote & " /sourceindex=1 /destinationimagefile=" & Quote & imgDestFile & Quote + CommandArgs = "/logpath=" & Quote & Application.StartupPath & "\logs\" & GetCurrentDateAndTime(Now) & Quote & " /english /export-image /sourceimagefile=" & Quote & imgSrcFile & Quote & " /sourceindex=" & imgConversionIndex & " /destinationimagefile=" & Quote & imgDestFile & Quote End Select If imgConversionMode = 0 Then CommandArgs &= " /compress:recovery" diff --git a/Panels/Img_Ops/Capabilities/AddCapabilities.vb b/Panels/Img_Ops/Capabilities/AddCapabilities.vb index 5c5dd8c7..5df43f04 100644 --- a/Panels/Img_Ops/Capabilities/AddCapabilities.vb +++ b/Panels/Img_Ops/Capabilities/AddCapabilities.vb @@ -22,6 +22,7 @@ Public Class AddCapabilities ProgressPanel.capAdditionIds(x) = capIds(x) Next For x = 0 To capCount - 1 + If MainForm.OnlineManagement And Not CheckBox2.Checked Then Exit For If ListView1.CheckedItems(x).SubItems(1).Text = "Not present" Then If CheckBox1.Checked And RichTextBox1.Text = "" Or Not Directory.Exists(RichTextBox1.Text) Then Select Case MainForm.Language diff --git a/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb b/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb index 696698a1..ebb847e4 100644 --- a/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb +++ b/Panels/Img_Ops/Conversion/ImgWim2Esd.Designer.vb @@ -28,26 +28,33 @@ Partial Class ImgWim2Esd Me.Win10Title = New System.Windows.Forms.Panel() Me.Label1 = New System.Windows.Forms.Label() Me.GroupBox1 = New System.Windows.Forms.GroupBox() - Me.GroupBox2 = New System.Windows.Forms.GroupBox() - Me.GroupBox3 = New System.Windows.Forms.GroupBox() - Me.Label2 = New System.Windows.Forms.Label() - Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Button1 = New System.Windows.Forms.Button() - Me.Label3 = New System.Windows.Forms.Label() + Me.TextBox1 = New System.Windows.Forms.TextBox() + Me.Label2 = New System.Windows.Forms.Label() + Me.GroupBox2 = New System.Windows.Forms.GroupBox() Me.ComboBox1 = New System.Windows.Forms.ComboBox() Me.Label4 = New System.Windows.Forms.Label() + Me.Label3 = New System.Windows.Forms.Label() + Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() + Me.GroupBox3 = New System.Windows.Forms.GroupBox() + Me.Button2 = New System.Windows.Forms.Button() Me.Label5 = New System.Windows.Forms.Label() Me.TextBox2 = New System.Windows.Forms.TextBox() - Me.Button2 = New System.Windows.Forms.Button() - Me.LinkLabel1 = New System.Windows.Forms.LinkLabel() Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog() Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() - Me.Label6 = New System.Windows.Forms.Label() + Me.ListView1 = New System.Windows.Forms.ListView() + Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown() + Me.Label7 = New System.Windows.Forms.Label() Me.TableLayoutPanel1.SuspendLayout() Me.Win10Title.SuspendLayout() Me.GroupBox1.SuspendLayout() Me.GroupBox2.SuspendLayout() Me.GroupBox3.SuspendLayout() + CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SuspendLayout() ' 'TableLayoutPanel1 @@ -58,7 +65,7 @@ Partial Class ImgWim2Esd Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0) Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0) - Me.TableLayoutPanel1.Location = New System.Drawing.Point(338, 304) + Me.TableLayoutPanel1.Location = New System.Drawing.Point(626, 520) Me.TableLayoutPanel1.Name = "TableLayoutPanel1" Me.TableLayoutPanel1.RowCount = 1 Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!)) @@ -93,7 +100,7 @@ Partial Class ImgWim2Esd Me.Win10Title.Dock = System.Windows.Forms.DockStyle.Top Me.Win10Title.Location = New System.Drawing.Point(0, 0) Me.Win10Title.Name = "Win10Title" - Me.Win10Title.Size = New System.Drawing.Size(496, 48) + Me.Win10Title.Size = New System.Drawing.Size(784, 48) Me.Win10Title.TabIndex = 3 Me.Win10Title.Visible = False ' @@ -109,40 +116,37 @@ Partial Class ImgWim2Esd ' 'GroupBox1 ' + Me.GroupBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.GroupBox1.Controls.Add(Me.Button1) Me.GroupBox1.Controls.Add(Me.TextBox1) Me.GroupBox1.Controls.Add(Me.Label2) Me.GroupBox1.Location = New System.Drawing.Point(12, 54) Me.GroupBox1.Name = "GroupBox1" - Me.GroupBox1.Size = New System.Drawing.Size(472, 88) + Me.GroupBox1.Size = New System.Drawing.Size(760, 88) Me.GroupBox1.TabIndex = 4 Me.GroupBox1.TabStop = False Me.GroupBox1.Text = "Source" ' - 'GroupBox2 + 'Button1 ' - Me.GroupBox2.Controls.Add(Me.ComboBox1) - Me.GroupBox2.Controls.Add(Me.Label4) - Me.GroupBox2.Controls.Add(Me.Label3) - Me.GroupBox2.Controls.Add(Me.LinkLabel1) - Me.GroupBox2.Location = New System.Drawing.Point(12, 148) - Me.GroupBox2.Name = "GroupBox2" - Me.GroupBox2.Size = New System.Drawing.Size(472, 56) - Me.GroupBox2.TabIndex = 4 - Me.GroupBox2.TabStop = False - Me.GroupBox2.Text = "Options" + Me.Button1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button1.Location = New System.Drawing.Point(668, 44) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(75, 23) + Me.Button1.TabIndex = 5 + Me.Button1.Text = "Browse..." + Me.Button1.UseVisualStyleBackColor = True ' - 'GroupBox3 + 'TextBox1 ' - Me.GroupBox3.Controls.Add(Me.Button2) - Me.GroupBox3.Controls.Add(Me.Label5) - Me.GroupBox3.Controls.Add(Me.TextBox2) - Me.GroupBox3.Location = New System.Drawing.Point(12, 210) - Me.GroupBox3.Name = "GroupBox3" - Me.GroupBox3.Size = New System.Drawing.Size(472, 88) - Me.GroupBox3.TabIndex = 4 - Me.GroupBox3.TabStop = False - Me.GroupBox3.Text = "Destination" + Me.TextBox1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBox1.Location = New System.Drawing.Point(21, 45) + Me.TextBox1.Name = "TextBox1" + Me.TextBox1.Size = New System.Drawing.Size(641, 21) + Me.TextBox1.TabIndex = 1 ' 'Label2 ' @@ -153,31 +157,23 @@ Partial Class ImgWim2Esd Me.Label2.TabIndex = 0 Me.Label2.Text = "Source image file:" ' - 'TextBox1 - ' - Me.TextBox1.Location = New System.Drawing.Point(21, 45) - Me.TextBox1.Name = "TextBox1" - Me.TextBox1.Size = New System.Drawing.Size(353, 21) - Me.TextBox1.TabIndex = 1 - ' - 'Button1 - ' - Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.System - Me.Button1.Location = New System.Drawing.Point(380, 44) - Me.Button1.Name = "Button1" - Me.Button1.Size = New System.Drawing.Size(75, 23) - Me.Button1.TabIndex = 5 - Me.Button1.Text = "Browse..." - Me.Button1.UseVisualStyleBackColor = True - ' - 'Label3 + 'GroupBox2 ' - Me.Label3.AutoSize = True - Me.Label3.Location = New System.Drawing.Point(18, 24) - Me.Label3.Name = "Label3" - Me.Label3.Size = New System.Drawing.Size(99, 13) - Me.Label3.TabIndex = 0 - Me.Label3.Text = "Convert image to a" + Me.GroupBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox2.Controls.Add(Me.ListView1) + Me.GroupBox2.Controls.Add(Me.NumericUpDown1) + Me.GroupBox2.Controls.Add(Me.Label7) + Me.GroupBox2.Controls.Add(Me.ComboBox1) + Me.GroupBox2.Controls.Add(Me.Label4) + Me.GroupBox2.Controls.Add(Me.Label3) + Me.GroupBox2.Controls.Add(Me.LinkLabel1) + Me.GroupBox2.Location = New System.Drawing.Point(12, 148) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(760, 272) + Me.GroupBox2.TabIndex = 4 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Options" ' 'ComboBox1 ' @@ -198,43 +194,70 @@ Partial Class ImgWim2Esd Me.Label4.TabIndex = 0 Me.Label4.Text = "file." ' - 'Label5 + 'Label3 ' - Me.Label5.AutoSize = True - Me.Label5.Location = New System.Drawing.Point(18, 28) - Me.Label5.Name = "Label5" - Me.Label5.Size = New System.Drawing.Size(113, 13) - Me.Label5.TabIndex = 0 - Me.Label5.Text = "Destination image file:" + Me.Label3.AutoSize = True + Me.Label3.Location = New System.Drawing.Point(18, 24) + Me.Label3.Name = "Label3" + Me.Label3.Size = New System.Drawing.Size(99, 13) + Me.Label3.TabIndex = 0 + Me.Label3.Text = "Convert image to a" ' - 'TextBox2 + 'LinkLabel1 ' - Me.TextBox2.Location = New System.Drawing.Point(21, 45) - Me.TextBox2.Name = "TextBox2" - Me.TextBox2.Size = New System.Drawing.Size(353, 21) - Me.TextBox2.TabIndex = 1 + Me.LinkLabel1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LinkLabel1.AutoSize = True + Me.LinkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline + Me.LinkLabel1.LinkColor = System.Drawing.Color.DodgerBlue + Me.LinkLabel1.Location = New System.Drawing.Point(608, 24) + Me.LinkLabel1.Name = "LinkLabel1" + Me.LinkLabel1.Size = New System.Drawing.Size(135, 13) + Me.LinkLabel1.TabIndex = 2 + Me.LinkLabel1.TabStop = True + Me.LinkLabel1.Text = "Which format do I choose?" + ' + 'GroupBox3 + ' + Me.GroupBox3.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox3.Controls.Add(Me.Button2) + Me.GroupBox3.Controls.Add(Me.Label5) + Me.GroupBox3.Controls.Add(Me.TextBox2) + Me.GroupBox3.Location = New System.Drawing.Point(12, 426) + Me.GroupBox3.Name = "GroupBox3" + Me.GroupBox3.Size = New System.Drawing.Size(760, 88) + Me.GroupBox3.TabIndex = 4 + Me.GroupBox3.TabStop = False + Me.GroupBox3.Text = "Destination" ' 'Button2 ' + Me.Button2.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.Button2.FlatStyle = System.Windows.Forms.FlatStyle.System - Me.Button2.Location = New System.Drawing.Point(380, 44) + Me.Button2.Location = New System.Drawing.Point(668, 44) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 5 Me.Button2.Text = "Browse..." Me.Button2.UseVisualStyleBackColor = True ' - 'LinkLabel1 + 'Label5 ' - Me.LinkLabel1.AutoSize = True - Me.LinkLabel1.LinkBehavior = System.Windows.Forms.LinkBehavior.NeverUnderline - Me.LinkLabel1.LinkColor = System.Drawing.Color.DodgerBlue - Me.LinkLabel1.Location = New System.Drawing.Point(320, 24) - Me.LinkLabel1.Name = "LinkLabel1" - Me.LinkLabel1.Size = New System.Drawing.Size(135, 13) - Me.LinkLabel1.TabIndex = 2 - Me.LinkLabel1.TabStop = True - Me.LinkLabel1.Text = "Which format do I choose?" + Me.Label5.AutoSize = True + Me.Label5.Location = New System.Drawing.Point(18, 28) + Me.Label5.Name = "Label5" + Me.Label5.Size = New System.Drawing.Size(113, 13) + Me.Label5.TabIndex = 0 + Me.Label5.Text = "Destination image file:" + ' + 'TextBox2 + ' + Me.TextBox2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBox2.Location = New System.Drawing.Point(21, 45) + Me.TextBox2.Name = "TextBox2" + Me.TextBox2.Size = New System.Drawing.Size(641, 21) + Me.TextBox2.TabIndex = 1 ' 'OpenFileDialog1 ' @@ -245,14 +268,55 @@ Partial Class ImgWim2Esd ' Me.SaveFileDialog1.Title = "Where will the target image be stored?" ' - 'Label6 + 'ListView1 + ' + Me.ListView1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3, Me.ColumnHeader4}) + Me.ListView1.Location = New System.Drawing.Point(19, 77) + Me.ListView1.Name = "ListView1" + Me.ListView1.Size = New System.Drawing.Size(722, 176) + Me.ListView1.TabIndex = 4 + Me.ListView1.UseCompatibleStateImageBehavior = False + Me.ListView1.View = System.Windows.Forms.View.Details + ' + 'ColumnHeader1 + ' + Me.ColumnHeader1.Text = "Index" + Me.ColumnHeader1.Width = 44 + ' + 'ColumnHeader2 + ' + Me.ColumnHeader2.Text = "Image name" + Me.ColumnHeader2.Width = 256 + ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Width = 256 + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Width = 128 + ' + 'NumericUpDown1 + ' + Me.NumericUpDown1.Location = New System.Drawing.Point(69, 50) + Me.NumericUpDown1.Minimum = New Decimal(New Integer() {1, 0, 0, 0}) + Me.NumericUpDown1.Name = "NumericUpDown1" + Me.NumericUpDown1.Size = New System.Drawing.Size(230, 21) + Me.NumericUpDown1.TabIndex = 6 + Me.NumericUpDown1.Value = New Decimal(New Integer() {1, 0, 0, 0}) + ' + 'Label7 ' - Me.Label6.Location = New System.Drawing.Point(12, 305) - Me.Label6.Name = "Label6" - Me.Label6.Size = New System.Drawing.Size(323, 28) - Me.Label6.TabIndex = 5 - Me.Label6.Text = "NOTE: right now, the program will only convert the first index of the source file" & _ - " to the target file format." + Me.Label7.AutoSize = True + Me.Label7.Location = New System.Drawing.Point(18, 52) + Me.Label7.Name = "Label7" + Me.Label7.Size = New System.Drawing.Size(39, 13) + Me.Label7.TabIndex = 5 + Me.Label7.Text = "Index:" ' 'ImgWim2Esd ' @@ -260,8 +324,7 @@ Partial Class ImgWim2Esd Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.CancelButton = Me.Cancel_Button - Me.ClientSize = New System.Drawing.Size(496, 345) - Me.Controls.Add(Me.Label6) + Me.ClientSize = New System.Drawing.Size(784, 561) Me.Controls.Add(Me.GroupBox3) Me.Controls.Add(Me.GroupBox2) Me.Controls.Add(Me.GroupBox1) @@ -284,6 +347,7 @@ Partial Class ImgWim2Esd Me.GroupBox2.PerformLayout() Me.GroupBox3.ResumeLayout(False) Me.GroupBox3.PerformLayout() + CType(Me.NumericUpDown1, System.ComponentModel.ISupportInitialize).EndInit() Me.ResumeLayout(False) End Sub @@ -307,6 +371,12 @@ Partial Class ImgWim2Esd Friend WithEvents TextBox2 As System.Windows.Forms.TextBox Friend WithEvents OpenFileDialog1 As System.Windows.Forms.OpenFileDialog Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog - Friend WithEvents Label6 As System.Windows.Forms.Label + Friend WithEvents ListView1 As System.Windows.Forms.ListView + Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader + Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader + Friend WithEvents NumericUpDown1 As System.Windows.Forms.NumericUpDown + Friend WithEvents Label7 As System.Windows.Forms.Label End Class diff --git a/Panels/Img_Ops/Conversion/ImgWim2Esd.vb b/Panels/Img_Ops/Conversion/ImgWim2Esd.vb index f809af0d..0dc6b86a 100644 --- a/Panels/Img_Ops/Conversion/ImgWim2Esd.vb +++ b/Panels/Img_Ops/Conversion/ImgWim2Esd.vb @@ -1,10 +1,14 @@ Imports System.Windows.Forms +Imports Microsoft.Dism +Imports System.IO +Imports System.Threading Public Class ImgWim2Esd Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click If Not ProgressPanel.IsDisposed Then ProgressPanel.Dispose() ProgressPanel.imgSrcFile = TextBox1.Text + ProgressPanel.imgConversionIndex = NumericUpDown1.Value ProgressPanel.imgDestFile = TextBox2.Text If ComboBox1.SelectedIndex = 0 Then ProgressPanel.imgConversionMode = 1 @@ -29,9 +33,9 @@ Public Class ImgWim2Esd Private Sub OpenFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk TextBox1.Text = OpenFileDialog1.FileName - If OpenFileDialog1.FileName.EndsWith(".wim") Then + If OpenFileDialog1.FileName.EndsWith("wim", StringComparison.OrdinalIgnoreCase) Then ComboBox1.SelectedIndex = 1 - ElseIf OpenFileDialog1.FileName.EndsWith(".esd") Then + ElseIf OpenFileDialog1.FileName.EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then ComboBox1.SelectedIndex = 0 End If End Sub @@ -47,6 +51,8 @@ Public Class ImgWim2Esd TextBox1.BackColor = Color.FromArgb(31, 31, 31) TextBox2.BackColor = Color.FromArgb(31, 31, 31) ComboBox1.BackColor = Color.FromArgb(31, 31, 31) + NumericUpDown1.BackColor = Color.FromArgb(31, 31, 31) + ListView1.BackColor = Color.FromArgb(31, 31, 31) ElseIf MainForm.BackColor = Color.FromArgb(239, 239, 242) Then Win10Title.BackColor = Color.White BackColor = Color.FromArgb(238, 238, 242) @@ -57,10 +63,14 @@ Public Class ImgWim2Esd TextBox1.BackColor = Color.FromArgb(238, 238, 242) TextBox2.BackColor = Color.FromArgb(238, 238, 242) ComboBox1.BackColor = Color.FromArgb(238, 238, 242) + NumericUpDown1.BackColor = Color.FromArgb(238, 238, 242) + ListView1.BackColor = Color.FromArgb(238, 238, 242) End If TextBox1.ForeColor = ForeColor TextBox2.ForeColor = ForeColor ComboBox1.ForeColor = ForeColor + NumericUpDown1.ForeColor = ForeColor + ListView1.ForeColor = ForeColor If Environment.OSVersion.Version.Major = 10 Then Text = "" Win10Title.Visible = True @@ -80,4 +90,29 @@ Public Class ImgWim2Esd Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged SaveFileDialog1.Filter = UCase(ComboBox1.SelectedItem) & " files|*." & LCase(ComboBox1.SelectedItem) End Sub + + Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged + If TextBox1.Text <> "" And File.Exists(TextBox1.Text) Then + If MainForm.MountedImageDetectorBW.IsBusy Then + MainForm.MountedImageDetectorBW.CancelAsync() + While MainForm.MountedImageDetectorBW.IsBusy + Application.DoEvents() + Thread.Sleep(500) + End While + End If + Try + ListView1.Items.Clear() + DismApi.Initialize(DismLogLevel.LogErrors) + Dim imgInfoCollection As DismImageInfoCollection = DismApi.GetImageInfo(TextBox1.Text) + NumericUpDown1.Maximum = imgInfoCollection.Count + For Each imgInfo As DismImageInfo In imgInfoCollection + ListView1.Items.Add(New ListViewItem(New String() {imgInfo.ImageIndex, imgInfo.ImageName, imgInfo.ImageDescription, imgInfo.ProductVersion.ToString()})) + Next + Catch ex As Exception + MsgBox("Could not get index information for this image file", vbOKOnly + vbCritical, Label1.Text) + Finally + DismApi.Shutdown() + End Try + End If + End Sub End Class diff --git a/Panels/Img_Ops/ImgMount.Designer.vb b/Panels/Img_Ops/ImgMount.Designer.vb index c59ee038..76df3fda 100644 --- a/Panels/Img_Ops/ImgMount.Designer.vb +++ b/Panels/Img_Ops/ImgMount.Designer.vb @@ -31,6 +31,7 @@ Partial Class ImgMount Me.Label2 = New System.Windows.Forms.Label() Me.GroupBox1 = New System.Windows.Forms.GroupBox() Me.Label4 = New System.Windows.Forms.Label() + Me.Button3 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button() Me.TextBox1 = New System.Windows.Forms.TextBox() Me.Label3 = New System.Windows.Forms.Label() @@ -43,6 +44,8 @@ Partial Class ImgMount Me.ListView1 = New System.Windows.Forms.ListView() Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) + Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) Me.NumericUpDown1 = New System.Windows.Forms.NumericUpDown() Me.CheckBox4 = New System.Windows.Forms.CheckBox() Me.CheckBox3 = New System.Windows.Forms.CheckBox() @@ -51,8 +54,6 @@ Partial Class ImgMount Me.Label11 = New System.Windows.Forms.Label() Me.FileSpecDialog = New System.Windows.Forms.OpenFileDialog() Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog() - Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) - Me.ColumnHeader4 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader) Me.TableLayoutPanel1.SuspendLayout() Me.Win10Title.SuspendLayout() CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() @@ -144,6 +145,7 @@ Partial Class ImgMount 'GroupBox1 ' Me.GroupBox1.Controls.Add(Me.Label4) + Me.GroupBox1.Controls.Add(Me.Button3) Me.GroupBox1.Controls.Add(Me.Button1) Me.GroupBox1.Controls.Add(Me.TextBox1) Me.GroupBox1.Controls.Add(Me.Label3) @@ -157,12 +159,23 @@ Partial Class ImgMount 'Label4 ' Me.Label4.AutoEllipsis = True - Me.Label4.Location = New System.Drawing.Point(152, 53) + Me.Label4.Location = New System.Drawing.Point(16, 58) Me.Label4.Name = "Label4" - Me.Label4.Size = New System.Drawing.Size(576, 13) + Me.Label4.Size = New System.Drawing.Size(657, 13) Me.Label4.TabIndex = 5 Me.Label4.Text = "NOTE: if you want to mount an ESD file, you need to convert it to a WIM file firs" & _ "t" + ' + 'Button3 + ' + Me.Button3.FlatStyle = System.Windows.Forms.FlatStyle.System + Me.Button3.Location = New System.Drawing.Point(679, 53) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(75, 23) + Me.Button3.TabIndex = 4 + Me.Button3.Text = "Convert" + Me.Button3.UseVisualStyleBackColor = True + Me.Button3.Visible = False ' 'Button1 ' @@ -276,6 +289,16 @@ Partial Class ImgMount Me.ColumnHeader2.Text = "Image name" Me.ColumnHeader2.Width = 256 ' + 'ColumnHeader3 + ' + Me.ColumnHeader3.Text = "Image description" + Me.ColumnHeader3.Width = 256 + ' + 'ColumnHeader4 + ' + Me.ColumnHeader4.Text = "Image version" + Me.ColumnHeader4.Width = 128 + ' 'NumericUpDown1 ' Me.NumericUpDown1.Location = New System.Drawing.Point(152, 25) @@ -335,17 +358,7 @@ Partial Class ImgMount ' 'FileSpecDialog ' - Me.FileSpecDialog.Filter = "WIM files|*.wim|VHD(X) files|*.vhd;*.vhdx;" - ' - 'ColumnHeader3 - ' - Me.ColumnHeader3.Text = "Image description" - Me.ColumnHeader3.Width = 256 - ' - 'ColumnHeader4 - ' - Me.ColumnHeader4.Text = "Image version" - Me.ColumnHeader4.Width = 128 + Me.FileSpecDialog.Filter = "WIM files|*.wim|ESD files|*.esd|VHD(X) files|*.vhd;*.vhdx;" ' 'ImgMount ' @@ -415,5 +428,6 @@ Partial Class ImgMount Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader Friend WithEvents ColumnHeader4 As System.Windows.Forms.ColumnHeader + Friend WithEvents Button3 As System.Windows.Forms.Button End Class diff --git a/Panels/Img_Ops/ImgMount.vb b/Panels/Img_Ops/ImgMount.vb index 6f565b44..247b0381 100644 --- a/Panels/Img_Ops/ImgMount.vb +++ b/Panels/Img_Ops/ImgMount.vb @@ -2,6 +2,7 @@ Imports System.Windows.Forms Imports System.Text.Encoding Imports Microsoft.VisualBasic.ControlChars +Imports System.Threading Imports Microsoft.Dism Public Class ImgMount @@ -95,6 +96,7 @@ Public Class ImgMount GroupBox3.Text = "Options" Button1.Text = "Browse..." Button2.Text = "Browse..." + Button3.Text = "Convert" Button5.Text = "Use defaults" Cancel_Button.Text = "Cancel" OK_Button.Text = "OK" @@ -119,6 +121,7 @@ Public Class ImgMount GroupBox3.Text = "Opciones" Button1.Text = "Examinar..." Button2.Text = "Examinar..." + Button3.Text = "Convertir" Button5.Text = "Predeterminados" Cancel_Button.Text = "Cancelar" OK_Button.Text = "Aceptar" @@ -144,6 +147,7 @@ Public Class ImgMount GroupBox3.Text = "Options" Button1.Text = "Browse..." Button2.Text = "Browse..." + Button3.Text = "Convert" Button5.Text = "Use defaults" Cancel_Button.Text = "Cancel" OK_Button.Text = "OK" @@ -168,6 +172,7 @@ Public Class ImgMount GroupBox3.Text = "Opciones" Button1.Text = "Examinar..." Button2.Text = "Examinar..." + Button3.Text = "Convertir" Button5.Text = "Predeterminados" Cancel_Button.Text = "Cancelar" OK_Button.Text = "Aceptar" @@ -229,6 +234,34 @@ Public Class ImgMount Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click FileSpecDialog.ShowDialog() + If TextBox1.Text <> "" And Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then + Button3.Visible = True + IsReqField1Valid = False + ImgWim2Esd.TextBox1.Text = TextBox1.Text + ImgWim2Esd.TextBox2.Text = TextBox1.Text.Replace(Path.GetExtension(TextBox1.Text), ".wim").Trim() + Hide() + ImgWim2Esd.ShowDialog(MainForm) + Show() + If ImgWim2Esd.DialogResult = Windows.Forms.DialogResult.OK And File.Exists(ImgWim2Esd.TextBox2.Text) Then + TextBox1.Text = ImgWim2Esd.TextBox2.Text + ElseIf ImgWim2Esd.DialogResult = Windows.Forms.DialogResult.Cancel Then + Select Case MainForm.Language + Case 0 + Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName + Case "ENG" + MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, Label1.Text) + Case "ESN" + MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, Label1.Text) + End Select + Case 1 + MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, Label1.Text) + Case 2 + MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, Label1.Text) + End Select + End If + Else + Button3.Visible = False + End If End Sub Private Sub FileSpecDialog_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles FileSpecDialog.FileOk @@ -253,6 +286,13 @@ Public Class ImgMount Sub GetIndexes(ImgFile As String) Try + If MainForm.MountedImageDetectorBW.IsBusy Then + MainForm.MountedImageDetectorBW.CancelAsync() + While MainForm.MountedImageDetectorBW.IsBusy + Application.DoEvents() + Thread.Sleep(500) + End While + End If ListView1.Items.Clear() DismApi.Initialize(DismLogLevel.LogErrors) Dim imgInfoCollection As DismImageInfoCollection = DismApi.GetImageInfo(ImgFile) @@ -291,6 +331,9 @@ Public Class ImgMount IsReqField1Valid = True ProgressPanel.SourceImg = TextBox1.Text GetIndexes(TextBox1.Text) + If Path.GetExtension(TextBox1.Text).EndsWith("esd", StringComparison.OrdinalIgnoreCase) Then + IsReqField1Valid = False + End If Else IsReqField1Valid = False End If @@ -342,4 +385,30 @@ Public Class ImgMount Private Sub ImgMount_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing If Not MainForm.MountedImageDetectorBW.IsBusy Then Call MainForm.MountedImageDetectorBW.RunWorkerAsync() End Sub + + Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click + IsReqField1Valid = False + ImgWim2Esd.TextBox1.Text = TextBox1.Text + ImgWim2Esd.TextBox2.Text = TextBox1.Text.Replace(Path.GetExtension(TextBox1.Text), ".wim").Trim() + Hide() + ImgWim2Esd.ShowDialog(MainForm) + Show() + If ImgWim2Esd.DialogResult = Windows.Forms.DialogResult.OK And File.Exists(ImgWim2Esd.TextBox2.Text) Then + TextBox1.Text = ImgWim2Esd.TextBox2.Text + ElseIf ImgWim2Esd.DialogResult = Windows.Forms.DialogResult.Cancel Then + Select Case MainForm.Language + Case 0 + Select Case My.Computer.Info.InstalledUICulture.ThreeLetterWindowsLanguageName + Case "ENG" + MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, Label1.Text) + Case "ESN" + MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, Label1.Text) + End Select + Case 1 + MsgBox("You need to convert this image to a WIM file in order to mount it", vbOKOnly + vbExclamation, Label1.Text) + Case 2 + MsgBox("Debe convertir esta imagen a un archivo WIM para poder montarla", vbOKOnly + vbExclamation, Label1.Text) + End Select + End If + End Sub End Class diff --git a/Panels/Unattend_Files/Addition/NewUnattendWiz.vb b/Panels/Unattend_Files/Addition/NewUnattendWiz.vb index 019e0914..0d53b775 100644 --- a/Panels/Unattend_Files/Addition/NewUnattendWiz.vb +++ b/Panels/Unattend_Files/Addition/NewUnattendWiz.vb @@ -934,6 +934,189 @@ Public Class NewUnattendWiz End Try End Sub + Sub GenerateUnattendFile() + ' This procedure only targets Win10 x86/x64 UEFI for now + Dim XmlContents As String = "" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " TEMP:TEMPTEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 0" & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 1" & CrLf & _ + " Primary" & CrLf & _ + " 300" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 2" & CrLf & _ + " EFI" & CrLf & _ + " 100" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 3" & CrLf & _ + " MSR" & CrLf & _ + " 128" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 4" & CrLf & _ + " Primary" & CrLf & _ + " True" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 1" & CrLf & _ + " 1" & CrLf & _ + " " & CrLf & _ + " NTFS" & CrLf & _ + " DE94BBA4-06D1-4D40-A16A-BFD50179D6AC" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 2" & CrLf & _ + " 2" & CrLf & _ + " " & CrLf & _ + " FAT32" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 3" & CrLf & _ + " 3" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " NTFS" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " false" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " Never" & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " 1" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP:TEMPTEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " TEMP-TEMP-TEMP-TEMP-TEMP" & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " " & CrLf & _ + " TEMP" & CrLf & _ + " true</PlainText>" & CrLf & _ + " </Password>" & CrLf & _ + " <Enabled>TEMP</Enabled>" & CrLf & _ + " <Username>TEMP</Username>" & CrLf & _ + " </AutoLogon>" & CrLf & _ + " <OOBE>" & CrLf & _ + " <HideEULAPage>TEMP</HideEULAPage>" & CrLf & _ + " <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>" & CrLf & _ + " <HideOnlineAccountScreens>true</HideOnlineAccountScreens>" & CrLf & _ + " <HideWirelessSetupInOOBE>TEMP</HideWirelessSetupInOOBE>" & CrLf & _ + " <NetworkLocation>TEMP</NetworkLocation>" & CrLf & _ + " <SkipUserOOBE>TEMP</SkipUserOOBE>" & CrLf & _ + " <SkipMachineOOBE>TEMP</SkipMachineOOBE>" & CrLf & _ + " <ProtectYourPC>TEMP</ProtectYourPC>" & CrLf & _ + " </OOBE>" & CrLf & _ + " <UserAccounts>" & CrLf & _ + " <LocalAccounts>" & CrLf & _ + " <LocalAccount wcm:action=" & Quote & "add" & Quote & ">" & CrLf & _ + " <Password>" & CrLf & _ + " <Value>TEMP</Value>" & CrLf & _ + " <PlainText>true</PlainText>" & CrLf & _ + " </Password>" & CrLf & _ + " <Description>TEMP</Description>" & CrLf & _ + " <DisplayName>TEMP</DisplayName>" & CrLf & _ + " <Group>TEMP</Group>" & CrLf & _ + " <Name>TEMP</Name>" & CrLf & _ + " </LocalAccount>" & CrLf & _ + " </LocalAccounts" & CrLf & _ + " </UserAccounts>" & CrLf & _ + " <RegisteredOrganization>TEMP</RegisteredOrganization>" & CrLf & _ + " <RegisteredOwner>TEMP</RegisteredOwner>" & CrLf & _ + " <DisableAutoDaylightTimeSet>TEMP</DisableAutoDaylightTimeSet>" & CrLf & _ + " <FirstLogonCommands>" & CrLf & _ + " <SynchronousCommand wcm:action=" & Quote & "add" & Quote & ">" & CrLf & _ + " <Description>Control Panel View</Description>" & CrLf & _ + " <Order>1</Order>" & CrLf & _ + " <CommandLine>reg add " & Quote & "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ControlPanel" & Quote & " /v StartupPage /t REG_DWORD /d TEMP /f</CommandLine>" & CrLf & _ + " <RequiresUserInput>true</RequiresUserInput>" & CrLf & _ + " </SynchronousCommand>" & CrLf & _ + " <SynchronousCommand wcm:action=" & Quote & "add" & Quote & ">" & CrLf & _ + " <Description>Control Panel Icon Size</Description>" & CrLf & _ + " <Order>2</Order>" & CrLf & _ + " <CommandLine>reg add " & Quote & "HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ControlPanel" & Quote & " /v AllItemsIconView /t REG_DWORD /d TEMP /f</CommandLine>" & CrLf & _ + " <RequiresUserInput>false</RequiresUserInput>" & CrLf & _ + " </SynchronousCommand>" & CrLf & _ + " <SynchronousCommand wcm:action=" & Quote & "add" & Quote & ">" & CrLf & _ + " <Description>Password Never Expires</Description>" & CrLf & _ + " <Order>3</Order>" & CrLf & _ + " <CommandLine>cmd /C wmic useraccount where name=" & Quote & "TEMP" & Quote & " set PasswordExpires=TEMP</CommandLine>" & CrLf & _ + " <RequiresUserInput>false</RequiresUserInput>" & CrLf & _ + " </SynchronousCommand>" & CrLf & _ + " </FirstLogonCommands>" & CrLf & _ + " <TimeZone>TEMP</TimeZone>" & CrLf & _ + " </component>" & CrLf & _ + " </settings>" & CrLf & _ + " </unattend>" & CrLf & _ + "</xml>" + End Sub + Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged If ComboBox1.SelectedItem = "Windows XP" Then Label13.Text = "25/10/2001" diff --git a/Updater/DISMTools-UCS/update-bin/preview.ini b/Updater/DISMTools-UCS/update-bin/preview.ini index e308ab4b..f0c6fef4 100644 --- a/Updater/DISMTools-UCS/update-bin/preview.ini +++ b/Updater/DISMTools-UCS/update-bin/preview.ini @@ -1,6 +1,6 @@ [Version] -LatestVer = 0.3.1.2382 -ReleaseTag = v0.3.1_pre_2382 +LatestVer = 0.3.1.2383 +ReleaseTag = v0.3.1_pre_2383 [Options] MigrateSettings = False \ No newline at end of file diff --git a/Updater/DISMTools-UCS/update-bin/update.exe b/Updater/DISMTools-UCS/update-bin/update.exe index 1c1a5ec1..418962b8 100644 Binary files a/Updater/DISMTools-UCS/update-bin/update.exe and b/Updater/DISMTools-UCS/update-bin/update.exe differ diff --git a/Updater/DISMTools-UCS/verinfo/preview.ini b/Updater/DISMTools-UCS/verinfo/preview.ini index e308ab4b..f0c6fef4 100644 --- a/Updater/DISMTools-UCS/verinfo/preview.ini +++ b/Updater/DISMTools-UCS/verinfo/preview.ini @@ -1,6 +1,6 @@ [Version] -LatestVer = 0.3.1.2382 -ReleaseTag = v0.3.1_pre_2382 +LatestVer = 0.3.1.2383 +ReleaseTag = v0.3.1_pre_2383 [Options] MigrateSettings = False \ No newline at end of file