基于VSTO技术的Office计时器插件的设计与实现

2016-09-26 02:16张未未吴宇峰刘仁权北京中医药大学信息中心北京0009北京中医药大学教务处北京0009
电子设计工程 2016年11期
关键词:计时器演讲者倒计时

张未未,吴宇峰,刘仁权,王 苹(.北京中医药大学 信息中心,北京 0009;.北京中医药大学 教务处,北京 0009)

基于VSTO技术的Office计时器插件的设计与实现

张未未1,吴宇峰2,刘仁权1,王 苹1
(1.北京中医药大学 信息中心,北京100029;2.北京中医药大学 教务处,北京100029)

计时器被广泛应用于演讲比赛和答辩陈述等需要限时完成的多种场合。针对实际应用中计时器只能起到计时作用,而无法真正干预到演讲者演讲超时行为的问题,文章介绍了基于VSTO技术的Office计时器插件的设计与实现方法。该计时器插件在演讲者无意或因其他操作需退出幻灯片放映状态时,仍可继续计时,从而保证整个演讲过程计时的连续性。同时,还可以通过计时结束时强制退出幻灯片放映状态或关闭演示文稿等手段对超时情况进行干预,从技术层面保证行为与时效的一致统一,经实践证明该插件使用效果良好。

VSTO;计时器;插件;PowerPoint;Visual Studio

计时器被广泛应用于演讲比赛和答辩陈述等需要限时完成的多种场合。但实际应用中经常会出现计时结束但演讲者还在滔滔不绝继续陈述,以致现场评委不得不再三提醒的场景。这种情况既违反了演讲或答辩的规则,又会影响到后续环节的准时进行,往往造成活动时间处于不可控的局面。而计时器也并没有真正起到时间限制的作用。从目前市场上已有的计时器产品来看,无论是专用计时器设备,还是计时器应用软件,都只能起到时间计量和到时提示的功能,而不能以某种措施真正干预到演讲者演讲超时的行为,从而导致一方面组织者要为购买计时器设备或软件花费经费,但另一方面又要为怎么控制时间而另想办法的尴尬局面。基于此,文中根据用户需求,并结合目前多数演讲比赛和答辩陈述环节都要求使用幻灯片作为演示工具的特点,介绍了一种全新的Office计时器插件的设计与实现方法,很好的解决了已有计时器只计时而不能真正实现时间控制的功能局限,而且通过实际使用证明效果良好。

1 计时器插件功能描述及工作流程

1.1功能描述

根据对用户的使用需求分析,文中所介绍的计时器工具是以Office插件形式实现的,嵌入于PowerPoint软件之中,并具有如下功能:

1)幻灯片开始放映,倒计时开始,显示计时时间;

2)倒计时结束前某一时刻进行提示,以提醒演讲者注意控制时间;

3)倒计时结束伴有语音提示;

4)可设置倒计时结束时退出幻灯片放映状态或者关闭当前演示文稿;

5)可设置演讲者在演讲过程中退出幻灯片放映状态而进行其他计算机操作时,时间倒计时继续;

6)不需要倒计时操作时,可关闭该Office插件功能。

1.2工作流程

根据以上功能描述,计时器插件工作流程如图1所示。

图1 计时器插件工作流程

1)当幻灯片开始放映时,表示演讲正式开始,计时器启动,倒计时开始;

2)当时间到达设定好的提示时间时,将发出提示音,提醒演讲者注意距离结束所剩余的时间;

3)当倒计时时间到时,将发出提示音,提示演讲者倒计时结束;

4)倒计时结束后可根据软件设置决定是否允许演讲者继续放映演示文稿余下内容、还是退出放映状态以及关闭当前演示文稿等操作。

2 VSTO技术简介

VSTO(Visual Studio Tools for the Microsoft Office System)是一种高效可靠的实现智能文档的技术,是微软提出的内嵌于Microsoft Visual Studio.NET产品的解决方案,可以说是VBA技术的.NET平台化[1]。开发者可以使用强大的Visual Studio开发环境来创建定制程序,相对于使用VBA或Office里的Visual Basic Editor(VBE),VSTO技术具有以下明显优势[2]:

