Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName Office
Add-Type -AssemblyName Microsoft.Office.Interop.Powerpoint
#Getting Error - Add-Type -AssemblyName Office Microsoft.Office.Interop.Powerpoint.Slide.SlideShowTransition.Hidden
Function RunSlide {
$pptx = "h:\Test.ppt"
$osld = "Slide"
[bool] $sldState = "Slide.SlideShowTransition.Hidden"
$state = "False"
$hiddenCount = 0
$cc = 0
$application = New-Object -ComObject powerpoint.application
$presentation = $application.Presentations.open($pptx)
$count = 1
Start-Sleep -Seconds 3
ForEach ($osld In $Presentation.Slides)
{
$cc = $cc + 1
If ($sldState -eq "False") {$hiddenCount = $hiddenCount + 1; Write-Host "Slide State $sldState"}
Write-Host "Hidden Count is $hiddenCount"
$endCount = $presentation.Slides.Count
Write-Host "Total slide count is $endCount"
#Present Slide Show
[System.Windows.Forms.SendKeys]::SendWait("{F5}")
do
{
Start-Sleep -Seconds 6
[System.Windows.Forms.SendKeys]::SendWait("{RIGHT}")
$count = $count + 1
Write-Host "Slide Count is $count"
}
while ($count -le $endCount)
Write-Host "POWER POINT RESTARTING"
Stop-Process -processname POWERPNT
}
$b -eq 1
do {
$d = Get-Date
Write-Host "Slide ran as at $d"
CheckSlide
RunSlide
Start-Sleep -Seconds 3
}
While ($b = 1)
Так что я ограничен в использовании PowerShell (новая работа политики) и, таким образом, я адаптировать наши существующие Wscript и VBScript файлов в Powershell.Powershell - Подсчет Hidden Powerpoint Слайды
У нас есть информационная стена, которая использует гиперссылку на презентацию PowerPoint. Он регулярно обновляется, поэтому он должен открываться, присутствовать, затем закрываться и снова открываться.
До сих пор мне удалось это сделать. Но из-за количества скрытых слайдов и характера моего кода скрипт будет работать намного дольше, чем он есть (иногда до 40 слайдов).
Мой скрипт проверяет, работает ли процесс POWERPOINT, а затем он продолжает работу и открывает файл. Затем он выполнит подсчет слайдов и запустит презентацию для длины презентации (добавляет счетчик до достижения полного).
Закончив работу, он остановит процесс, а цикл «До» в нижней части откроет файл снова. Повторное полоскание.
Проблема заключается в том, что общее число слайдов также учитывает скрытые слайды.
То, что я пытаюсь достичь с помощью цикла ForEach, - это сценарий для просмотра каждого состояния слайда, если он скрыт, он добавляет к счету. Этот счет вычитается из общего числа, а цикл Do использует этот счет, чтобы представить правильное количество показанных слайдов. Прямо сейчас цикл ForEach просто сообщает счет, а не вычитает (потому что я еще не могу его подсчитать, чтобы подсчитать скрытую сумму)
Я понимаю, что могут быть более простые методы для презентации, но перевод с Vb на PS сделал мой голова в, это просто не работает! Получение определенного вида туннеля и ограниченный доступ к Интернету, который у нас есть, также препятствуют прогрессу. Если кто-то может взглянуть и рассказать, что лишнее, и что я, возможно, пропустил, что было бы очень признательно. Спасибо,
Моя первая догадка это всегда будет оценивать до $ True: [BOOL] $ sldState = «Slide.SlideShowTransition .Hidden " –