57f9d331-1fac-422a-a9da-7320f4a872cb
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
r7a23jfwrTzm3Ux63ungpNLS0vwrb+ljgbSn4+uF+HXJFzj5c07nr5+Xm077Fk7XXd6bb6bVd9s0
Ljfc9uvHSOf7eYyvr/9mWncraWzSVm4qRX1jc/z48W+NzfXlrnc+r81T+mpWuj4735EVvdPH9saU
rCymwli270Tvllrfba/N39fT7Dt/0/X3yvj0jU0qRWls0pH/aev3Vsbm+svzgxSzy64vh/d70tik
PUdpGZHGJn11NB0zcfMy4sax6bv8m9dOfj6NzbVxu+G21y7rHc+b7iNS8Ny1ApCS3mzpILm0az8d
+JO27vq73f2S37f5uZO5Y2OTbZWlr3b1uZCt/Pv/wy/3T7xuvjvGRuT7y10tACIiInJvRgEQEREp
YBQAERGRAkYBEBERKWAUABERkQLmjheAdBRv+kMfnZ3pVERERL6fdP7Gb9bc0QKQ/hjH0WPHo2JP
ZeytrBYREZHvKRW7K+PY8ZqsBPT/J/TvaAFIjaN8154409icPWBqHiIiIvJ95HRjU+yqqMz3BPS3
zr6zewCylrFnb1Wk/8cOAHx/es6fz/cEfNfHAHelAHR391x7eADg+9DV3a0AAEDRKAAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
kAIAAAWkAABAASkAAFBACgAAFJACAAAFpAAAQAEpAABQQAoAABSQAgAABaQAAEABKQAAUEAKAAAU
0PdSAC5dunzt4QGA78PFSxd/dwWgs7MjKnZXRuW+/XHo8FERERH5nrK3cn+2Ub4vWzd39rvOvqMF
IF3e3NwSdfUNIiIi8j2nuaXlO9fZd7QApKTr2tvbRURE5HvOb1pf3/ECICIiIvd+FAAREZECRgEQ
EREpYBQAERGRAkYBEBERKWAUABERkQJGARARESlgFAAREZECRgEQEREpYBQAERGRAkYBEBERuSnp
P+ilf6Jzv6e/eeuLAiAiInJdWltbo6amJo4ePRrHjh27L5Oee5qHNC/9zWOKAiAiInIt6R/onD59
OtavXx+7d++OioqK+zJ79uzJ5+HUqVP5PPU7rwqAiIhIb9LKMq00d+7cmZ/W19ffl+mbh5MnTyoA
IiIivy19BWDHjh35ivTEiRP3ZdJzT/OgAIiIiNxC7k4BqInauvpobGqK06dPRWNjY5w6mU27tj7O
NJ6J2prjUX/ydDQ3N0ZdbX/3v/0oACIiIreRu1EAatOKvuFoTJs4Mp57cXA8PXRsbNlbE3UHNsbU
dz6K4y09cWjbknj60Rdi1fYDveWgn+ncThQAERGR28idLwC12Zb/6Zj9xsB4cNAbUX3kRKybPyke
fm5obNwwPwb98vnYWbElnv33B2PiZ6uirq4+Kwy1/Uzn9qIAiIiI3EbueAGoa4iWE7vi1z97Opbu
PhEtjWei61xtjP31oPhw2rQY9E8/if/5o/8eQyatiEsXOuNETU3/07nNKAAiIiK3kTteAGqzAlC/
Nwb84omYv+1odLSejZ7W4/HqU8/H1Fkz4vGf/J/4YMoH8bN/eTTKDp2K5tMNUdPfdG4zCoCIiMht
5I4XgCxnmhpj6Sej4oEnBseaTdtj9vuj4smhr8fOrQviuZ8/HbXdEUveHRz/9+cDouJIfTTU1fU7
nduJAiAiInIbudMFIP01vvQNgJ7ujti0bHa8/ubb8frHc6KuqSvOnayOLz9fEAdrG6P5VE1Mz4rB
og2749TJhn6ndTtRAERERG4jd7oANDQ0xL59lTF06LAYNea1mDB+fEwYNzZeHfZKDB85Ok7UZbep
r40TtXXR3NIapxvq8tLQ37RuJwqAiIjIbeROF4B0RH/6u/zr1q37VtKf6k1/t/9OHPV/cxQAERGR
20hfAbiTfwo47QVIf/zn5pw5c6bf29+J9M2DAiAiInILSSvLtGJOW+fl5eX5SvR+THruaR7SPzZS
AERERG4xfVv/aev9fk2ah/7mrS8KgIiIyE1JW82/D+lv3vqiAIiIiBQwCoCIiEgBowCIiIgUMAqA
iIhIAaMAiIiIFDD/oQLQ0d7We0cRERG5L9PZfi46zt9iARg5auza7ojo6LmctwYRERG5P9OZpSdb
p5dt3/PbC8CzAwZs2Va+L9Zs2J43BhEREbl/U7ZtT8z+fN5vLwAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfH/+4A/+P3SgoIPuRTdsAAAAAElFTkSuQmCC
/// Example using ExtractIconEx
///
public class ExtractIcon
{
/* CONSTRUCTORS */
static ExtractIcon(){
}
// HIDE INSTANCE CONSTRUCTOR
private ExtractIcon(){
}
[DllImport("Shell32", CharSet=CharSet.Auto)]
private static extern int ExtractIconEx (
string lpszFile,
int nIconIndex,
IntPtr[] phIconLarge,
IntPtr[] phIconSmall,
int nIcons);
[DllImport("user32.dll", EntryPoint="DestroyIcon", SetLastError=true)]
private static extern int DestroyIcon(IntPtr hIcon);
public static Icon ExtractIconFromFile(string file, int index, bool large)
{
int readIconCount = 0;
IntPtr[] hDummy = new IntPtr[1] {IntPtr.Zero};
IntPtr[] hIconEx = new IntPtr[1] {IntPtr.Zero};
try
{
if(large)
readIconCount = ExtractIconEx(file, index, hIconEx, hDummy, 1);
else
readIconCount = ExtractIconEx(file, index, hDummy, hIconEx, 1);
if(readIconCount > 0 && hIconEx[0] != IntPtr.Zero)
{
// GET FIRST EXTRACTED ICON
Icon extractedIcon = (Icon)Icon.FromHandle(hIconEx[0]).Clone();
return extractedIcon;
}
else // NO ICONS READ
return null;
}
catch(Exception ex)
{
/* EXTRACT ICON ERROR */
// BUBBLE UP
throw new ApplicationException("Could not extract icon", ex);
}
finally
{
// RELEASE RESOURCES
foreach(IntPtr ptr in hIconEx)
if(ptr != IntPtr.Zero)
DestroyIcon(ptr);
foreach(IntPtr ptr in hDummy)
if(ptr != IntPtr.Zero)
DestroyIcon(ptr);
}
}
}
}
'@
Add-Type $code -ReferencedAssemblies System.Drawing
$form1_Load={
$listview1.View = 'SmallIcon'
# http://www.win7dll.info/
# https://diymediahome.org/windows-icons-reference-list-with-details-locations-images/
$fileicon = [Win32Utils.ExtractIcon]::ExtractIconFromFile("$env:windir\System32\imageres.dll",2,$true)
$smallImageList.Images.Add('File', $fileicon)
$largeImageList.Images.Add('Folder', $fileicon)
$foldericon = [Win32Utils.ExtractIcon]::ExtractIconFromFile("$env:windir\System32\imageres.dll", 3, $true)
$smallImageList.Images.Add('Folder', $foldericon)
$largeImageList.Images.Add('Folder', $foldericon)
Get-ChildItem 'c:\windows' |
ForEach-Object{
$item = New-Object System.Windows.Forms.ListViewItem
$item.Text = $_.Name
$item.Name = 'FileName' #$_.Name
$item.SubItems.Add($_.Length.ToString())
$item.SubItems.Add($_.Fullname)
$item.ImageKey = if ($_.PsIsContainer) {'Folder' } else {'File'}
$listview1.Items.Add($item)
}
$listview1.View = 'Tile'
}
$radiobuttonSmallIcons_CheckedChanged={
if($radiobuttonSmallIcons.Checked){
$listview1.View = 'SmallIcon'
}
}
$radiobuttonLargeIcons_CheckedChanged={
if ($radiobuttonLargeIcons.Checked){
$listview1.View = 'LargeIcon'
}
}
$radiobuttonList_CheckedChanged={
if ($radiobuttonList.Checked){
$listview1.View = 'List'
}
}
$radiobuttonDetails_CheckedChanged={
if ($radiobuttonDetails.Checked){
$listview1.View = 'Details'
}
}
$radiobuttonTile_CheckedChanged={
$listview1.View = 'Tile'
}
]]>
105
111
0
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089