私がやろうとしていることは、自分のWPFアプリケーションからPowerpointプレゼンテーションをコントロールすることです。 この質問のコードは C# - way to programmatically advance Powerpoint slide show? 通常のスライドではうまくいきます。クリックアニメーションでプログラム的にパワーポイントのスライドショーを進める
しかし、マウスクリックでトリガーされたアニメーションを持つスライドに着くとすぐに、それは私が期待するように機能しません。 このようなスライドに行くと、期待どおりに表示されますが、objPres.SlideShowWindow.View.Next()を呼び出すと何も起こりません.2回目または3回目のクリック後、次のスライドに直接移動します。アニメーション。
奇妙なことは: 私は、タイマを介して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もあります。このzipには2つのスライドがあり、最初のスライドのクリックアニメーション)。 – Malyngo
私はC(シャープ、フラット、プラス、マイナス)の男ではなく、現時点では圧倒されています。私が見る時間があったら、それは何とか助けにはならないでしょう。ごめんなさい。 –