3

powepoint ファイルを webBrowser コントロールに埋め込む wpf アプリケーションがあります。以下のサンプルコードを使用して、その機能を実装することができました。しかし、ppt ファイルを実行するたびに、スライド ショーが画面に数秒間ポップアップ表示され、それがコントロールに埋め込まれます。これを停止するか、バックグラウンド プロセスとして実行する方法はありますか?

using System;
using System.Runtime.InteropServices;
using System.Windows;
using Microsoft.Office.Core;
using PPT = Microsoft.Office.Interop.PowerPoint;

namespace WpfApplication1
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        [DllImport("User32", CharSet = CharSet.Auto, ExactSpelling = true)]
        internal static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndParent);

        private void BtnOpenClick(object sender, RoutedEventArgs e)
        {
            const string pptFilePath = @"E:\Sample.ppt";
            var pptApplication = new PPT.Application
            {
                ShowWindowsInTaskbar = MsoTriState.msoFalse 
            };            

            var presentation = pptApplication.Presentations.Open(pptFilePath, MsoTriState.msoCTrue,
                                                                          MsoTriState.msoTrue, MsoTriState.msoFalse);

            var slideShowWindow = presentation.SlideShowSettings.Run();

            slideShowWindow.Height = (int)(0.85 * webBrowser1.Height);
            slideShowWindow.Width = (int)(0.75 * webBrowser1.Width);           

            SetParent(new IntPtr(presentation.SlideShowWindow.HWND), webBrowser1.Handle);
        }
    }
}
4

2 に答える 2