Skip to content

Instantly share code, notes, and snippets.

View scriptingstudio's full-sized avatar
👍
Awake and ready

Matthew Gray scriptingstudio

👍
Awake and ready
  • Interstellar Systems
  • Hiranyaloka
View GitHub Profile
@scriptingstudio
scriptingstudio / ArtCraftStat.ps1
Last active October 25, 2026 08:15
ArtCraft Application Development Status demo (https://getartcraft.com/apps)
# Known issues: low GitHub API rate limit (60 requests / hour)
[CmdletBinding()]
param (
[parameter(Position=0)]
[string[]] $name,
[switch] $download, # experimental
[switch] $portable, # download option (Windows only)
#[ValidateSet('windows','linux','mac','warm','larm')]
#[string] $platform = 'windows', # experimental; windows,linux,mac...; download option
#[switch] $force, # download option
@scriptingstudio
scriptingstudio / New-Culture.ps1
Last active October 17, 2026 10:42
PowerShell culture selector
function New-Culture ([string]$name, [int]$lcid, [switch]$list) {
if ($list) {
return [cultureinfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures)
}
if (-not $name -and $lcid -lt 1) {return Get-Culture}
if (-not $name) {$name = 'zzzzzzzzz'}
[cultureinfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) |
Where-Object {$_.name -eq $name -or $lcid -eq $_.lcid}
} # END New-Culture
@scriptingstudio
scriptingstudio / icoreader.py
Last active August 16, 2026 20:18
ICO reader in Python demo
import struct
import ctypes
import re
user32 = ctypes.WinDLL(r'C:\Windows\System32\user32.dll')
icofile = r'<filepath_to_your_icofile>' # set your file name!!!
print(icofile)
with open(icofile, 'rb') as f:
data = f.read()
@scriptingstudio
scriptingstudio / icoreader.ps1
Last active August 8, 2026 12:53
ICO Reader with export capability demo
<#
.SYNOPSIS
ICO file reader.
.DESCRIPTION
An AIO function to read and export icons stored within .ICO files. Read-Ico can export high-quality icons of all sizes, and all color formats to a number of formats, including ico, png, jpg, and gif.
Key features:
- Multisize high-quality ICO
- Ability to create a separate ICO for each size at once
- ICO integrity check
- Ability interactively select image file
@scriptingstudio
scriptingstudio / icoconverter-win.ps1
Last active August 3, 2026 06:32
ICO to PNG converter demo for Windows PowerShell
function Convert-IcoToPng ([string]$icofile) {
# Runtime validation
if ($PSVersionTable.PSEdition -eq 'Core') {return}
if (-not $icofile -or -not (Test-Path $icofile)) {return}
# ICO validation
$signature = Get-Content -Path $icofile -Encoding Byte -TotalCount 6 -ErrorAction 0
if (([System.BitConverter]::ToInt32(($signature[0..3]),0)) -ne 0x10000) {return}
if (([System.BitConverter]::ToInt16(($signature[4,5]),0)) -gt 1) {return} # single-size
Add-Type -AssemblyName System.Runtime.WindowsRuntime
@scriptingstudio
scriptingstudio / percentbar.ps1
Last active August 1, 2026 06:57
Colorful percent bar demo
function New-PercentBar {
[cmdletbinding()]
param (
[parameter(ValueFromPipeline)]
[alias('inputobject')][decimal[]] $value,
[alias('range')][decimal] $scale,
[int] $barlength,
[consolecolor] $color,
[switch] $hint
)
@scriptingstudio
scriptingstudio / Show-Progress.ps1
Last active July 27, 2026 15:28
Yet another PowerShell inline progress bar
function Show-Progress {
param (
[scriptblock] $scriptblock,
[int] $width,
[consolecolor] $color,
[string] $type, # growth | fill | bounce | tide
[switch] $passthru
)
if (-not $scriptblock) {return}
if ($width -lt 1) {$width = 10}
function prompt {
function Get-LastCmdTime {
$diffPromptTime = $null
$lastCmd = Get-History -Count 1
if ($lastCmd -ne $null) {
$diff = $lastCmd.EndExecutionTime - $lastCmd.StartExecutionTime
$msfractional = $diff.TotalMilliseconds - [Math]::Truncate($diff.TotalMilliseconds)
$ms = $msfractional + $diff.Milliseconds
if ($diff.Hours) {'{0}h:{1}m:{2}s:{3:N2}ms' -f $diff.Hours,$diff.Minutes,$diff.Seconds,$ms}
elseif ($diff.Minutes) {'{0}m:{1}s:{2:N2}ms' -f $diff.Minutes,$diff.Seconds,$ms}
@scriptingstudio
scriptingstudio / import-icon.ps1
Last active July 22, 2026 18:19
PowerShell 7.6+ demo to extract an icon with all native and custom sizes
# Windows Powershell doesn't have [System.Drawing.Icon]::ExtractIcon method
# Neither ExtractIcon* functions from user32.dll have a parameter associated with size
Add-Type -AssemblyName System.Drawing
$Path = 'C:\windows\system32\WindowsPowerShell\v1.0\PowerShell.exe'
function import-icon ([string]$file, [int]$index=0, [int[]]$sizes) {
#if ([version]'7.6' -gt $PSVersionTable.PSVersion) {return}
if (-not $file) {return} # -or -not (Test-Path $file -ErrorAction 0)
if ($sizes.count) { # normalize sizes
$sizes = @($sizes | Where-Object {$_ -gt 7 -and $_ -lt 257} | Sort-Object -Unique)
@scriptingstudio
scriptingstudio / iconhelper.cs
Last active September 7, 2026 12:36
Yet another icon extractor from DLL,EXE,ICO for C#, PowerShell, and Python
/*
SYNOPSIS : Icon Reader for C#
DESCRIPTION : A utility class that extracts the list of all icons handles (all sizes, all color counts) for a binary file like DLL, EXE, or ICO
UTILITIES : GetTotal, ImportIcons, ExportIcons, Dispose
FEATURES : Export: by size and index, multisize icons, split icon groups by size
VERSION : 4.0
LASTUPDATE : 2026-Sep-5
LINK : https://en.wikipedia.org/wiki/ICO_(file_format)
NOTES : Only builtin sizes are exported; GIF,BMP,JPEG always have the background in black
BACKLOG :