2012-11-30 26 views
1

嗨任何一個可以告訴我怎麼打開電源點和播放幻燈片Powershell的素文字,打開電源點和播放幻燈片

我有以下的代碼,但它不是工作

$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() 

此代碼打開功率點,但不播放幻燈片!我也有這個問題,它有時會自動關閉功率點。 請幫我出這個

+0

有時候你使用$演示,有時$ presenatation;他們當然應該一致? –

+0

抱歉,我忽略了這一點。我改變了,但它仍然無效 – user1162040

+0

你可以通過命令行啓動PowerPoint嗎?如果是這樣,你可以使用(類似於)C:\ PathTo \ PowerPnt.EXE /sc:\PathTo\YourShow.PPTX(替換爲「PathTo」的適當路徑 –

回答

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; 

哈克,但它工作我。希望這可以幫助。

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」