2012-11-30 3 views
1

헤이 중 하나는 슬라이드 쇼를 나는 다음과 같은 코드가PowerShell은 파워 포인트를 열고

을 파워 포인트를 열고 재생하는 방법을 말해 줄 수 슬라이드 쇼를 재생할 scipt하지만

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

이 코드를 작동 밤은 파워 포인트를 열지 만 슬라이드 쇼를 재생할 수 없습니다 !!! 또한이 문제로 인해 자동으로 전원 지점을 닫습니다. 그래서 PowerShell을의 아주 큰 팬이 아니에요,하지만 난 모니터에서 프레젠테이션을 회전이 스크립트를 사용이

+0

때때로 $ presenatation; 틀림없이 일관성을 유지해야합니까? –

+0

SORRY 나는 그것을 간과했다. 나는 그것을 변경했으나 여전히 작동하지 않는다. – user1162040

+0

커맨드 라인을 통해 파워 포인트를 시작할 수 있습니까? 그렇다면 C : \ PathTo \ PowerPnt.EXE /sc:\PathTo\YourShow.PPTX와 같은 것을 사용할 수 있습니다 (PathTo에 해당하는 경로로 대체하십시오). –

답변

0

좀 도와주십시오 우리는이 :

$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

나는 여러 사이트에서 위의 많은 부분에 문제가있어 결국 가장 빠른 것으로 판단하고 파워 포인트가 계속 실행할 수있는 시스템을 실행하지 않더라도 아무런 문제가 발생하지 않습니다. 나는 기본적으로 접견자가 어떤 복잡한 사항없이 입력 내용을 입력 할 수있는 스크립트를 실행하기를 원했습니다. 입력 상자 만 입력하면 프레젠테이션 화면에서 또 다른 파워 쉘을 실행하게됩니다.

여기는 안내 원 입력 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은 초보자 및 실행중인 모든 미세 같은 현재를 단순화 할 수 있습니다.

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

시작 프로세스 Powerpnt.exe가의 -ArgumentList "$의 powerptx"때때로 당신은 $ 프리젠 테이션을 사용

관련 문제