VisioApplication.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
<# .SYNOPSIS Starts the visio application (possibly hidden) and stores a reference to the application object .DESCRIPTION Starts the visio application (possibly hidden) and stores a reference to the application object .PARAMETER Hide Starts Visio without showing the user interface .INPUTS None. You cannot pipe objects to Add-Extension. .OUTPUTS None .EXAMPLE New-VisioApplication --Visio Pops up-- .EXAMPLE New-VisioApplication -Hide --Nothing seems to happen #> Function New-VisioApplication{ [CmdletBinding(SupportsShouldProcess=$True)] Param([switch]$Hide, [switch]$Passthru) if($PSCmdlet.ShouldProcess('Creating a new instance of Visio','')){ if ($Hide){ $script:Visio=New-Object -ComObject Visio.InvisibleApp } else { $script:Visio = New-Object -ComObject Visio.Application } if($Passthru){ $script:Visio } [System.Collections.ArrayList]$script:StencilSearchPath=@(join-path (join-path $script:Visio.Path 'Visio Content') $script:Visio.Language) } } <# .SYNOPSIS Ouptuts a reference to the Visio application object .DESCRIPTION Ouptuts a reference to the Visio application object .INPUTS None. You cannot pipe objects to Add-Extension. .OUTPUTS Visio.Application Visio.InvisibleApp .EXAMPLE $app=Get-VisioApplication #> Function Get-VisioApplication{ [CmdletBinding()] Param() if(!(Test-VisioApplication)){ New-VisioApplication } return $Visio } <# .SYNOPSIS Outputs $true if the stored Visio application object is live .DESCRIPTION Outputs $true if the stored Visio application object is live .INPUTS None. You cannot pipe objects to Add-Extension. .OUTPUTS Boolean .EXAMPLE If(Test-VisioApplication){ #do something with the application } #> Function Test-VisioApplication{ [CmdletBinding()] [OutputType([System.Boolean])] Param() $Script:Visio -and $Script:Visio.Documents } |