내가하려는 것은 내 WPF 응용 프로그램에서 Powerpoint 프레젠테이션을 제어하는 것입니다. 이 질문의 코드는 다음과 같습니다. C# - way to programmatically advance Powerpoint slide show? 정상적인 슬라이드에서는 아주 잘 작동합니다.클릭 애니메이션으로 프로그래밍 방식으로 파워 포인트 슬라이드 쇼 진행
하지만 mouseclick에 의해 트리거 된 애니메이션이있는 슬라이드에 도달하면 바로 예상대로 작동하지 않습니다. 그런 슬라이드로 이동하면 예상대로 표시되지만 objPres.SlideShowWindow.View.Next()를 호출하면 아무것도 수행되지 않고 두 번째 또는 세 번째 클릭 후 바로 다음 슬라이드로 이동합니다 생기.
이상한 건 : 타이머를 통해 objPres.SlideShowWindow.View.Next()를 호출하면 작동합니다! 애니메이션이 예상대로 실행 중입니다. 이 쉽게 뭔가 내가 뭔가를 내려다하고 나는 확신
Microsoft.Office.Interop.PowerPoint.Application oPPT;
Microsoft.Office.Interop.PowerPoint.Presentations objPresSet;
Microsoft.Office.Interop.PowerPoint.Presentation objPres;
Microsoft.Office.Interop.PowerPoint.SlideShowView oSlideShowView;
Timer slidetest;
private void OpenPPT(object sender, RoutedEventArgs e)
{
//Create an instance of PowerPoint.
oPPT = new Microsoft.Office.Interop.PowerPoint.Application();
// Show PowerPoint to the user.
oPPT.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
objPresSet = oPPT.Presentations;
OpenFileDialog Opendlg = new OpenFileDialog();
Opendlg.Filter = "Powerpoint|*.ppt;*.pptx|All files|*.*";
// Open file when user click "Open" button
if (Opendlg.ShowDialog() == true)
{
string pptFilePath = Opendlg.FileName;
//open the presentation
objPres = objPresSet.Open(pptFilePath, MsoTriState.msoFalse,
MsoTriState.msoTrue, MsoTriState.msoTrue);
objPres.SlideShowSettings.ShowPresenterView = MsoTriState.msoFalse;
System.Diagnostics.Debug.WriteLine(objPres.SlideShowSettings.ShowWithAnimation);
objPres.SlideShowSettings.Run();
oSlideShowView = objPres.SlideShowWindow.View;
slidetest = new Timer(4000);
slidetest.AutoReset = false;
slidetest.Elapsed += new ElapsedEventHandler(slidetest_Elapsed);
slidetest.Start();
}
}
void slidetest_Elapsed(object sender, ElapsedEventArgs e)
{
// this works as expected
oSlideShowView.Next();
}
private void OnNextClicked(object sender, RoutedEventArgs e)
{
// this doesn't work, animations aren't shown at all.
oSlideShowView.Next();
}
:
이
는 내가 가지고있는 코드입니다. 그러나 나는 꽤 오랫동안 내 머리를 두드리는 오전 : (
, 문제가 자동으로 실행 시간 제한 애니메이션이 있다는 것을있을 수 있습니다 그렇다면, 내가 PPT가 응답하지 않을 생각? oSlideShowView.Next 이제까지 애니메이션 처리가 끝났습니다. –
@ steve-rindsberg 아니요, 테스트 한 PPT에는 애니메이션이 없습니다. 테스트 프로젝트를 만들고 여기에 업로드했습니다 : https : // skydrive. live.com/redir.aspx?cid=edd93823761d5c8e&resid=EDD93823761D5C8E!10340&parid=EDD93823761D5C8E!139&authkey=!AMpcxEYSf90vv24 (이 zip에는 두 개의 슬라이드가있는 테스트 ppt가 있습니다. 첫 번째 슬라이드의 클릭 애니메이션). – Malyngo
저는 C (샤프, 플랫, 플러스, 마이너스) 녀석이 아니며 지금 당황하고 있습니다. 나는 볼 시간이 있다면 어쨌든 많은 도움이되지 않을 것입니다. 죄송합니다. –