Tjenare, har påbörjat ett lite script för att starta en powerpoint presentation. och när det sker förändringar så skall den byta presentationen (har fått en del hjälp av Wall). Det jag nu vill få till i detta är att den loopar, samt sätter en time på 10 sekunder för varje slide. Någon som har lite feedback? Bifogar scriptet. Detta för att senare kunna lägga ett script på en filserver, som exempelvis receptionisten kan uppdatera, och detta skjuts ut på en tv eller projektor för att exempelvis vissa koncerninformation.
$checkFile = "c:\test.pptx"
$showFile = "c:\slideshow.pps"
$checkedFileInfo = "c:\filechange.txt"
$checkedFileTime = ((Get-Item $checkFile).LastWriteTime)
$checkedFileTime = Get-Date $checkedFileTime -Format "yyyy-MM-dd HH:mm:ss"
if (!(Test-Path $checkedFileInfo)) {
$checkedFileTime | Out-File $checkedFileInfo
}
if (Test-Path $checkedFileInfo) {
$changedInfo = Get-Content $checkedFileInfo
foreach ($item in $changedInfo) {
if ($item -eq $checkedFileTime) {
Write-Host "Ingen ändring"
}
else {
Write-Host "Ändrad"
$checkedFileTime = ((Get-Item $checkFile).LastWriteTime)
$checkedFileTime = Get-Date $checkedFileTime -Format "yyyy-MM-dd HH:mm:ss"
$checkedFileTime | Out-File $checkedFileInfo
# Stoppar PowerPoint
Stop-Process -processname "POWERPNT"
Sleep 1
# Tar bort filen som visas
Remove-Item $showFile
# Döper om filen som sparas ner på sharet till filen som visas
Copy-Item $checkFile $showFile
# Startar PowerPoint igen med filen som visas
Start-Process $showFile
}
}
}
2 svar i denna tråden
#1
Skriven 10 July 2012 - 09:13
#2
Skriven 10 July 2012 - 13:01
Om du bara startar powerpointfilen så har du ju inte längre något "grepp" om den. Om du istället startar powerpoint som objekt och laddar in filen så kan du härja på med alla möjliga parametrar, exempel
Jag har bara testat lite så jag lämnar inga som hellst garantier för att det funkar om det nu ens skulle råka visa sig fungera.
Det finns en hel del info om inställningar för slideshow här:
http://msdn.microsof...y/ff744592.aspx
Set-Variable ppShowTypeKiosk -option Constant -value 3
Set-Variable ppSlideShowAdvanceTime -option Constant -value 5
$checkFile = "c:\test.pptx"
$showFile = "c:\slideshow.pps"
$checkedFileInfo = "c:\filechange.txt"
$checkedFileTime = ((Get-Item $checkFile).LastWriteTime)
$checkedFileTime = Get-Date $checkedFileTime -Format "yyyy-MM-dd HH:mm:ss"
if (!(Test-Path $checkedFileInfo)) {
$checkedFileTime | Out-File $checkedFileInfo
}
if (Test-Path $checkedFileInfo) {
$changedInfo = Get-Content $checkedFileInfo
foreach ($item in $changedInfo) {
if ($item -eq $checkedFileTime) {
Write-Host "Ingen ändring"
} else {
Write-Host "Ändrad"
$checkedFileTime = ((Get-Item $checkFile).LastWriteTime)
$checkedFileTime = Get-Date $checkedFileTime -Format "yyyy-MM-dd HH:mm:ss"
$checkedFileTime | Out-File $checkedFileInfo
# Stoppar PowerPoint
Stop-Process -processname "POWERPNT"
Sleep 1
# Tar bort filen som visas
Remove-Item $showFile
# Döper om filen som sparas ner på sharet till filen som visas
Copy-Item $checkFile $showFile
# Startar PowerPoint igen med filen som visas
Add-type -AssemblyName office
$Application = New-Object -ComObject powerpoint.application
$Application.visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$SlideType = "microsoft.office.interop.powerpoint.ppSlideLayout" -as [type]
$Presentation = $Application.Presentations.open($showFile)
foreach($Slide in $Presentation.Slides) {
$Slide.SlideShowTransition.AdvanceTime = $ppSlideShowAdvanceTime
$Slide.SlideShowTransition.AdvanceOnTime = [Microsoft.Office.Core.MsoTriState]::msoTrue
$Slide.SlideShowTransition.Advanceonclick = [Microsoft.Office.Core.MsoTriState]::msoFalse
}
$Presentation.SlideShowSettings.ShowType = $ppShowTypeKiosk
$Presentation.SlideShowSettings.run()
}
}
}
Jag har bara testat lite så jag lämnar inga som hellst garantier för att det funkar om det nu ens skulle råka visa sig fungera.
Det finns en hel del info om inställningar för slideshow här:
http://msdn.microsof...y/ff744592.aspx
#3
Skriven 10 July 2012 - 17:13
Tackar och bockar. Skall testa. Hittade dock en smidig open source mjukvara för administration av presentationer med massa olika skärmar och central styrning. Så skall utvärdera denna också.









