1. 程式人生 > >實現ppt幻燈片播放倒計時

實現ppt幻燈片播放倒計時

需求:為控制會議時間,採取ppt幻燈片播放倒計時的辦法,倒計時5分鐘。

分析:用EnumWindows列舉視窗,發現PPT視窗類名有三種:PP12FrameClass、MS-SDIb、screenClass。其中screenClass代表全屏播放視窗。

設計思路:在timer控制元件中用FindWindow檢查有無screenClass的視窗,用TimeSpan倒計時。

程式碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using
System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Windows.Forms; namespace pptClock { public partial class Form1 : Form { [DllImport("user32.dll", EntryPoint = "FindWindow")] private extern static IntPtr FindWindow(string
lpClassName, string lpWindowName); TimeSpan ts ;//設定播放限時器 public Form1() { InitializeComponent(); this.timer1.Enabled = true; this.timer1.Interval = 1000; } private void timer1_Tick(object sender, EventArgs e) { IntPtr hwnd
= FindWindow("screenClass", null); if (hwnd != IntPtr.Zero)//有全屏播放的PPT { ts = new TimeSpan(0, 5, 0);//計時5分鐘 ts = ts.Subtract(new TimeSpan(0, 0, 1));//每隔一秒減去一秒 this.Text = ts.Minutes.ToString() + ":" + ts.Seconds.ToString(); this.Show();//顯示計時視窗 this.BringToFront(); this.TopMost = true; } else {//沒有ppt在播放 this.Hide(); } } } }