1)开发人员不但可以使用各种控件,包括WinForm托管控件和VSTO宿主控件,而且可以利用Visual Studio为这些控件提供的丰富功能来提高工作效率。

2)支持各种托管代码,如VB.NET、Visual C#等,这样开发人员就可以充分利用VB或C#的经验进行开发,从而易于上手掌握。

3)NET Framework类库和公共语言运行库(CLR)对VSTO提供了全面地支持,例如可以使用 ADO.NET访问数据库、支持 XML Web Services多层结构解决方案的开发等。

4)集成了.NET Framework提供的安全功能,另外,在VSTO环境中编程时,其代码是包含在该项目所生成的程序集中的,且编写的是托管代码,与托管代码一起提供的公共语言运行库会对代码进行验证,从而避免执行非法操作[3]。

3 计时器插件的开发与实现

3.1PowerPoint外接程序的创建

VSTO在Visual Studio.NET的开发环境中提供了一套Office Projects项目模板,使用这些模板可以创建以Office文档(例如Word、Excel、PowerPoint、InfoPath、Visio和Outlook)为中心的解决方案[4]。用户可根据需要,利用VSTO创建文档级别或应用程序级别的定制程序。文档级别的定制程序是指程序代码仅关联到特定的文档而不是整个应用程序,应用程序级的定制程序则对整个应用程序都是可用的[5]。本文所介绍的计时器插件是对于PowerPoint整个软件可用的,因此需创建应用程序级别的定制程序。

在Visual Studio 2010中可以依次点击“文件”→“新建项目”展开Office模板,然后从模板中选择“PowerPoint 2010外接程序”来完成针对PowerPoint 2010的应用程序级别插件的项目创建。项目建立后,Visual Studio会为用户自动引入必要的程序集,并创建ThisAddIn.vb(本文选取VB.net作为开发语言)文件,该文件将会创建一个外接程序的入口类ThisAddIn,即PowerPoint宿主项。可以通过此类对PowerPoint对象进行访问。同时,该类中有 ThisAddIn_Startup和 ThisAddIn_ Shutdown两个方法,用于放置外接程序加载或卸载时要执行的代码[6]。

3.2用户界面设计

计时器插件的用户界面包括功能区(Ribbon)倒计时器选项卡界面和计时器窗口两个。

3.2.1计时器选项卡设计

Visual Studio 2010为用户提供了功能区选项卡的可视化设计器,用户可以通过从工具箱中拖拽控件来实现功能区的设计,并且可以通过在可视化设计器的控件上双击鼠标来为控件添加事件响应程序[7]。计时器插件的选项卡控制界面设计如图2所示。

图2 计时器插件的选项卡控制界面

1)时间设置:表示倒计时的时长。

2)距计时结束提示音:勾选此项后,将可以设置倒计时结束前的提示时间,并伴有提示音。如不勾选此项,则提示时间功能关闭。

3)退出放映继续计时:勾选此项后,则当演讲者在演讲过程中无意或因其他操作需退出幻灯片放映状态时,计时仍将继续,以保证整个演讲过程计时的连续性。勾选此项后,“到时关闭PPT”选项也会被自动选中,表示此情况发生时,如计时结束将会关闭当前演示文稿,以提示用户时间已到,演讲停止。

4)到时设置:“到时退出放映”表示计时结束时将自动退出幻灯片放映状态,以提示用户时间已到,演讲停止;“到时关闭PPT”表示计时结束时将自动关闭当前演示文稿,以提示用户时间已到,演讲停止。此两选项可依据情况分别勾选或同时勾选。

5)计时器插件开关按钮:此按钮可以控制计时器插件是否在幻灯片放映时开始工作。

3.2.2计时器窗口设计

