I wrote an application that has 3 frames on it. Frame 1 shows a powerpoint show, Frame2 pulls data from a database and loads it into labels, Frame3 pulls a second powerpoint. Each frame is displayed on a separate monitor.

The problem I am having is controlling the slide transitions of powerpoint. If the slide show, with multiple slides, loops and transitions from slide to slide, ONLY the slideshow that had focus last will transition. If I click on the first slide show, then it will transition and the previous show stops transitioning. Can anyone suggest a method to make both shows transition simultaneously?

Here's some quick and nasty code that does 2 powerpoints like i do in my project. Obviously the .AdvanceTime = 0.000015 will make each slide scream by but that's not the point. The point is, I'm stuck and need help. A quick solution I used was to publish the powerpoint as a flash, the insert the flash back into a single slide. Then, the new problem is that no matter what settings are set in powerpoint of flash timing, the slides transition at 8 seconds. If anyone is interested here is the freeware to publish powerpoint into flash.

http://www.ispringsolutions.com/free...converter.html

I'm not endorsing the above, it was a temporary solution. Now I need your help.


'In a module
Option Explicit

Const APP_NAME = "PowerPoint in VB window"

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As Long) As Long
Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Public Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Public screenClasshWnd As Long
Public oPPTApp1 As PowerPoint.Application
Public oPPTPres1 As PowerPoint.Presentation
Public oPPTPres2 As PowerPoint.Presentation

Sub main()

Form2.Show

End Sub


'In the form
Option Explicit

Private iIndex As Integer

Private Sub Form_Load()
Dim lleft As Single
Dim ttop As Single
Dim wwidth As Single
Dim hheight As Single

lleft = 0
ttop = 0
wwidth = 512 * 15
hheight = 768 * 15

GetPPTs
Me.Move lleft, ttop, wwidth, hheight
End Sub
Private Sub GetPPTs()
Dim numOfSlides As Integer
Dim i As Integer

Set oPPTApp1 = New Application


If Not oPPTApp1 Is Nothing Then
Set oPPTPres1 = oPPTApp1.Presentations.Open("C:\Temp\Visual Board.ppt", True, , False)
With oPPTPres1
.SlideShowSettings.Run
screenClasshWnd = FindWindow("screenClass", 0&)
SetParent screenClasshWnd, frmSS1.hwnd
numOfSlides = .Slides.Count
For i = 1 To numOfSlides
.Slides.Range.SlideShowTransition.AdvanceOnTime = True
.Slides.Range.SlideShowTransition.AdvanceTime = 0.000015
.SlideShowSettings.Run
Next i
End With
End If
If Not oPPTApp1 Is Nothing Then
Set oPPTPres2 = oPPTApp1.Presentations.Open("C:\Temp\Visual Board.ppt", True, , False)
With oPPTPres2
.SlideShowSettings.Run
screenClasshWnd = FindWindow("screenClass", 0&)
SetParent screenClasshWnd, frmSS1.hwnd
numOfSlides = .Slides.Count
For i = 1 To numOfSlides
.Slides.Range.SlideShowTransition.AdvanceOnTime = True
.Slides.Range.SlideShowTransition.AdvanceTime = 0.000015
.SlideShowSettings.Run
Next i
End With
End If



End Sub




Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If Not oPPTPres1 Is Nothing Then
Set oPPTPres1 = Nothing
End If
If Not oPPTApp1 Is Nothing Then
oPPTApp1.Quit
Set oPPTApp1 = Nothing
End If

End Sub