【VB开源代码栏目提醒】:本文主要为网学会员提供“制作PPT计时程序 - 期刊论文”,希望对需要制作PPT计时程序 - 期刊论文网友有所帮助,学习一下!
SOFTWARE DEVELOPMENT AND DESIGN 软件开发与设计 制作 PPT 计时程序 付会明 ,刘海燕,李宏康 ( ) 江西省气象信息中心,南昌 330046 摘 要: 本文介绍在
VB 中调用 API 函数设计制作一个 PPT 演讲计时器,该计时器能实时显示演讲者演示 Power- Point 文稿所用的时间,并在超过演讲时限时自动关闭 PowerPoint 演示窗口。
关键词: 计时器;PPT;进程;API Develop a Timer Program for PPT LIU LI FU Huiming, Haiyan, Hongkang (Jiangxi meteorological information center, Nanchang 330046) Abstract:The article introduced the design and implementation of a PPT timer program by invoking the API functions in
VB language. The program can show speech time and close the PowerPoint window when the speech overruns the allotted time. Key
words:Timer PowerPoint Process API1 概述 ) (4 如果演讲者在时限内提前结束演讲关闭 PPT 窗口, PowerPoint (简称 PPT 是办公自动化软件 Office 中的一 ) 计时器程序停止倒计时回到时钟模式。
个重要软件,它可以简单方便地设计制作高品质教师讲义、 () 超过演讲时限 PPT 计时器立即结束正在播放的 PPT 5专家
报告、产品宣传等电子版幻灯片,并通过
计算机屏幕或 演示窗口,计时器停止倒计时回到时钟模式,等待下一个演投影机播放,是一种功能强大的多媒体演示文稿制作
软件。
讲开始。
现在各种会议场合,与会者多借助 PowerPoint 发表自己的 () 计时器界面为浮动窗口,保持处于所有窗口之上突 6交流观点。
当上台演讲者很多时,需对演讲进行安排组织和 出显示,可用鼠标拖放在屏幕上的任意位置。
时间限定,依靠人工计时不可靠也不准确,使用一个计时软 () 程序界面要考虑周到,界面不能太大影响使用者演 7件在屏幕上自动显示演讲所耗时间并恰当给出时限提示,可 讲,也不能太小不起眼,特别是字体要尽量大和醒目。
程序以很好达到限制演讲时间的目的。
运行界面如图 1,图 2 所示。
本文提供的 PPT 计时器程序根据这一功能要求设计实现,能在演讲比赛、职位竞聘、大型会议等场合多人演示 PPT 时给每位参加者一个精确时间限制,使用效果良好非常有实用价值。
2
设计 图 1 时钟模式界面 该 PPT 计时器程序工作在时钟模式和计时模式两种状态下,时间精度到秒。
时钟模式工作状态计时器界面用淡蓝色显示系统时间,计时模式工作状态计时器界面用红色显示倒计时时间。
计时器启动后若没有 PowerPoint
演示窗口打开,计时器进入时钟模式显示正常时间,若有 PowerPoint 演示窗口打开,PPT 计时器立即进入计时模式开始倒计时显示演讲 图 2 计时模式界面所用时间。
3 开发 PPT 计时器计时模式工作过程设计如下: 3.1 流程分析 () 可任意设置 PPT 演讲限时值 ( 1 缺省为 15 分钟),自 计时器调用 API 函数以秒间隔扫描内存进程,查找 Power-动读取最近设置的参数。
Point 进程是否启动,判断和进入相应
工作模式,并在屏幕中 () 在演讲者打开自己的 PPT 演示文稿时计时器程序界 2 所有窗口最前面给出必要文字或声音提示。
程序还设置 2 个面提示“计时准备”,延时 6 秒后开始自动倒计时显示演讲所 小按钮分别完成时间设置和程序关闭功能。
用时间。
3.2 技术关键 () 设置一个提前提示点 预铃,界面闪烁提示规定时 3 3.2.1 捕捉和关闭限快到并发出声音提示。
用到几个重要 API 进程控制函数: CreateToolhelp32Snap-本文收稿日期:2008 年 11 月 10 日 shot 建立进程快照 ( ) snapshot 、Process32Next 遍历进程池的向 - 27 - 电脑编程技巧与维护下递归函数、Process32First 查找起始进程函数、TerminatePro- SendMessage API 函数发送窗口消息实现窗口鼠标拖放功能。
cess 关闭进程函数。
以上函数的参数意义及使用方法请查阅 Label2_Click 关闭窗口按钮事件响应函数Microsoft 公司相关帮助
文档。
查技术资料获知 PowerPoint 在内 Private Sub Label2_Click 存中进程名为 POWERPNT.EXE,下面是 PowerPoint 进程搜索 Unload Me End和关闭函数。
End Sub searchthread 在内存中
搜索 PPT 进程函数,若成功返回 Label3_Click 时间设置按钮事件响应函数,点击按钮进 值为真。
入或离开演讲时间设置框 Private Function searchthread As Boolean Private Sub Label3_Click Dim procinf As PROCESSENTRY32 If Text1.Visible True Then Dim procsnap As Long Text1.Visible False Dim exename As String Label4.Visible False searchthread False Else PPTth32ProcessID 0 Text1.Visible True procsnap CreateToolhelp32Snapshot TH32CS_SNA- Label4.Visible True PALL 0 获得进程快照句柄 End If procinf.dwSize Len procinf End Sub theloop Process32First procsnap procinf Form_MouseDown 鼠标事件里实现窗体鼠标拖放移动功能 获取第一个进程,并得到其返回值 Private Sub Form_MouseDown Button As Integer Shift As While theloop 0 以秒间隔扫描系统内存所有进程 Integer X As Single Y As Single 查找 PPT 进程 POWERPNT.EXE If Button 1 Then exename procinf.szExeFile Call ReleaseCapture If InStr 1 exename POWERPNT.EXE 0 Then Call SendMessage hwnd WM_NCLBUTTON- PPTth32ProcessID procinf.th32ProcessID DOWN HTCAPTION 0 searchthread True End If End If End Sub 也可加入对 ACDSee、Word 等其他程序限时的功能 3.3 程序实现 theloop Process32Next procsnap procinf () 启动
VB6.0 软件开发平台,新建一个
VB 工程,在窗 1 当返回值非零时继续获取下一进程 体布局上放 1 个 Label 控件取名 Label1,用于时间显示。
用 2 Wend CloseHandle procsnap 关闭进程 快照 句柄 个 Label 控件 Label2 和 Label3 自制 2 个小按钮,标上 V 标志 End Function 作时间设置按钮,标上 X 标志作关闭窗口按钮 (如图 1 和图 2 stopthread 关闭进程函数 所示)。
放入 1 个 Text 文本控件 Text1,设置控件属性 Text1. Private Sub stopthread Text15。
再加入 2 个 Timer 控件 Timer1 和 Timer2,分别设置 hand OpenProcess PROCESS_TERMINATE True PPT- 属 性 Timer1.Interval 1000, Timer2.Interval 100。
在 Timer1、 th32ProcessID 获取进程句柄 Timer2 控件事件里加入以下
代码,主要完成计时模式及时钟 TerminateProcess hand 0 关闭进程 Call searchthread 调用查看进程函数重新查找 模式两种状态下的工作。
End Sub 程序进入计时模式显示演讲时间,时间间隔 Interval 其中 PROCESSENTRY32,TH32CS_SNAPALL,PROCESS 1000 毫秒 Private Sub Timer1_Timer _TERMINATE 是在模块中定义的公共数据类型。
sr searchthread 3.2.2 保持程序界面总处于所有窗口之上 If sr True And runtime 0 Then 判断工作模式 利用 API 窗口控制函数 SetWindowPos 和 SetForeground- If IsNumeric Trim Text1.Text ThenWindow 两个函数强迫窗口在最上层显示,实现关键
代码: 设置演讲时间缺省为 15 分钟 retValue SetWindowPos Me.hwnd -1 X - 190 0 190 settime CLng Trim Text1.Text60 H40 定位窗口 Else SetForegroundWindow Me.hwnd MsgBox Set time is not a numeric e.g settime15 保持
程序界面处于所有窗口之上显示 settime 15 3.2.3 自制按钮事件响应 End If retValue SetWindowPos Me.hwnd -1 X - 190 0 为避免遮挡 PPT 演示窗口,PPT 计时器程序界面必须小 190 60 H40巧不能占用太多屏幕显示空间。
系统缺省的大按钮不太适合 runtime settime 60 1需要用 2 个 Label 控件自制小按钮,实现时间设置和程序关闭 starttime 6 )功能。
在 Label_Click ( 事件响应函数内加入响应
代码。
同 ElseIf sr True Then时在 Form_MouseDown ( 鼠标事件里拦截窗口移动消息并用 ) Label1.ForeColor RGB 255 0 0- 28 -SOFTWARE DEVELOPMENT AND DESIGN 软件开发与设计 Dim Y As Double If starttime 1 Then Private Sub Form_Load 延时 6 秒后开始自动倒计时显示演讲所用时间 Dim header As ColumnHeader 初始化计时器界面 runtime runtime - 1 X Screen.Width / Screen.TwipsPerPixelX minut Int runtime / 60 Y Screen.Height / Screen.TwipsPerPixelY If Len minut 2 Then minut 0 minut retValue SetWindowPos Me.hwnd -1 X - 190 0 显示倒计时,格式为 分:秒 190 60 H40 secon runtime Mod 60 SetForegroundWindow Me.hwnd If Len secon 2 Then secon 0 secon 保持处于所有窗口之上显示 If runtime 3 60 Then 设一个提前提示点 预 Text1.Visible False 铃 3 分钟,读者也可自行设置 Label4.Visible False Label1.Caption 剩 余 minut : End Sub secon ) (3 计 时 器 程 序 工 程 由 窗 体 文 件 start.frm 和 模 块 文 件 ElseIf runtime 3 60 Or runtime 3 60 - 2 Or APIFUN.bas 2 个文件组成,前面所述
代码全部放入窗体文件 runtime 3 60 - 4 Then start.frm 中,API 函数的声明及其参数变量定义封装进模块文 form1.Visible True retValue SetWindowPos Me.hwnd -1 X - 件 APIFUN.bas 中。
将 APIFUN.bas 模块加入工程中,在窗体 190 0 190 60 H2 属性 Icon 里设置一个好的程序图标。
进行程序调试如果没有 SetForegroundWindow Me.hwnd 错就可以编译成可执行文件运行测试。
Label1.Caption 3 分倒计时 () 至此 PPT 计时器程序制作完毕,编译好的执行文件 4 Call PlaySound App.Path 提示音.wav 可直接在 Windows XP 操作系统里运行,但要在 Windows 2003 True 时限快到声音提示 等无
VB 组件的环境里应用,必须制作安装包发布程序。
可用 ElseIf runtime 3 60 And runtime 0 Then form1.Visible True
VB6.0 自带的“外接程序管理器/打包和展开向导工具”制作 Label1.Caption 剩余 minut : 安装程序或用 InstallShield、Wise Installation System 等商业打 secon 包软件制作发布。
经测试本 PPT 计时器程序可在 Microsoft Of- ElseIf runtime 0 Then fice PowerPoint 2000/2002/2003; Windows9x/Me/NT/2k/XP/2003 Label1.Caption 剩余 0 秒 环境下运行。
Call stopthread PPT 演讲时限到,停止 Power Point 进程,关闭演示窗口 4 结语 End If 本文阐述了计时器程序的制作原理,同时提供了一个 PPT Else 计时器实例。
该 PPT 计时程序设计精巧,运行几乎不占计算 Label1.Caption 计时准备 机资源,安装使用非常简单方便,时间控制准确可靠并可提 starttime starttime - 1 前预铃,是 PPT 教学、会议、答辩等活动的必备品。
当然本 End If 程序还有很大改进空间,如让界面半透明化、加进度条增强 End If If sr False Then 显示效果、制成 ActiveX 插件集成进 PPT 窗口、同时加入对 runtime 0 ACDSee、Word 等其他程序计时的功能、或将参数设置写入注 End If 册表等等,使其更具实用价值。
End Sub 程序进入时钟模式显示实际正常时间,时间间隔 Inter val100 毫秒 参考文献 Private Sub Timer2_Timer 1 电子工业出版社编写组. 新编 Windows API 参考大全. 电子 If runtime 0 Then 判断工作模式 工业出版社,2000. Label1.ForeColor RGB 0 200 255 2 明日科技,刘彬彬,高春艳,安剑. Visual Basic 技术
方案 Label1.Caption Format Now hh:mm:ss 宝典. 人民邮电出版社,2008. End If End Sub 作者简介 () 在窗体载入事件中加入初始化
代码。
2 付会明,男 ( ),电子工程师,主要从事数据传输处理, 1971- Dim PPTth32ProcessID As Long 信息系统研发工作。
Dim runtime As Long Dim starttime As Long Dim X As Double - 29 -