Skip to content

Instantly share code, notes, and snippets.

View santisq's full-sized avatar

Santiago Squarzon santisq

View GitHub Profile
static unsafe void ToTitleCase(string input)
{
if (input.Length == 0)
{
return;
}
fixed (char* chars = input)
{
bool startOrNotLetter = true;
@santisq
santisq / handles.cs
Last active January 31, 2025 21:17
some thing about handles
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime.InteropServices;
namespace HandleStuff
{
public class SystemHandle
{
private readonly SYSTEM_HANDLE _handle;
New-Module TestModule {
function Test-InvokeUsingCmdlet {
[CmdletBinding()]
param(
[Parameter(ValueFromPipeline)]
[psobject] $InputObject,
[Parameter(Mandatory, Position = 0)]
[scriptblock] $Scriptblock
)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Management.Automation;
using System.Management.Automation.Language;
using System.Text;
using System.Threading;
[Cmdlet(VerbsOther.Use, "Object")]
[Alias("use")]
using namespace System.Management.Automation
function Stop-PowerShell {
param(
[Parameter(Mandatory, ValueFromPipeline)]
[System.Diagnostics.Process] $Process,
[Parameter()]
[ValidateRange(1, [int]::MaxValue)]
[int] $TimeoutSeconds = 10)
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Management.Automation;
using Microsoft.PowerShell.Commands;
[EditorBrowsable(EditorBrowsableState.Never)]
public abstract class CmdletWithPathBase : PSCmdlet
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Management.Automation;
using System.Security;
using System.Text;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Timers;
public sealed class TitleChange : EventArgs
{
public DateTime TimeGenerated { get; } = DateTime.Now;
Add-Type @'
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Management.Automation;
using System.Runtime.InteropServices;
using Microsoft.PowerShell.Commands;
$ps = Split-Path $PSHOME
$pwsh = @(
Join-Path $ps '7-preview/pwsh.exe'
Join-Path $ps '7/pwsh.exe'
)
$script = {
class SizeConvert {
static [string[]] $Suffix = 'B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'