Description

This is pointless but fun script that types whatever content you provide onto the screen.  It also calls up some wav files to make noise and does mistakes too.

Source ZIP file is at http://cid-952f95cb5de3f349.office.live.com/self.aspx/Powershell/Pointlesstyping.zip

Folder should be C:\Pointlesstyping

Script

PowerShell
Edit|Remove
function global:start-typewriter () { 
param([array]$paragraph<# 
 
.SYNOPSIS  
This is completely silly function that will take String 
Content (Whether a single line or an array of Strings 
and "type" it on the screen including the  
sound of the keystrokes, the odd booboo, 
Carriage Return and Ding. 
 
.DESCRIPTION  
Invoking a START-TYPEWRITER -paragraph 'String' or 
START-TYPEWRITER -paragraph (GET-CONTENT textfile) is all 
that is required to drive your co-workers and your 
wife nuts 
 
.EXAMPLE  
START-TYPEWRITER -paragraph 'Doo doo doo' 
 
Have 'Doo doo doo' typed on your screen 
 
.EXAMPLE  
START-TYPEWRITER -paragraph (GET-CONTENT C:\BigFooFile.txt) 
 
Drive the neighbourhood, the dog and most of Upper Canada 
nuts as you type (Clacking and all) this onto the screen 
 
.NOTES  
Presently all of this must exist in a folder called 
C:\Pointlesstyping - I do not provide the Bufferin or 
a free sound card to make it work.   
 
Yes you can muck about with it all you like 
 
Yes you can email me at sean@powershell.ca 
Twitter on @energizedtech 
 
.LINK  
http://www.energizedtech.com 
 
#> 
 
# Store away a list of all those "Clacking" wave files 
# for later use 
 
$list=Get-childitem c:\pointlesstyping\clack?.wav 
 
    # Flip for the odds, 25 outta 50 but you can change them 
 
    function flipcoin { 
        param($odds=25,$base=50) 
     
        IF ((GET-RANDOM $BASE-gt $odds) { return $TRUE } 
    } 
 
    # If you give this mysterious function a Wav File 
    # it will play it 
    # 
    function playsound { 
        param($Location) 
     
        $sound=new-object system.media.soundplayer 
        $sound.SoundLocation=($Location) 
        $sound.playsync() 
    } 
 
    # If you give THIS function a list of Wave files 
    # in a directory.  It will play a Random one 
    # 
    function playtypenoise { 
        param($LIST) 
        playsound (GET-RANDOM $LIST) 
    } 
 
    # This one says it all 
    # Somebody did an "oops" but we're just going to 
    # mimic it 
    # 
    # Don't you dare change the "doh.wav" to a curse word! 
    # 
    function oops { 
         
        # 
        # Make a typing noise 
        # 
            playtypenoise $LIST 
     
            # Pick two "typo" letters 
            # 
            $typo1=[char](97+(GET-RANDOM 26)) 
            $typo2=[char](97+(GET-RANDOM 26)) 
            # 
            # Show me your mistake! 
            # 
            write-host $typo1$typo2 -nonewline 
            # 
            # Mutter something about your stupidity ;) 
            # 
            playsound 'C:\Pointlesstyping\doh.wav' 
            # 
            # Ok, I think maybe we should fix that now 
            # 
            start-sleep -milliseconds (GET-RANDOM 100) 
            # 
            # Backspace twice, type over it with a space 
            # Backspace twice again 
            # 
            $undo="`b`b  `b`b" 
             
            write-host $undo -nonewline 
            # 
            # Make another impressive typing noise 
            # 
            $playtypenoise 
            start-sleep -milliseconds (GET-RANDOM 100) 
         
    } 
 
# Take each line of Text in the paragraph and Butcher it :) 
# 
foreach ($line in $paragraph) { 
 
    # 
    # Yawn, how long is it? Are we there yet? 
    # 
    $length=($line.Length) 
 
    # 
    # Go to each character 
    # 
    foreach ($x in 0..$length) {  
             
        $letter=$line[$x] 
         
        # Show the letter max 
        # 
        write-host $letter -NoNewline 
     
        # Occasionally make a "typing" noise 
        # 
        if (flipcoin 19) { playtypenoise $LIST } 
 
        # Occasionally (less) make a booboo 
        # 
        if (flipcoin 47) { oops } 
        } 
     
# Make a cool "carriage Return sound" at the end  
# of a line 
# 
playsound 'C:\Pointlesstyping\CarriageReturn.wav' 
Write-host '' 
} 
# Go "Ding" when done 
# 
playsound 'C:\Pointlesstyping\bell.wav' 
Write-host '' 
} 
 
# So who here things the Energized Tech has too much time on his hands? :)