4

嘿,谁能告诉我如何打开电源点和播放幻灯片

我有以下代码,但它不起作用

$ppAdvanceOnTime = 2
 $ppShowTypeKiosk = 3
 $ppSlideShowDone = 5

Add-type -AssemblyName office
$Application = New-Object -ComObject powerpoint.application
$application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$path = "C:\Users\asuribha\Desktop\Web.pptx"



 $presentation = $application.Presentations.open($path)

$presentation.SlideShowSettings.AdvanceMode = $ppAdvanceOnTime 
$presentation.SlideShowSettings.ShowType =  $ppShowTypeKiosk 

$presentation.SlideShowSettings.StartingSlide = 1
$presentation.SlideShowSettings.EndingSlide = $presentation.Slides.Count

Do
 {
    $presenatation.SlideShowSettings.Run.View.
    if (Err<>0)
    {
        Exit Do
    }

}       

 until ($presenatation.SlideShowSettings.Run.View.State = $ppSlideShowDone)






$application.quit()

[gc]::collect()
[gc]::WaitForPendingFinalizers()

此代码打开 power point 但不播放幻灯片!我也有这个问题,它有时会自动关闭电源点。这个你能帮我吗

4

2 回答 2

3

我在各个站点上遇到了很多上述问题,最终发现这是最快的并且没有问题,即使 powerpoint 没有运行它仍然能够继续运行的机器。我基本上想运行一个脚本,接待员可以在没有任何复杂性的情况下输入详细信息,只需一个输入框,然后在完成后它将在演示屏幕上运行另一个 powershell。

这是接待员输入 powershell 输入。

Add-Type -AssemblyName Microsoft.VisualBasic
$PPTFile = [Microsoft.VisualBasic.Interaction]::InputBox('Enter FileName', 'Powerpoint File', "$env")
$pptx = "d:\Presentations"+($pptfile)+".pptx"
$pptx | Out-File "\\(machine name)\Scripts\Powerpoint.txt"

我以后可能可以通过远程运行 powershell 来简化它,但目前作为一个 powershell 新手,我在另一端运行另一个脚本并且一切运行良好。

Stop-Process -name "POWERPNT"
$Power = Get-Content "d:\Scripts\Powerpoint.txt"
write-output $Power
$powerptx = "/s "+($Power)

启动进程 powerpnt.exe -ArgumentList "$powerptx"

于 2016-12-15T19:54:56.920 回答
0

所以我不是 powershell 的忠实粉丝,但我使用这个脚本在我们拥有的显示器上旋转演示文稿:

$ppt = "c:\presentation.pptx"
$new_file = "c:\new.pptx"

function runloop {       
    $running = get-process POWERPNT
    $killed = $false
    if (Test-Path $new_file) {
          Write-Host "Killing"
          kill -name POWERPNT          
          Start-Sleep -s 2
          Move-Item $new_file $ppt -force
          $killed = $true
    }    
    if (!$running -or $killed) {
          Write-Host "Not running"
          $app = New-Object -ComObject powerpoint.application
          $pres = $app.Presentations.open($ppt)
          $app.visible = "msoTrue"
          $pres.SlideShowSettings.Run()                         
          $pres.visible = "msoTrue"
    }    
    Write-Host "Done"
}

runloop;

哈基,但它对我有用。希望这可以帮助。

于 2013-10-22T01:47:45.677 回答