Claude-code-plugins-plus-skills techsmith-sdk-patterns

install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/techsmith-pack/skills/techsmith-sdk-patterns" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-skills-techsmith-sdk-patterns && rm -rf "$T"
manifest: plugins/saas-packs/techsmith-pack/skills/techsmith-sdk-patterns/SKILL.md
source content

TechSmith Sdk Patterns

Overview

Production patterns for TechSmith COM API: capture factories, output configuration, and batch processing.

Instructions

Step 1: Capture Factory Pattern

function New-SnagitCapture {
    param(
        [ValidateSet('Desktop', 'Window', 'Region')]
        [string]$InputType = 'Window',
        [ValidateSet('PNG', 'JPEG', 'BMP', 'GIF')]
        [string]$Format = 'PNG',
        [string]$OutputDir = "C:\Screenshots",
        [bool]$Preview = $false
    )

    $inputMap = @{ Desktop = 0; Window = 4; Region = 2 }
    $formatMap = @{ PNG = 3; JPEG = 4; BMP = 0; GIF = 2 }

    $capture = New-Object -ComObject Snagit.ImageCapture
    $capture.Input = $inputMap[$InputType]
    $capture.Output = 2  # File
    $capture.OutputImageFile.FileType = $formatMap[$Format]
    $capture.OutputImageFile.Directory = $OutputDir
    $capture.OutputImageFile.Filename = "capture_$(Get-Date -Format 'yyyyMMdd_HHmmss')"
    $capture.EnablePreview = $Preview

    return $capture
}

# Usage
$cap = New-SnagitCapture -InputType Window -Format PNG
$cap.Capture()

Step 2: Batch Camtasia Rendering

function Invoke-CamtasiaBatchRender {
    param(
        [string[]]$ProjectFiles,
        [string]$OutputDir,
        [string]$Preset = "MP4 - Smart Player (up to 1080p)"
    )

    $producer = "C:\Program Files\TechSmith\Camtasia 2025\CamtasiaProducer.exe"
    $results = @()

    foreach ($project in $ProjectFiles) {
        $name = [System.IO.Path]::GetFileNameWithoutExtension($project)
        $output = Join-Path $OutputDir "$name.mp4"

        $proc = Start-Process -FilePath $producer -ArgumentList @(
            "/i", "`"$project`"",
            "/o", "`"$output`"",
            "/preset", "`"$Preset`""
        ) -Wait -PassThru

        $results += @{ File = $name; ExitCode = $proc.ExitCode }
    }
    return $results
}

Error Handling

PatternUse CaseBenefit
Factory functionDifferent capture typesConsistent configuration
Batch renderingMultiple projectsAutomated pipeline
Timestamped namesAvoid overwritesUnique filenames

Resources

Next Steps

Apply patterns in

techsmith-core-workflow-a
.