Display PowerPoint slide show within a VB form or control window
The example below shows how to use VB form/control as a container application to display a PowerPoint slideshow. It as shows how to make use of an undocumented slide show setting to run the slideshow in a window of it's own without any PowerPoint toolbars.
System requirements:
Visual Basic 6.0 to compile the code
PowerPoint installed on the target system
Click here to download the VB project
' ------------------------------------------------------------------------
' Copyright ©1999-2011, Shyam Pillai, All Rights Reserved.
' ------------------------------------------------------------------------
' You are free to use this code within your own applications, add-ins,
' documents etc but you are expressly forbidden from selling or
' otherwise distributing this source code without prior consent.
' This includes both posting free demo projects made from this
' code as well as reproducing the code in text or html format.
' ------------------------------------------------------------------------
Option Explicit Const APP_NAME = "PowerPoint in VB window" Const SHOW_FILE = "C:\PowerPoint\Sample.ppt" ' PowerPoint Constants Const ppShowTypeSpeaker = 1 ' Undocument constant used to display show in a window ' without PowerPoint command bars. Const ppShowTypeInWindow = 1000 Public oPPTApp As Object Public oPPTPres As Object ' API's used: Private Declare Function FindWindow Lib "user32" _ Alias "FindWindowA" (ByVal lpClassName As String, _ ByVal lpWindowName As Long) As Long ' To set fram control as the parent of the slide show window Private Declare Function SetParent Lib "user32" _ (ByVal hWndChild As Long, _ ByVal hWndNewParent As Long) As Long ' To set the caption of the window Private Declare Function SetWindowText Lib "user32" _ Alias "SetWindowTextA" (ByVal hwnd As Long, _ ByVal lpString As String) As Long Private Sub cmdShow_Click(Index As Integer) Dim screenClasshWnd As Long On Error Resume Next Set oPPTApp = CreateObject("PowerPoint.Application") If Not oPPTApp Is Nothing Then Set oPPTPres = oPPTApp.Presentations.Open(SHOW_FILE, , , False) If Not oPPTPres Is Nothing Then With oPPTPres Select Case Index Case Is = 0 With .SlideShowSettings .ShowType = ppShowTypeSpeaker With .Run .Width = frmSS.Width .Height = frmSS.Height End With End With screenClasshWnd = FindWindow("screenClass", 0&) SetParent screenClasshWnd, frmSS.hwnd With Me .Height = 4545 .SetFocus End With Case Is = 1 With .SlideShowSettings .ShowType = ppShowTypeInWindow .Run End With Call SetWindowText(FindWindow("screenClass", 0&), APP_NAME) End Select End With Else MsgBox "Could not open the presentation.", vbCritical, APP_NAME End If Else MsgBox "Could not instantiate PowerPoint.", vbCritical, APP_NAME End If End Sub Private Sub Form_Initialize() With Me .ScaleMode = vbPoints .Caption = APP_NAME End With End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) On Error Resume Next lblMessage.Visible = True DoEvents If Not oPPTPres Is Nothing Then oPPTPres.Close End If Set oPPTPres = Nothing If Not oPPTApp Is Nothing Then oPPTApp.Quit End If Set oPPTApp = Nothing lblMessage.Visible = False End Sub |
url: http://skp.mvps.org/vb/pptvbwnd.htm
Display PowerPoint slide show within a VB form or control window的更多相关文章
- vb.net WPF webbrowser window.close 关闭后不触发 WindowClosing 事件 WNDPROC解决方式
vb.net WPF webbrowser window.close 关闭后不触发 WindowClosing 事件 WNDPROC解决方式 #Region "WPF 当浏览器窗体关闭 ...
- How to: Specify a Display Member (for a Lookup Editor, Detail Form Caption, etc.)如何:指定显示成员(用于查找编辑器、详细信息表单标题等)
Each business object used in an XAF application should have a default property. The default property ...
- [WPF自定义控件库]为Form和自定义Window添加FunctionBar
1. 前言 我常常看到同一个应用程序中的表单的按钮----也就是"确定"."取消"那两个按钮----实现得千奇百怪,其实只要使用统一的Style起码就可以统一按 ...
- VSTO PowerPoint 代码删除Shape后再恢复出现无法再次获取的问题
做PowerPoint的VSTO插件项目,遇到个很奇怪的问题,当代码执行删除某些Shape时,没问题,但是操作Undo也就是恢复后,无法再次获取到之前删除的对象,这种情况只在Office2007中出现 ...
- html代码中的form参数是基本一致的
由于pear的大多数模块仍处于开发当中,因此,这里列举的是随着php4.05一起发布的pear中的模块,需要注意的是,一些抽象类或者是基类(如mail.php,log.php,cache.php)没有 ...
- js实现无刷新表单提交文件,将ajax请求转换为form请求方法
最近在做项目的时候遇到一个需要上传文件的需求,因为ajax请求是无法上传二进制文件流的,所以只能用form表单提交,而form提交有一个问题就是会使页面刷新,本文解决了form表单提交文件时页面刷新的 ...
- 项目回顾1-图片上传-form表单还是base64-前端图片压缩
第一个项目终于上线了,是一个叫亲青筹的公益众筹平台,微信端,电脑端还有后台界面大部分都是我完成的,几个月过来,感觉收获了很多,觉得要总结一下. 首先想到的是图片上传的问题.在通常表单数据都是ajax上 ...
- css form 表单组对齐
2014年7月1日 15:31:17 第一次写css,见谅 css: .form-box .form-group .form-label {text-align: right; width: 200p ...
- 用Autohotkey让powerpoint幻灯片一直播放
有台电脑专门接了个大电视循环播放一个幻灯片,但是有时候会弹出一些对话框,比如windows要更新之类的,这样的话powerpoint就不是active的进城了,这样幻灯片就会停下来,还需要人去手动点一 ...
随机推荐
- E20171123-sl
conform vi. 符合; 遵照; 适应环境; vi. 符合; 遵照; 适应环境; adj. 一致的; 顺从的; investigat ...
- bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘【凸包】
凸包模板 #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> ...
- java自学-方法
上节介绍了流程控制语句,一个复杂的业务逻辑会由很多java代码组成,包含许多功能.比如说购物业务,就包含选商品.下单.支付等功能,如果这些功能的代码写到一起,就会显得很臃肿,可读性非常不好.java提 ...
- spring 简单实现BeanFactory(转)
原文地址: http://blog.csdn.net/mlc1218559742/article/details/52776160 有没有发现上面的代码与利用反射实现工厂模式的代码很相似.对,你没有看 ...
- JSON基础 JS操作JSON总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式.同时,JSON是 JavaScript 原生格式,这意 ...
- LN : leetcode 406 Queue Reconstruction by Height
lc 406 Queue Reconstruction by Height 406 Queue Reconstruction by Height Suppose you have a random l ...
- [ ZJOI 2010 ] 网络扩容
\(\\\) Description 给定一张有向图,每条边都有一个容量 \(C\) 和一个扩容费用 \(W\). 这里扩容费用是指将容量扩大 \(1\) 所需的费用.求: 在不扩容的情况下, \(1 ...
- Android基础TOP5_1:AutoCompleteTextView自动补全文本框
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...
- 后台接收不到postman发送的xml参数的解决办法
首先在body下复制需要传的xml: 然后点击url右边的Params,添加key和value.value和body下的xml是一样的: 最后点击send,后台就能接收到参数了.
- CAD如何设置系统变量
主要用到函数说明: MxDrawXCustomFunction::Mx_SetSysVar 设置系统变量.详细说明如下: 参数 说明 CString sVarName 系统变量名 Value 需要设置 ...