techsmith-sdk-patterns

'TechSmith sdk patterns for Snagit COM API and Camtasia automation.

5 Tools
techsmith-pack Plugin
saas packs Category

Allowed Tools

ReadWriteEditBash(powershell:*)Grep

Provided by Plugin

techsmith-pack

Claude Code skill pack for TechSmith (18 skills)

saas packs v1.0.0
View Plugin

Installation

This skill is included in the techsmith-pack plugin:

/plugin install techsmith-pack@claude-code-plugins-plus

Click to copy

Instructions

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

Pattern Use Case Benefit
Factory function Different capture types Consistent configuration
Batch rendering Multiple projects Automated pipeline
Timestamped names Avoid overwrites Unique filenames

Resources

Next Steps

Apply patterns in techsmith-core-workflow-a.

Ready to use techsmith-pack?