国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

VB程序?qū)崿F(xiàn)PPT演示文稿記時(shí)

2018-03-21 09:07張玉虎
電子技術(shù)與軟件工程 2018年2期
關(guān)鍵詞:VB程序設(shè)計(jì)

摘 要 在電腦、網(wǎng)絡(luò)普及的今天,PPT(PowerPoint)以其制作簡(jiǎn)單,功能強(qiáng)大,被廣泛運(yùn)用在專題講座、工作匯報(bào)、項(xiàng)目申報(bào)、單位年終述職、述廉等工作中。 比如在單位年終述職、述廉工作中,因?yàn)閰⒓拥娜藛T較多,為了公平起見(jiàn),給每人限定時(shí)間用PPT演示文稿對(duì)自己的工作做介紹,所以設(shè)計(jì)一款小程序?qū)PT演示文稿進(jìn)行記時(shí)有一定的實(shí)用價(jià)值,本文以限定6分鐘演示時(shí)間為例,介紹VB程序設(shè)計(jì)、實(shí)現(xiàn)的全過(guò)程。

【關(guān)鍵詞】VB程序設(shè)計(jì) PPT演示文稿 記時(shí)

1 引言

本程序?yàn)轳v留程序,設(shè)計(jì)監(jiān)測(cè)、顯示、處理三個(gè)模塊,監(jiān)測(cè)模塊一旦監(jiān)測(cè)到PPT演示文稿運(yùn)行,立即調(diào)用顯示模塊顯示PPT文稿演示時(shí)間,如果演示時(shí)間到,處理模塊將關(guān)閉PPT演示文稿,并提示:演示時(shí)間到。

程序流程圖如圖1所示。

2 實(shí)現(xiàn)過(guò)程

2.1 處理模塊的實(shí)現(xiàn)

該模塊的主要功能是關(guān)閉PPT文件,定義一個(gè)Killppt(Sppt As String)過(guò)程實(shí)現(xiàn)。

Private Sub KILLppt(sPPT As String)

Dim PPTSSot As Long

Dim PPTppss As Long

Dim PPTpe As PPTRY32

PPTSSot = CreateToolhelp32Snapshot(&H2;&, 0&)

If PPTSSot <> -1 Then

PPTpe.PPTSize = Len(PPTpe)

PPTppss = Process32First(PPTSSot, PPTpe)

Do While PPTppss

If LCase$(sPPT) = LCase$(Left(PPTpe.PPTexitfl, InStr(1, PPTpe.PPTexitfl, Chr(0)) - 1)) Then

Dim PPTss11 As Long

Dim PPTcode As Long

PPTss11 = OpenProcess(1, False, PPTpe.PPT32pss)

TerminateProcess PPTss11, PPTcode

CloseHandle PPTss11

End If

PPTppss = Process32Next(PPTSSot, PPTpe)

Loop

CloseHandle (PPTSSot)

End If

End Sub

2.2 監(jiān)測(cè)模塊的實(shí)現(xiàn)

該模塊主要檢測(cè)PPT演示文稿的運(yùn)行,一旦監(jiān)測(cè)到PPT演示文稿啟動(dòng)運(yùn)行,調(diào)用顯示模塊開(kāi)始對(duì)PPT演示文稿運(yùn)行時(shí)間進(jìn)行倒記時(shí),并在屏幕最上方顯示倒記時(shí)效果,一旦設(shè)定的PPT文稿演示時(shí)間到,該模塊調(diào)用處理模塊關(guān)閉PPT演示文稿,并提示“您的演示時(shí)間到”信息;該模塊還有一個(gè)功能就是保證顯示模塊一直處在最上面透明顯示,不因?yàn)檠菔菊卟僮麟娔X影響顯示效果,通過(guò)VB時(shí)鐘控件實(shí)現(xiàn),主要程序代碼如下:

Private Sub Timer1_Timer()

'如何窗體不在最前面,就把窗體放到最前面并透明

If pptrtValue <> SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX, Me.CurrentY, 300, 300, SWP_SHOWWINDOW) Then

Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3) '調(diào)用窗體處理的API函數(shù),“通用“處申明

Me.BackColor = vbRed '透明色為紅色

SetWindowLong Me.hwnd, -20, GetWindowLong(Me.hwnd, -20) Or &H80000;

SetLayeredWindowAttributes Me.hwnd, vbRed, 0, 1

Label1.BackColor = Me.BackColor

End If

BorderStyle = 0

If Exitppt("POWERPNT.EXE") Then '檢測(cè)進(jìn)程

a = Val(a) - 1

If a = 0 Then

a = 60

b = Val(b) - 1

End If

Label1.Caption = b & "分鐘" & a & "秒" '顯示模塊顯示PPT演示文稿倒計(jì)時(shí)

If b = 0 And a = 1 Then

a = a - 1

Call KILLppt("POWERPNT.EXE") '調(diào)用處理模塊關(guān)閉演示文稿

Label1.Caption = "您的時(shí)間倒,謝謝!"

