【问题标题】:Powershell scipt to open power point and play slide show用于打开 powerpoint 并播放幻灯片的 Powershell 脚本
【发布时间】:2012-11-30 18:27:49
【问题描述】:

谁能告诉我如何打开power point和播放幻灯片

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

$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 但不播放幻灯片!!!我也有这个问题,它有时会自动关闭电源点。 请帮我解决这个问题

【问题讨论】:

  • 有时使用$presentation,有时使用$presenatation;他们肯定应该是一致的吗?
  • 抱歉,我忽略了这一点。我已经改变了,但它仍然不起作用
  • 你可以通过命令行启动 PowerPoint 吗?如果是这样,您可以使用(类似) C:\PathTo\PowerPnt.EXE /s c:\PathTo\YourShow.PPTX (用适当的路径替换“PathTo”
  • 我不是 PowerShell 专家,但这对我来说也很错误:$presenatation.SlideShowSettings.Run.View。最后不应该有一个点,并且要启动节目,至少在 VBA 中,你会在演示对象上使用 .SlideShowSettings.Run

标签: powershell powerpoint


【解决方案1】:

我在各个站点上遇到了很多上述问题,最终发现这是最快的并且没有问题,即使 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"

【讨论】:

    【解决方案2】:

    所以我不是 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;
    

    Hacky,但它对我有用。希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      相关资源
      最近更新 更多