powerpointview2007を実行させる。


かめおやじ  2009-12-05 00:34:38  No: 36399

delphiよりpowerpointview2007にファイルを読み込ませて、スライドショーを実行させたいと考えております。
powerpointview2007  はインストール出来ております。
PPTVIEW.exeを元に、タイプライブラリを作成しようとしたのですが、作成はできませんでした。
エンジンと思われる、PPVWINTL.DLLもタイプライブラリの作成は失敗しております。

最終目的としては、フォームのの特定のエリアにパワーポイントのスライドショーを表示し、ボタン等で表示内容を切り換える事を行いたいと考えております。
とっかかりのヒントで良いので、お教え下さい。

コンポーネント、OCXをご紹介いただいてもかまいません。

wmvやフラッシュは出来ているので、何とかパワーポイントのスライドショーも再生したいと考えております、どうかよろしくお願いいたします。


monaa  2009-12-05 22:27:17  No: 36400

googleで「PowerPoint Viewer ocx」「web全体から」で調べると
幾らでもでてきます。
多分自力でも作れるかもしれませんね。


かめおやじ  2009-12-06 06:45:09  No: 36401

PowerPoint Viewer OCX での検索で、海外で公開されてるOCX(有料)はでてきます。(有料のもは使用しない方向で考えております。)

私の記載事項が不足していたので、申し訳ございませんでした。
powerpointview2007  以前  のバージョンの時には、ActiveXコンポーネントとして登録する事が出来たので、delphiより制御する事が可能だったみたいです(ネット上でも、ActiveXへの登録方法を含めたヒントが結構見つかっています。)
powerpointview2007  では、公開されているヒントでは、使用できませんでした。

ターゲット用のPCにはpowerpointview2007だけをインストールし、後は作成したプログラムだけで、制御したいと考えております。

一番助かるのは、delphiで標準で作成されている、TPowerPointApplication と同様のTPowerPointViewerApplication が有るのが一番理想で、次に期待しているのが無料のOCX(OCX経由でpowerpointview2007を制御する)になり、最後は、DLLでの制御です。

そのあたりで、情報をお持ちの方おりましたら、ご指導頂ければ幸いです。

もし.netでの方法(API経由、comオブジェクト経由)でご提供でもかまいません。
(delphi+.netプログラムで作成事も可能なので)


かめおやじ  2009-12-13 08:05:50  No: 36402

powerpointview2007を調査したのですが、難しいそうなので、今現在、powepoint2007でテストを行っているのですが、何点か実現が出来ておりません、つきましては、方法をご存知の方がおりましたらご指導ください。

やりたい事は、パワーポイントのスライドショーを、指定した、位置とサイズで再生を実施させたいのです。

  PowerPointApp:= TPowerPointApplication.Create(Self);

  PowerPointApp.Activate;
  PowerPointApp.Connect;

  PowerPointApp.Presentations.Open('c:\test.pptx', msoFalse,msoFalse,msoTrue);
  PowerPointApp.ActivePresentation.SlideShowSettings.ShowType := ppShowTypeWindow;
  // スクロールバーを消去する。
  PowerPointApp.ActivePresentation.SlideShowSettings.ShowScrollbar := msoFalse;

  PowerPointApp.Dialogs
  PowerPointApp.Top := 0;
  PowerPointApp.Left := 0;
  PowerPointApp.Width := 300;
  PowerPointApp.Height := 300;

  // スライドショーを実行する。
  PowerPointApp.ActivePresentation.SlideShowSettings.Run;

とすることで、スライドショーの実行と、スクロールバーを消すことは出来たのですが、表示している所の枠線と上部windowsのバーを消す方法が分かっておりません。

つきましては、ご存知の方がおりましたらお教え頂けないでしょうか?
又は、windowsハンドルの取り方をお教え頂いければたすかります。
(windowsハンドルが取れれば、APIでもしかすると変更出来るかもと・・と予測しております)


Mr.XRAY  2009-12-29 01:54:11  No: 36403

Mr.XRAYです.亀レスです.
他のスレッドももちろんご覧になっているとは思いますが

CreateProcessでウィンドウの位置と大きさを指定
https://www.petitmonte.com/bbs/answers?question_id=6680

にレスしたついでです.
環境の記載がありませんが

>powepoint2007でテストを行っているのですが

だけは分かりました(まさかWidnows95でDelphi2ということはないと思いますが...).

>PowerPointApp.Width := 300;
>PowerPointApp.Height := 300;

これはPowerPoint本体のサイズ指定です.スライドショーは,

  PowerPointApplication1.ActivePresentation.SlideShowWindow.Left := 500;
  PowerPointApplication1.ActivePresentation.SlideShowWindow.Width := 700;
  PowerPointApplication1.ActivePresentation.SlideShowWindow.Height := 500;

の感じですね.
ただ,この方法だと,一度全画面で表示されてから,位置が変更となります.
何かしらの工夫でそのようにならないようにできるかは不明です.

280_アプリの起動と終了を知る
http://mrxray.on.coocan.jp/Delphi/plSamples/280_HookCBTActivate.htm#Activate

のようにDLLを使用してグローバルフック内で制御すれば最初から指定の位置と
サイズで表示することは,環境によっては可能です.


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加