a = 60

b = 5

End If

Else

a = 60

b = 5

End If

End Sub

2.3 顯示模塊的實(shí)現(xiàn)

顯示模塊也就是程序的界面,程序運(yùn)行后駐留內(nèi)存,當(dāng)監(jiān)控模塊監(jiān)控倒PPT演示文稿運(yùn)行時(shí),程序界面在屏幕左上方出現(xiàn),顯示PPT演示文稿倒記時(shí)效果,程序代碼如下:

Private Sub Form_Load()

Call SetWindowPos(Me.hwnd, -1, 0, 0, 0, 0, 3)

Me.BackColor = vbRed '透明色為紅色

SetWindowLong Me.hwnd, -20, GetWindowLong(Me.hwnd, -20) Or &H80000;

SetLayeredWindowAttributes Me.hwnd, vbRed, 0, 1

Label1.BackColor = Me.BackColor

a = 60

b = 5

End Sub

3 幾點(diǎn)說(shuō)明

(1)為了提高編程效率,本程序使用了以下幾個(gè)窗體處理和程序線程、句柄處理的API函數(shù),可以在窗體代碼的“通用部分”聲明,本文略。

SetWindowPos,SetWindowLon,SetLayerpptedWindowAttrpptibute,GetWindowLong

CreateToolhelp32Snapshot,Process32First,Process32Next,OpenProcess,TerminateProcess, CloseHandle

(2)程序需要的數(shù)據(jù)結(jié)構(gòu)如下,窗體代碼“通用部分”聲明。

Private Type PPTRY32

PPTSize As Long

PPTUge As Long

PPT32pss As Long

PPTfls As Long

PPTexitfl As String * MAX_PPT

End Type

Const PPT_PALL = (&H1; Or &H2;& Or &H4; Or &H8;)

Const MAX_PPT As Integer = 260

Dim a as integer

Dim b as integer

(3)程序在固原市氣象局多年運(yùn)行穩(wěn)定,程序運(yùn)行后駐留內(nèi)存,無(wú)任何操作界面,倒記時(shí)顯示醒目,受到喜愛(ài)。

(4)在窗體代碼“通用部分”申明Exitppt函數(shù),該函數(shù)為Boolean類型,用于遍歷內(nèi)存中是否有PPT文件運(yùn)行,供監(jiān)控模塊調(diào)用,函數(shù)如下:

Function Exitppt(ByVal PPTexe As String) As Boolean

Exitppt = False '先將該函數(shù)過(guò)程賦值為假

Dim PPT_Hshot As Long, PPT_pcess As PROCESSENTRY32

PPT_Hshot = CreateToolhelp32Snapshot(PPT_PALL, 0&) '給系統(tǒng)進(jìn)程創(chuàng)建快照,調(diào)用成功 則返回快照的句柄

PPT_pcess.dwSize = Len(PPT_pcess)

r = Process32First(PPT_Hshot, PPT_pcess) '初始遍歷進(jìn)程

Do While r

If Left$(PPT_pcess.szExeFile, IIf(InStr(1, PPT_pcess.szExeFile, Chr$(0)) > 0, InStr(1, PPT_pcess.szExeFile, Chr$(0)) - 1, 0)) = PPTexe Then 'left '通過(guò)進(jìn)程列表,判斷是否有PPT文件運(yùn)行

Exitppt = True '該函數(shù)返回真 進(jìn)程存在

Exit Do '循環(huán)退出

End If

r = Process32Next(PPT_Hshot, PPT_pcess) '遍歷下一個(gè)進(jìn)程

Loop

End Function

4 程序運(yùn)行效果

參考文獻(xiàn)

[1]王娟,黃耀群.基于C++ Builderppt 的串口通信程序?qū)崿F(xiàn)方法[J].煤礦電氣,2014(02).

作者簡(jiǎn)介

張玉虎,寧夏固原市氣象局工程師,從事氣象設(shè)備保障維護(hù)工作。

作者單位

寧夏固原市氣象局 寧夏回族自治區(qū)固原市 756000

猜你喜歡
VB程序設(shè)計(jì)
淺析VB程序設(shè)計(jì)教學(xué)方法的改革
感悟初中程序設(shè)計(jì)教學(xué)
VB程序設(shè)計(jì)的教學(xué)改革思考
食品專業(yè)的《VB程序設(shè)計(jì)》教學(xué)方法探究
承德县| 澜沧| 杭州市| 上栗县| 平度市| 司法| 禹州市| 通化市| 湟中县| 河源市| 方山县| 灵川县| 青铜峡市| 双峰县| 永登县| 乌鲁木齐县| 攀枝花市| 维西| 长治市| 阜城县| 时尚| 大洼县| 武清区| 岳池县| 开封市| 密山市| 呼图壁县| 巴南区| 松阳县| 德令哈市| 从江县| 额尔古纳市| 辛集市| 定襄县| 平度市| 神木县| 肥城市| 九龙坡区| 汉阴县| 边坝县| 阳高县|