Hi all..

I'm still a newbie at VB script, and i've got a question regarding it.. This is the current situation:

I have 2 network shares. I need to have a script checking share #1, checking if it contains a powerpoint presentation, say every 5 minutes. This a not the real issue, I could schedule the script to run every 5 minutes. If share#1 does contain a presentation, it should:
- stop the current presentation running in powerpoint, from share#2;
- move presentation from share #1 to share #2 (overwriting the current presentation);
- start the new presentation using powerpoint;

Sounds pretty easy to do, but if your not that experienced with VBS yet (like me.. [:D]) it can become be a challenge.. What do i have
thusfar? Well:


Dim WshShell

Set WshShell = WScript.CreateObject("WScript.Shell")
Share1 = ("H:\1\presentatie.pst")
Share2 = ("H:\2\presentatie.pst")

On Error Resume Next
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FileExists("presentatie.pps") Then
'do nothing, file is not found
Msgbox "file is not found"
'stop powerpoint, move presentation and start new presentation
Msgbox "Stop powerpoint, move new presentation and start it.."
WSHShell.Run"C:\WINDOWS\system32\taskkill.exe /F /IM POWERPNT.EXE"
FileCopy "H:\1\presentatie.pps", "h:\2\presentatie.pps"
Kill "presentatie.pps"
End if

Anyhow, the script runs till the filecopy command. No error whatsoever, just doesn't move the presentations. Does kill powerpoint though. Any suggestions..?
0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


The code below should work, although i have not tested it. Either way it will point you in the right direction.

This book helped me a TON when I started with vbscript. I highly recommend it.

If you have any questions or the script gives you some problems please reply in the forums and I'll give you a hand.

'I debug script with out On Error Resume Next
'When the script goes into prod your can uncomment it to make sure it keeps running.
'On Error Resume Next

Dim Share1, Share2, ppsName, sleepTime, StrComputer, objWMIService

'Scripting objects
Set objShell = Wscript.CreateObject("Wscript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objNetwork = Wscript.CreateObject("Wscript.Network")

Const OverWriteFiles = True
strComputer = "."

'In milliseconds
'1 second - 1000
'1 minute - 60000
'5 minutes - 300000
sleepTime = 300000

Share1 = "\\Server\Share1\"
Share2 = "\\Server\Share2\"

ppsName = "presentation.pps"

Main 'Call the Main() Sub to start the script.

Sub Main
If objFSO.FileExists(Share1 & ppsName) Then
KillPowerpoint 'Kill Powerpoint with the KillPowerpoint Sub
MoveThePPS 'Move the pps with the MoveThePPS Sub
StartPowerpoint ' Start Powerpoint with the StartPowerpoint Sub
End If
Wscript.Sleep sleepTime
Main ' Calls itself again to start the loop over.
End Sub 'Main

Sub MoveThePPS
objFSO.MoveFile(Share1 & ppsName, Share2 & ppsName, OverWriteFiles)
End Sub 'CopyThePPS

Sub KillPowerpoint
Dim colProcessList, objProcess
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'POWERPNT.EXE'")
For Each objProcess in colProcessList
End Sub 'KillPowerpoint

Sub StartPowerpoint
objShell.Run Share2 & ppsName & "/y" '
End Sub 'StartPowerpoint
Answered 09/26/2005 by: Garrett
Orange Belt

Please log in to comment
Answer this question or Comment on this question for clarity