计时器窗口界面如图3所示。该窗口为普通Windows窗体,作为倒计时过程时间的显示界面,并且可以暂停计时。当幻灯片放映开始时,该窗口会自动弹出,并依据所设定时间开始倒计时。

图3 计时器窗口界面

3.3主要模块功能及实现代码

该计时器插件涉及代码模块主要包括:Ribbon1.vb、Form1.vb和ThisAddIn.vb。

3.3.1Ribbon1.vb模块功能

Ribbon1.vb模块用以实现图2所示倒计时器选项卡界面功能,包括各控件初始状态的设置、时间输入值的有效性检验及获取、控件事件响应操作等,代码略。

3.3.2Form1.vb模块功能及主要实现代码

Form1.vb模块用以实现图3所示计时器窗口的时间显示和“继续/暂停”功能。窗体加载时的初始化设置代码如下:

Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles MyBase.Load

……

Me.minute_s.Text=Time_m10'设置窗体显示的倒计时时间—分十位

Me.minute_g.Text=Time_m Mod 10'设置窗体显示的倒计时时间—分个位

Me.second_s.Text=Time_s10'设置窗体显示的倒计时时间—秒十位

Me.second_g.Text=Time_s Mod 10'设置窗体显示的倒计时时间—秒个位

Time_total=Time_m*60+Time_s'将设置的倒计时时间换算成以秒为单位的数值

TimeTx_total=TimeTx_m*60+TimeTx_s'将设置的提醒时间换算成以秒为单位的数值

Time_yz=0'已走过时间清零

Timer1.Interval=1000'设置计时器控件触发时间间隔为1000毫秒

Timer1.Enabled=True'计时器控件开始工作

End Sub

Form1.vb模块中添加了计时器控件,通过初始化设置使该控件每隔1 s自动触发执行一次Tick事件,以此来进行时间显示数值的变化,模拟时间倒计时走动过程。Tick事件主要代码如下:

Time_sy=Time_total-Time_yz'计算剩余时间

'下列代码设置窗体中显示出的剩余时间

'下列代码实现当剩余时间达到提示时间,并且已经勾选“距计时结束提示音”复选框,则播放提示音

If Time_sy=TimeTx_total And Globals.Ribbons.Ribbo-n1. CheckBox4.Checked=True Then

……'播放提示音

'下列代码实现当倒计时还剩4秒时,窗体中时间文本框中的数字开始颜色闪烁

……'数字颜色变为黄色

……'数字颜色变为红色

Timer1.Enabled=False'倒计时结束关闭计时器控件

If Globals.Ribbons.Ribbon1.CheckBox2.Checked=True Then'判断是否勾选“到时关闭PPT”复选框Close()'关闭当前演示文稿

ElseIf Globals.Ribbons.Ribbon1.CheckBox1.Checked= True Then'判断是否勾选“到时退出放映状态”复选框

Globals.ThisAddIn.Application.Active Presentation. SlideShowWindow.View.Exit()'退出幻灯片放映状态

End If

MsgBox("时间到",MsgBoxStyle.Information,"时间提示")'弹出“时间到”提示对话框

End If End Sub

3.3.3ThisAddIn.vb模块功能及主要实现代码

ThisAddIn.vb模块用以实现幻灯片开始放映和退出放映等事件触发时要执行的操作。主要实现代码如下:

'下列代码实现当幻灯片开始放映时,启动计时器窗口开始倒计时

'以下代码实现退出放映状态时,如果时间已到或“退出放映继续计时”复选框没有勾选时,关闭倒计时窗口;否则继续倒计时。

3.4计时器插件的发布与安装

基于VSTO技术创建的PowerPoint 2010外接程序可以使用Visual studio 2010自带的发布程序进行打包发布[8]。安装时,双击发布后的安装包,按提示进行安装即可。安装成功后启动PowerPoint 2010软件,计时器插件会自动完成加载,如图4所示。

图4 插件安装后PowerPoint 2010的启动界面

4 计时器插件的实际使用效果

