From 6dc6b999a66b77dfcb55ca4f31891fe108cff1ce Mon Sep 17 00:00:00 2001 From: Costas K <11378310+kacos2000@users.noreply.github.com> Date: Tue, 24 Jan 2023 20:42:29 +0200 Subject: [PATCH] v.0.0.13.0 --- JumplistBrowser.ps1 | 287 +++++++++++++++++++++++++++++++++----------- 1 file changed, 218 insertions(+), 69 deletions(-) diff --git a/JumplistBrowser.ps1 b/JumplistBrowser.ps1 index 1721633..f780bc1 100644 --- a/JumplistBrowser.ps1 +++ b/JumplistBrowser.ps1 @@ -1,6 +1,8 @@ <# .NOTES -------------------------------------------------------------------------------- + Code generated by: SAPIEN Technologies, Inc., PowerShell Studio 2023 v5.8.216 + Generated on: 24/1/2023 8:38 pm Generated by: Costas Katsavounidis https://github.com/kacos2000/Jumplist-Browser -------------------------------------------------------------------------------- @@ -32,8 +34,6 @@ function Main { $script:ExitCode = 0 #Set the exit code for the Packager } - -#region Source: MainForm.psf function Show-MainForm_psf { #---------------------------------------------- @@ -65,7 +65,7 @@ function Show-MainForm_psf $toolstripseparator6 = New-Object 'System.Windows.Forms.ToolStripSeparator' $toolstripseparator7 = New-Object 'System.Windows.Forms.ToolStripSeparator' $Exit1 = New-Object 'System.Windows.Forms.ToolStripMenuItem' - $toolstripmenuitem1 = New-Object 'System.Windows.Forms.ToolStripMenuItem' + $Process1 = New-Object 'System.Windows.Forms.ToolStripMenuItem' $toolstripseparator8 = New-Object 'System.Windows.Forms.ToolStripSeparator' $contextmenustrip2 = New-Object 'System.Windows.Forms.ContextMenuStrip' $CopyNode2 = New-Object 'System.Windows.Forms.ToolStripMenuItem' @@ -89,6 +89,9 @@ function Show-MainForm_psf $SaveNodestoTxt = New-Object 'System.Windows.Forms.ToolStripMenuItem' $toolstripseparator3 = New-Object 'System.Windows.Forms.ToolStripSeparator' $savefiledialog1 = New-Object 'System.Windows.Forms.SaveFileDialog' + $OpenFileWith = New-Object 'System.Windows.Forms.ToolStripMenuItem' + $CopyFullFilePath = New-Object 'System.Windows.Forms.ToolStripMenuItem' + $toolstripseparator2 = New-Object 'System.Windows.Forms.ToolStripSeparator' $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState' #endregion Generated Form Objects @@ -566,7 +569,7 @@ function Show-MainForm_psf $ShotcutInfo.LinkTargetIDList.IDListSize + $ShotcutInfo.StringData.StringDataSize + $ShotcutInfo.ExtraData.ExtraDataSize) - $LS = if ($ByteArray.Length -gt $LnkSize) { $ByteArray[($LnkSize - 1) .. $ByteArray.Length] } else { $null } + $LS = if ($ByteArray.Length -gt $ShotcutInfo.Size) { $ByteArray[($ShotcutInfo.Size - 1) .. $ByteArray.Length] } else { $null } $LinkSlackLength = if (!!$LS) { $ls.length } else{$null} $LinkSlack = if (!!$LS) { [System.BitConverter]::ToString($LS) -replace '-', '' } else{''} @@ -715,11 +718,11 @@ function Show-MainForm_psf # CommonNetworkRelativeLink if ($LinkInfoFlags.contains('CommonNetworkRelativeLink')) { - $CommonNetworkRelativeLinkFlags = $ShotcutInfo.LinkInfo.CommonNetworkRelativeLink.CommonNetworkRelativeLinkFlags - $linktargets | Add-Member -MemberType NoteProperty -Name "Common Network Relative Link Flags" -Value $CommonNetworkRelativeLinkFlags.ToString() + $CommonNetworkRelativeLinkFlags = $ShotcutInfo.LinkInfo.CommonNetworkRelativeLink.CommonNetworkRelativeLinkFlags.ToString() + $linktargets | Add-Member -MemberType NoteProperty -Name "Common Network Relative Link Flags" -Value $CommonNetworkRelativeLinkFlags # ValidNetType - if ($CommonNetworkRelativeLinkFlags.ToString().Contains('ValidNetType')) + if ($CommonNetworkRelativeLinkFlags.Contains('ValidNetType')) { $NetworkProviderType = ($ShotcutInfo.LinkInfo.CommonNetworkRelativeLink.NetworkProviderType).ToString('X') $NetworkProvider = if (!!$($Vendors[$NetworkProviderType])) { "0x$($NetworkProviderType) ($($Vendors[$NetworkProviderType]))" } @@ -732,7 +735,7 @@ function Show-MainForm_psf $linktargets | Add-Member -MemberType NoteProperty -Name "NetName Unicode" -Value $NetNameUnicode # ValidDevice - if ($CommonNetworkRelativeLinkFlags.ToString().Contains('ValidDevice')) + if ($CommonNetworkRelativeLinkFlags.Contains('ValidDevice')) { $DeviceName = $ShotcutInfo.LinkInfo.CommonNetworkRelativeLink.DeviceName $DeviceNameUnicode = $ShotcutInfo.LinkInfo.CommonNetworkRelativeLink.DeviceNameUnicode @@ -937,7 +940,8 @@ function Show-MainForm_psf $linktargets | Add-Member -MemberType NoteProperty -Name "icon Target Unicode" -Value "$($iconTargetUnicode)" } } - + # For debug + # Show-InfoMessage -InfoMessage ($linktargets|Out-String) } catch { @@ -1609,6 +1613,53 @@ function Show-MainForm_psf "5bb830f67194431a" = "7-Zip 18.05 (x64)" } + # There is a shell API for the SHOpenWithDialog function + Add-Type -TypeDefinition @' + + using System; + using System.Runtime.InteropServices; + + public class ShellOpenWith { + + [DllImport("shell32.dll", EntryPoint = "SHOpenWithDialog", CharSet = CharSet.Unicode)] + private static extern int SHOpenWithDialog(IntPtr hWndParent, ref tagOPENASINFO oOAI); + + // http://msdn.microsoft.com/en-us/library/windows/desktop/bb773363(v=vs.85).aspx + private struct tagOPENASINFO + { + [MarshalAs(UnmanagedType.LPWStr)] + public string cszFile; + + [MarshalAs(UnmanagedType.LPWStr)] + public string cszClass; + + [MarshalAs(UnmanagedType.I4)] + public tagOPEN_AS_INFO_FLAGS oaifInFlags; + } + + [Flags] + private enum tagOPEN_AS_INFO_FLAGS + { + OAIF_ALLOW_REGISTRATION = 0x00000001, // Show "Always" checkbox + OAIF_REGISTER_EXT = 0x00000002, // Perform registration when user hits OK + OAIF_EXEC = 0x00000004, // Exec file after registering + OAIF_FORCE_REGISTRATION = 0x00000008, // Force the checkbox to be registration + OAIF_HIDE_REGISTRATION = 0x00000020, // Vista+: Hide the "always use this file" checkbox + OAIF_URL_PROTOCOL = 0x00000040, // Vista+: cszFile is actually a URI scheme; show handlers for that scheme + OAIF_FILE_IS_URI = 0x00000080 // Win8+: The location pointed to by the pcszFile parameter is given as a URI + } + + public static void DoOpenFileWith(string sFilename, IntPtr hwndParent = new IntPtr()) + { + tagOPENASINFO oOAI = new tagOPENASINFO(); + oOAI.cszFile = sFilename; + oOAI.cszClass = String.Empty; + oOAI.oaifInFlags = tagOPEN_AS_INFO_FLAGS.OAIF_ALLOW_REGISTRATION | tagOPEN_AS_INFO_FLAGS.OAIF_EXEC; + SHOpenWithDialog(hwndParent, ref oOAI); + } + } +'@ + function get-files { [CmdletBinding()] @@ -1837,16 +1888,16 @@ function Show-MainForm_psf if ($treeview1.Nodes) { $treeview1.Nodes.Clear() } else {} if ($treeview2.Nodes) { $treeview2.Nodes.Clear() } else {} - <# try - {#> + try + { $Status.Text = "Selected Folder: $($recentfolder) " get-files -Folder "$($recentfolder)" - <# } + } catch { [System.Console]::Beep(500, 150) return - }#> + } } } @@ -1989,7 +2040,7 @@ function Show-MainForm_psf if (!!$LNKData) { - $LNKNode = $Root2.Nodes.Add("LNK #$($o)", "$($fname) LNK #$($o.ToString('D3')) - $($LNKData.'Display Name')") + $LNKNode = $Root2.Nodes.Add("LNK #$($o)", "[$($offset.Start.ToString('D5'))] $($fname) LNK #$($o.ToString('D3')) - $($LNKData.'Display Name')") $LNKNode.ForeColor = 'DarkTurquoise' # Header $SizeNode = $LNKNode.Nodes.Add("$('Shortcut Size')", "Shortcut Size: $($LNKData.'Shortcut Size')") @@ -2010,7 +2061,14 @@ function Show-MainForm_psf { $null = $SizeNode.Nodes.Add("$('ExtraData Block Size')", "ExtraData Block Size: $($LNKData.'ExtraData Block Size')") } - if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]') + + <# + In customdestinations-ms: + The Lnk CLSID '0x0114020000000000C000000000000046' precedes each LNK entry + The end signature of customdestinations-ms is: '0xFBBFBA' + #> + + if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]' -and $LNKData.LinkSlack -notmatch 'C0000000000000464C' -and $LNKData.LinkSlack -notmatch '(ABFBBFBA)' -and $LNKData.LinkSlack -notmatch '(FBBFBA)') { $null = $LNKNode.Nodes.Add("$('LinkSlackLength')", "LNK Slack Size: $($LNKData.LinkSlackLength)") $LNKNode.Nodes["$('LinkSlackLength')"].ForeColor = 'Tomato' @@ -2109,19 +2167,19 @@ function Show-MainForm_psf } # CommonNetworkRelativeLink - if ($LNKData.'Link Info Flags'.Contains('CommonNetworkRelativeLinkFlags')) + if ($LNKData.'Link Info Flags'.Contains('CommonNetworkRelativeLink')) { $CommonNetworkRelativeLinkFlagsNode = $LNKNode.Nodes.Add("$('CommonNetworkRelativeLinkFlags')", "Common Network Relative Link Flags") if (![System.String]::IsNullOrEmpty($LNKData.'CommonNetworkRelativeLinkFlags')) { - $CommonNetworkflags = @($LNKData.'Common Network Relative Link Flags'.ToString().split(',', [System.StringSplitOptions]::RemoveEmptyEntries)) + $CommonNetworkflags = @($LNKData.'Common Network Relative Link Flags'.split(',', [System.StringSplitOptions]::RemoveEmptyEntries)) foreach ($cnflag in $CommonNetworkflags) { $null = $CommonNetworkRelativeLinkFlagsNode.Nodes.Add("$($cnflag)", "Relative Link Flag: $($cnflag.Replace(' ', ''))") } } # ValidNetType - if ($LNKData.'Common Network Relative Link Flags'.ToString().Contains('ValidNetType')) + if ($LNKData.'Common Network Relative Link Flags'.Contains('ValidNetType')) { $null = $LNKNode.Nodes.Add("$('NetworkProviderType')", "Network Provider Type: $($LNKData.NetworkProviderType)") } @@ -2129,7 +2187,7 @@ function Show-MainForm_psf $null = $LNKNode.Nodes.Add("$('NetName')", "NetName: $($LNKData.'NetName')") $null = $LNKNode.Nodes.Add("$('NetName Unicode')", "NetName Unicode: $($LNKData.'NetName Unicode')") # ValidDevice - if ($LNKData.'Common Network Relative Link Flags'.ToString().Contains('ValidDevice')) + if ($LNKData.'Common Network Relative Link Flags'.Contains('ValidDevice')) { $null = $LNKNode.Nodes.Add("$('Device Name')", "Device Name: $($LNKData.'Device Name')") $null = $LNKNode.Nodes.Add("$('Device Name Unicode')", "Device Name Unicode: $($LNKData.'Device Name Unicode')") @@ -2298,8 +2356,12 @@ function Show-MainForm_psf $null = $LNKNode.Nodes.Add("$('iconTargetAnsi')", "Icon Target Ansi: $($LNKData.'iconTargetAnsi')") $null = $LNKNode.Nodes.Add("$('iconTargetUnicode')", "Icon Target Unicode: $($LNKData.'iconTargetUnicode')") } - - if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]') + <# + In customdestinations-ms: + The Lnk CLSID '0x0114020000000000C000000000000046' precedes each LNK entry + The end signature of customdestinations-ms is: '0xFBBFBA' + #> + if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]' -and $LNKData.LinkSlack -notmatch 'C0000000000000464C' -and $LNKData.LinkSlack -notmatch '(ABFBBFBA)' -and $LNKData.LinkSlack -notmatch '(FBBFBA)') { $null = $LNKNode.Nodes.Add("$('Link Slack')", "Link Slack: $($LNKData.LinkSlack)") $LNKNode.Nodes["$('Link Slack')"].ToolTipText = [System.Text.RegularExpressions.Regex]::Replace($LNKData.LinkSlack, '(.){100}', "$('$0')`n") @@ -2455,6 +2517,7 @@ function Show-MainForm_psf 'Name' = split-path -path $File -Leaf 'StreamName' = $stream.Name 'StreamData' = $shellLnk + 'DataLength' = $data.Length 'Data' = if (!$shellLnk) { $data }else{ $null } # if ($stream.Name -match "DestList") { $data }else{$null} } } @@ -2477,8 +2540,9 @@ function Show-MainForm_psf $LNKData = $streaminf.StreamData if ($LNKData -ne $null) { - $streamNode = $Root2.Nodes.Add($streaminf.StreamName, "Stream Name: $($streaminf.StreamName) - $($LNKData.'Display Name')") + $streamNode = $Root2.Nodes.Add($streaminf.StreamName, "Stream Name: [$($streaminf.StreamName.ToString())] $($LNKData.'Display Name')") $streamNode.ForeColor = 'Orange' + $null = $streamNode.Nodes.Add("$('Stream Data Size')", "Stream Size: $($streaminf.DataLength)") # Header $SizeNode = $streamNode.Nodes.Add("$('Shortcut Size')", "Shortcut Size: $($LNKData.'Shortcut Size')") $null = $SizeNode.Nodes.Add("$('Header Block Size')", "Header Block Size: $($LNKData.'Header Block Size')") @@ -2498,7 +2562,8 @@ function Show-MainForm_psf { $null = $SizeNode.Nodes.Add("$('ExtraData Block Size')", "ExtraData Block Size: $($LNKData.'ExtraData Block Size')") } - if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]') + + if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]' -and $LNKData.LinkSlack -notmatch '4800000081E903DFDA31E64BAB0A85774A0BD1B4') { $null = $streamNode.Nodes.Add("$('LinkSlackLength')", "LNK Slack Size: $($LNKData.LinkSlackLength)") $streamNode.Nodes["$('LinkSlackLength')"].ForeColor = 'Tomato' @@ -2607,14 +2672,14 @@ function Show-MainForm_psf $CommonNetworkRelativeLinkFlagsNode = $streamNode.Nodes.Add("$('CommonNetworkRelativeLinkFlags')", "Common Network Relative Link Flags") if (![System.String]::IsNullOrEmpty($LNKData.'CommonNetworkRelativeLinkFlags')) { - $CommonNetworkflags = @($LNKData.'CommonNetworkRelativeLinkFlags'.ToString().split(',') ) + $CommonNetworkflags = @($LNKData.'CommonNetworkRelativeLinkFlags'.split(',') ) foreach ($cnflag in $CommonNetworkflags) { $null = $CommonNetworkRelativeLinkFlagsNode.Nodes.Add("$($cnflag)", "Relative Link Flag: $($cnflag.Replace(' ', ''))") } } # ValidNetType - if ($LNKData.'Common Network Relative Link Flags'.ToString().Contains('ValidNetType')) + if ($LNKData.'Common Network Relative Link Flags'.Contains('ValidNetType')) { $null = $streamNode.Nodes.Add("$('NetworkProviderType')", "Network Provider Type: $($LNKData.NetworkProviderType)") } @@ -2622,7 +2687,7 @@ function Show-MainForm_psf $null = $streamNode.Nodes.Add("$('NetName')", "NetName: $($LNKData.'NetName')") $null = $streamNode.Nodes.Add("$('NetName Unicode')", "NetName Unicode: $($LNKData.'NetName Unicode')") # ValidDevice - if ($LNKData.'Common Network Relative Link Flags'.ToString().Contains('ValidDevice')) + if ($LNKData.'Common Network Relative Link Flags'.Contains('ValidDevice')) { $null = $streamNode.Nodes.Add("$('Device Name')", "Device Name: $($LNKData.'Device Name')") $null = $streamNode.Nodes.Add("$('Device Name Unicode')", "Device Name Unicode: $($LNKData.'Device Name Unicode')") @@ -2789,7 +2854,8 @@ function Show-MainForm_psf $null = $streamNode.Nodes.Add("$('iconTargetAnsi')", "Icon Target Ansi: $($LNKData.'iconTargetAnsi')") $null = $streamNode.Nodes.Add("$('iconTargetUnicode')", "Icon Target Unicode: $($LNKData.'iconTargetUnicode')") } - if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]') + + if (!!$LNKData.LinkSlackLength -and $LNKData.LinkSlack -match '[a-fA-F1-9]' -and $LNKData.LinkSlack -notmatch '4800000081E903DFDA31E64BAB0A85774A0BD1B4') { $null = $streamNode.Nodes.Add("$('Link Slack')", "Link Slack: $($LNKData.LinkSlack)") $streamNode.Nodes["$('Link Slack')"].ForeColor = 'Tomato' @@ -2809,8 +2875,8 @@ function Show-MainForm_psf $DestNode = $Root2.Nodes.Add($streaminf.StreamName, "Stream Name: $($streaminf.StreamName)") } $DestNode.ForeColor = 'Orange' - <#try - {#> + try + { if ($streaminf.StreamName -eq "DestList") { $x = $streaminf @@ -2893,7 +2959,7 @@ function Show-MainForm_psf $e = 0 foreach ($entry in $entries) { - $entryNode = $EntriesNodes.Nodes.Add("Entry_$($e)", "Entry #$($e.ToString('D3')) - $($entry.'String')") + $entryNode = $EntriesNodes.Nodes.Add("Entry_$($e)", "[$($streaminf.StreamName.ToString())] Entry #$($e.ToString('D3')) - $($entry.'String')") $entryNode.ForeColor = 'GreenYellow' $null = $entryNode.Nodes.Add("$($e)entry.Hash", "Hash: $($entry.'Hash')") @@ -2980,8 +3046,8 @@ function Show-MainForm_psf $e = $e + 1 } } # endif - <# } #end try - catch { }#> + } #end try + catch { } } elseif ($LNKData -eq $null -and ($streaminf.StreamName -eq 'DestListPropertyStore')) { @@ -3100,6 +3166,19 @@ function Show-MainForm_psf } } + $CopyFullFilePath_Click = { + if (!!$treeview1.SelectedNode -and !!$treeview1.SelectedNode.Tag) + { + try + { + $filename = $treeview1.SelectedNode.Tag.ToString() + $file = [System.IO.FileInfo]::new($filename) + $file.FullName | Set-Clipboard + } + catch { [System.Console]::Beep(500, 150) } + } + } + $Exit1_Click={ $Jumplist_Browser.Close() } @@ -3297,6 +3376,22 @@ function Show-MainForm_psf } + $OpenFileWith_Click = { + if (!!$treeview1.SelectedNode -and !!$treeview1.SelectedNode.Tag) + { + try + { + $filename = $treeview1.SelectedNode.Tag.ToString() + $file = [System.IO.FileInfo]::new($filename) + if ($file.Exists) + { + [ShellOpenWith]::DoOpenFileWith($file.FullName) + } + } + catch{[System.Console]::Beep(500,150)} + } + } + $SaveNodestoTxt_Click={ $node = $treeview2.Nodes[0] If (!!$node -and $node.GetNodeCount($false) -ge 1) @@ -3329,7 +3424,7 @@ function Show-MainForm_psf } - $toolstripmenuitem1_Click={ + $Process1_Click={ $node = $treeview1.SelectedNode if (!!$node) { @@ -3347,7 +3442,6 @@ function Show-MainForm_psf } - $treeview2_NodeMouseHover=[System.Windows.Forms.TreeNodeMouseHoverEventHandler]{ #Event Argument: $_ = [System.Windows.Forms.TreeNodeMouseHoverEventArgs] <#if (!!$_.Node.Text) @@ -3356,6 +3450,10 @@ function Show-MainForm_psf }#> } + + + + # --End User Generated Script-- #---------------------------------------------- #region Generated Events @@ -3403,7 +3501,7 @@ function Show-MainForm_psf $treeview2.remove_NodeMouseHover($treeview2_NodeMouseHover) $CopyNode1.remove_Click($CopyNode1_Click) $Exit1.remove_Click($Exit1_Click) - $toolstripmenuitem1.remove_Click($toolstripmenuitem1_Click) + $Process1.remove_Click($Process1_Click) $CopyNode2.remove_Click($CopyNode2_Click) $CopyAll2.remove_Click($CopyAll2_Click) $Expand2.remove_Click($Expand2_Click) @@ -3418,6 +3516,8 @@ function Show-MainForm_psf $ExpandAll2.remove_Click($ExpandAll2_Click) $CollapseAll2.remove_Click($CollapseAll2_Click) $SaveNodestoTxt.remove_Click($SaveNodestoTxt_Click) + $OpenFileWith.remove_Click($OpenFileWith_Click) + $CopyFullFilePath.remove_Click($CopyFullFilePath_Click) $Jumplist_Browser.remove_Load($Form_StateCorrection_Load) $Jumplist_Browser.remove_Closing($Form_StoreValues_Closing) $Jumplist_Browser.remove_FormClosed($Form_Cleanup_FormClosed) @@ -4206,8 +4306,11 @@ QmCCCw==')) # contextmenustrip1 # [void]$contextmenustrip1.Items.Add($CopyNode1) + [void]$contextmenustrip1.Items.Add($CopyFullFilePath) [void]$contextmenustrip1.Items.Add($toolstripseparator6) - [void]$contextmenustrip1.Items.Add($toolstripmenuitem1) + [void]$contextmenustrip1.Items.Add($Process1) + [void]$contextmenustrip1.Items.Add($toolstripseparator2) + [void]$contextmenustrip1.Items.Add($OpenFileWith) [void]$contextmenustrip1.Items.Add($toolstripseparator8) [void]$contextmenustrip1.Items.Add($Expand1) [void]$contextmenustrip1.Items.Add($Collapse1) @@ -4217,7 +4320,7 @@ QmCCCw==')) [void]$contextmenustrip1.Items.Add($toolstripseparator5) [void]$contextmenustrip1.Items.Add($Exit1) $contextmenustrip1.Name = 'contextmenustrip1' - $contextmenustrip1.Size = New-Object System.Drawing.Size(282, 238) + $contextmenustrip1.Size = New-Object System.Drawing.Size(282, 304) # # CopyNode1 # @@ -4275,13 +4378,15 @@ BuWSu6CElvwDAAAAAElFTkSuQmCCCw==')) $Exit1.Text = 'Exit' $Exit1.add_Click($Exit1_Click) # - # toolstripmenuitem1 + # Process1 # - $toolstripmenuitem1.BackColor = [System.Drawing.Color]::Honeydew - $toolstripmenuitem1.Name = 'toolstripmenuitem1' - $toolstripmenuitem1.Size = New-Object System.Drawing.Size(281, 30) - $toolstripmenuitem1.Text = 'Process ' - $toolstripmenuitem1.add_Click($toolstripmenuitem1_Click) + $Process1.BackColor = [System.Drawing.Color]::Honeydew + $Process1.Enabled = $False + $Process1.Name = 'Process1' + $Process1.Size = New-Object System.Drawing.Size(281, 30) + $Process1.Text = 'Process ' + $Process1.Visible = $False + $Process1.add_Click($Process1_Click) # # toolstripseparator8 # @@ -4706,6 +4811,50 @@ I6MTAsCbKptfUd36IRqy2ey+OaTR+In3oTDi1Hz/4ZIYQyLfVkjH6/TlgUOsRIke8NHi4++0/18x # # savefiledialog1 # + # + # OpenFileWith + # + $OpenFileWith.BackColor = [System.Drawing.Color]::Gainsboro + $OpenFileWith.ForeColor = [System.Drawing.Color]::Red + #region Binary Data + $Formatter_binaryFomatter = New-Object System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + $System_IO_MemoryStream = New-Object System.IO.MemoryStream (,[byte[]][System.Convert]::FromBase64String(' +AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD +dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0 +ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAArAIAAAKJUE5HDQoaCgAA +AA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAAEZ0FNQQAAsY8L/GEFAAAACXBIWXMAABYlAAAWJQFJ +UiTwAAACTklEQVQ4T5WSTUhUcRTFj2mWjcJEE4pSIVpNfqMuNLQWFVRDhc080QozB5NkwDYR9DW6 +CBRjoEUilBgKgYsiWokFbty4iCIhsSYZstQiF8aIhoOn8+ZNRB9iHfjx/tx77v/e9+7Dahq8ir29 +Bt731uDtw0sojoX/TcN+JPTUYGxx4jrDL0+w24NX/v3YGEuvrQEfvE/bQLJP1HHoBlicjGbDQHzM +srqe+LGpy4Mpzjao+IFoJ6cq2XEY08mAQ5Y4y7mKes+hdeR2fLS7nLQlmZO0cSQAltnRXgKsj1n/ +1P0mZASOI8ywuke6qFAU8ib5OZe3jmEhBdip2N+nCHjQ86LPoYLWaJE5QXqqecEVUc7n90DXNvTn +AImxkp+660VB50ksc6VZ5kbRxKMHHGyozdS5XlSS8/nsrMKy7GV+YJ1VGdO1gxgKPs6S8TK5VKSn +i4G2Uvbf2UeuHCIX94giBgfiWePEsEo2WJVSpxtHAtUaNXyGnKsgQ4nkbBbHBl0MjVTpvMOKfUjT +086AAWojbgNaq36QhJYyjM0NOnXBWXLSRgbjVKSOEZ/FzC4r9k6XhBycewSeysHrLUAKWl1o7G5Q +9/k67TuPHNd5XOZ5LzfbwK12czKvFTNzQTv5xsauOq0Y8KG+EMHIkLpOl6tDhkgV6Xrfiyx0JrE0 +X7mlFsU0/o/c5HYuPkujOxsTOJ2HmW+jJeRXz68sndeH7BD6E83zb/mF0XIaTnxERQaMaic+1eaC +/4MnG1/0/S+YS0gQdpEp8kShKFqDArEbQNp36wSQdSmzmr4AAAAASUVORK5CYIIL')) + #endregion + $OpenFileWith.Image = $Formatter_binaryFomatter.Deserialize($System_IO_MemoryStream) + $Formatter_binaryFomatter = $null + $System_IO_MemoryStream = $null + $OpenFileWith.Name = 'OpenFileWith' + $OpenFileWith.Size = New-Object System.Drawing.Size(281, 30) + $OpenFileWith.Text = 'Open File with' + $OpenFileWith.ToolTipText = 'Open the selected file with another tool ' + $OpenFileWith.add_Click($OpenFileWith_Click) + # + # CopyFullFilePath + # + $CopyFullFilePath.Name = 'CopyFullFilePath' + $CopyFullFilePath.Size = New-Object System.Drawing.Size(281, 30) + $CopyFullFilePath.Text = 'Copy Full File Path' + $CopyFullFilePath.add_Click($CopyFullFilePath_Click) + # + # toolstripseparator2 + # + $toolstripseparator2.Name = 'toolstripseparator2' + $toolstripseparator2.Size = New-Object System.Drawing.Size(278, 6) $contextmenustrip2.ResumeLayout() $contextmenustrip1.ResumeLayout() $menustrip1.ResumeLayout() @@ -4736,8 +4885,8 @@ Main ($CommandLine) # SIG # Begin signature block # MIIviAYJKoZIhvcNAQcCoIIveTCCL3UCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCnfUX41Qr1kUUq -# xAKFZ4JRyi/ioG3yduw/gkcdvEqp2qCCKI0wggQyMIIDGqADAgECAgEBMA0GCSqG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC2SysRMtebeJxf +# WPglXDljN5kbCWmMpRDIS/b+DLqhc6CCKI0wggQyMIIDGqADAgECAgEBMA0GCSqG # SIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNo # ZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1p # dGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx @@ -4957,35 +5106,35 @@ Main ($CommandLine) # AQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSsw # KQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgUjM2AhALYufv # MdbwtA/sWXrOPd+kMA0GCWCGSAFlAwQCAQUAoEwwGQYJKoZIhvcNAQkDMQwGCisG -# AQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIPujNFu5Cg7gqfAUbEo2+xH9WQjZ1vMB -# VLOAPeNe90ODMA0GCSqGSIb3DQEBAQUABIICAE4T9GLEHuBPzaz836ei6f6u2etX -# oRct0/vIX5Nzf2RRgv1+O30ydD9EA/PKko/0DfHUF8srjSy2HcETsaq9Y8sZTPu/ -# 1Z2CJlq+oARJKuRgsAiFpHbAw40OVWAOPRCVp3Q7K0i+CIojkSnO7hKOXuLvIfWe -# XYxRMUyMZEgo96+fdqFWxuNautGmastCyFihAkPRY51MaFXxFDSnRiYU26PvVMtH -# lEyhybm50VODd8AyqzxTDgkayyAG+vv6JOflW1211ojakLh2FY2TrF6t+8UgO2hv -# XCGJJKMyJmS0NiVFSzJul9i41lrmfY7HXSSMCR/w1VlHHGbTnXzpE4H3jSr+797h -# 6Y1zoWnuEtN6VKe4CrK+rZ7NEegpkzw/tjVvwMLDHrzxXw3K7VDJz3gI71sU+gnx -# AdO0RVYcPi3IVqz5uYMF8kMawQdTqoj1uwajGW9x9h9ijK9SuBnuPNJZKFUQiWjF -# 2rZfhlmGJUWUFHHMbZv6eJhkEs9muxigwFRxYKWDTFlYWYh3BGaqod2QSWGHwwbz -# 5Ga4XqZ3TJT4HZmhPpXFAmPMnINY9YYuQrPUnO7l58FqUWKQAnM7Q1dA/S6t1AzG -# zp3D/ul1xRPFdU93WaKFEkHPibsN0K9ZcT8cBjUYmHxGNA7gl+/zcBML4mqHO0Ac -# 8GMWEZLaZFD0Kq2OoYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNVAgEBMG8wWzEL +# AQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIH22TGgI5ySbDWORFln9JB/4jCPFq4dd +# fxg+0Q8Msi41MA0GCSqGSIb3DQEBAQUABIICADvss56CJRw7Ebq8hzPr5oueVQbC +# XlQWatR8TgZI+T6GadG2bfrWBF790SdiLWGmXbklSi22D7ZBRvJvvlkXy+1Vorq6 +# miWfH5qJO80VUqeADTcmMqAp66ClJXf+ts89xGVU3lDgYN11KEa3m3bhRaFvwbPZ +# eYbOhu9sCzflsDwJrA/CatkaTL4/gdpyFsJMl9T2bYEET97ckrs042nT3qY6LoKz +# TYUzibELi5FaJc40h3ZY8rHZ8OxLn+mTnjf2xJEtr8ahH1vffYIvJ6Lg64LjQOEM +# 8QeF3mE2U+Jiuh+cHXYiqX+ZnfdAWcQNUPTyIrufvwYc/WAeB8YISo6azMtsSwdY +# yoJ6knya08xerPjxGuAKXVBjGIUDEbN8/DoT/Chv26QeEvNvu0ZTImpjzdsFEBZi +# 6GWcDK6KQ3O+EGFDWCWbDPWHMRiGxdsIYIMbGAFuJ7CLXi242SqwLyJMgiRF4Iuf +# ZEAJmDPtKMkhfdcrr/jfSM+dYZaw5+sX6xjEwfW1SLOHySzcwpxP/lNsYM2GwtSP +# mXjdHBUeAZOg//1V4qnNqmbVCOrqORLqnTXN/qF02uVhzfJ+JY/3jOYCdxZtqrfK +# xpDwQEPEpYMWnIOJqY4alWrwPIsplcuBxGSrs6Hj7ZjSkxWSoqU6ucUb8o3w9rSv +# wPZ/zzzxKmSRk7p8oYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNVAgEBMG8wWzEL # MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMT # KEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0gRzQCEAFIkD3C # irynoRlNDBxXuCkwCwYJYIZIAWUDBAIBoIIBPTAYBgkqhkiG9w0BCQMxCwYJKoZI -# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMzAxMjMyMjQxMTNaMCsGCSqGSIb3DQEJ +# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMzAxMjQxODQwNDhaMCsGCSqGSIb3DQEJ # NDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqGSIb3DQEJBDEi -# BCC1bkYw2DvLZBvjplue2+aR2KkBK6FPMVBwpqfKUoHhlDCBpAYLKoZIhvcNAQkQ +# BCCgVrbO7JI8sJpoofZT+Fe+xffS55iEtriPgau2UPOSqzCBpAYLKoZIhvcNAQkQ # AgwxgZQwgZEwgY4wgYsEFDEDDhdqpFkuqyyLregymfy1WF3PMHMwX6RdMFsxCzAJ # BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH # bG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0AhABSJA9woq8 -# p6EZTQwcV7gpMA0GCSqGSIb3DQEBCwUABIIBgKtCIlCJljtu42d16rg5fXr5daH3 -# pammzbL2Sd6hV8HJ/5XhvQ/ZO1ODwXlXGGI1p3prt5J5uysbZcKfockhyGL6KHDc -# RbsDVvmbUESAJ/8RISvs2FIQIQEKtCkc4qT61X7iiblde4ruTr0Eh9FHZPCOzSHg -# w8KqTxRdVoAEopesMztuzHCCdPh/6lT2reWGjX2CYgM/99nMmZ+IbOQjiNFHDgJE -# 8ZfKjV3hpwnOGOkzf9eEi0A6JIkdZjaszy8EFOP615CJfa7mYEPjM+zm86kyiDnP -# Ssf+JJoPE5alrFfZG4ZWvsq46FlIZvWpbY8ABbe1gOpIpjZh3ZFJAzyQUVbQuX/f -# T6QwXK0eLgjI4Hionoh18IlmckIsX9CeFZXIMyxZlBtAKBoJ4NhkTo79BjZ7eZlk -# uREPUKWvpmOcchHhjh0EMnkznwzgrdOrkPxk9yF3k8eOFlHWDiQ8GXAuxNN6Hq8m -# CdECmKsCOS+zQz4zlrboWnvkt81ckqZh5FwVOA== +# p6EZTQwcV7gpMA0GCSqGSIb3DQEBCwUABIIBgAO9DqJFprPx68SzlTCYdIvX2cxQ +# bj+zPV2Ny2T3U0StN8dATqgom/0TmKy6PZ0JMeOm4SPuRjx8XW9ZQn94/g44Gc6J +# YRZBL6Ocdcuhhb4N69FeX4pa6AbKDt6jOxBDv/LpZGVvacU3GIKXGEaYzi1zRSo1 +# H9bBZpYmVP8ncEmqqk2CSqB0gN24sUDlJKOeNN23WHIYTzGpIz1gp3DbUQzR8PT7 +# i89NCRFp13uTMYE7Ff+T++hov6GVfr25pnTdP5vW+Eo4Dv8ZPBhG8yH9GUyvk//C +# Jj9gVcHUa7D+rhpf/PF52KljWWWnprZmKd9cMOsj3NZLqwjKdhS9kegIMZI0T7/T +# xJyDNU0Pl2xI1FP1AZgiVZnZ20iSwIvcYBQFMF8+6Az1zYC2z5P/LR4m0cid0RLB +# ZShOlH8K08u+lOInDn8saez1f+7CnnT+Cs44gB5NfmsE89ByFR/hNqzEujTyiOYH +# GCbWvgO94sMRFUDrEodlMi8UUdKz0mr6IZOSTQ== # SIG # End signature block