计时器插件安装成功后,单击“开/关”按钮,打开计时器,并设置好倒计时时间。当幻灯片开始放映时,计时窗口会自动弹出,并开始倒计时,如图5所示。

如果勾选了“退出放映继续计时”复选框,则当退出幻灯片放映状态时,倒计时仍然继续。如图6所示。

图5 幻灯片放映状态下工作的计时器

图6 退出幻灯片放映状态继续工作的计时器

当倒计时结束时,演示文稿将被关闭,并弹出“时间到”提示对话框,如图7所示。

图7 "时间到"提示对话框

通过真实演讲比赛和答辩陈述现场测试,该计时器插件计时准确可靠,并能以强制退出幻灯片放映状态或关闭演示文稿等技术手段对超时情况进行干预,使用效果良好。

5 结 论

文中介绍了基于VSTO技术的Office计时器插件的设计与实现方法。该插件可以在演讲者放映幻灯片时开始启动计时,而且在演讲者无意或因其他操作需退出幻灯片放映状态时,仍可继续计时,从而保证整个演讲过程计时的连续性。同时,还可以通过计时结束时强制退出幻灯片放映状态或关闭演示文稿等手段对超时情况进行干预,从技术层面保证行为与时效的一致统一,经实践证明该插件使用效果良好。

[1]王海波,王兆华.Excel查找扩展组件SearchPro4Excel的开发和应用[J].计算机与现代化,2013(1):137-140.

[2]张印.基于VSTO的高校毕业论文格式化处理软件的设计与实现[D].北京:北京邮电大学,2012.

[3]朱正杰,郑晖,罗洋洋.基于VSTO的开发区土地集约利用评价工具设计与开发[J].安徽农业科学,2015(13):313-316.

[4]甄艳玲,孙智勇.基于继续教育的计算机考试系统的设计与实现[J].计算机与现代化,2012(11):119-122.

[5]韩立杰.基于VSTO的Office评分系统研究 [D].石家庄:河北科技大学,2010.

[6]鲁琴,罗武胜,赵梦伟.基于VSTO技术和安卓手机的高校互动反馈教学系统设计[J].中国教育技术装备,2014(12): 26-28.

[7]顾晟.基于VSTO的智能文档在企业环保信息调查系统中的应用[J].计算机系统应用,2010,19(1):114-118.

[8]史兆彦,戴长华,周岩.基于VSTO技术的船岸同步软件的设计与实现[J].上海船舶运输科学研究所学报,2014,37 (3):37-43.

The design and implementation of Office timer plug-in based on VSTO technology

ZHANG Wei-wei1,WU Yu-feng2,LIU Ren-quan1,WANG Ping1
(1.Information Center,Beijing University of Chinese Medicine,Beijing 100029,China;2.Academic Affairs Office,Beijing University of Chinese Medicine,Beijing 100029,China)

The timer is widely used in the speech contest,defense statement and other occasions that needing for a limited time to complete.In view of the actual application that the timer can only play a role of timing,and cannot really interfere with the speaker’s speech timeout behaviors,this paper introduces the design and implementation methods of Office timer plug-in based on VSTO technology.This timer plug-in,when the speaker accidentally or because of other operations needs to exit the slide show state,can still continue to time,so as to ensure the continuity of the whole speech process.At the same time,it can also be used to intervene in the timeout by forced exiting slide show state and closing the presentation,from the technical level to ensure the consistency of the behavior and time,the time plug-in has been proved to be effective by practice.

VSTO;timer;plug-in;PowerPoint;Visual Studio

TN919

A

1674-6236(2016)11-0031-04

2015-10-14稿件编号:201510085

北京市青年英才计划项目(YETP0820)

张未未(1979—),男,山东莱芜人,硕士,讲师。研究方向:数据库应用技术、办公自动化。

猜你喜欢
计时器演讲者倒计时
松鼠的计时器
超高精度计时器——原子钟
抗缪勒氏管激素:卵巢功能的计时器!
会计时的话筒
阅读自然的艺术
竖向固定电火花打点计时器的技巧
生日快乐等2则