用C#做个带精灵的邮件通知程序

来源:网络收集 责任编辑:栏目编辑 发表时间:2013-07-01 09:06 点击:
? Visual C#是微软公司推出的下一代程序开发语言,是微软.Net框架中的的一个重要组成部分。微软的.Net平台堪称为新一代的互联网平台。对于技术开发人员来说,.Net平台的两大特性是非常卓越的,首先是其所提供的公共语言运行时,也就是公用语言运行平台,另一方面就是其庞大而全面的统一编程类。Visual C#就是通过调用这些类、对象来实现许多比较强大的功能。

   在互联网应用中,电子邮件一直占据着重要的位置。互联网上每天都有大量的电子邮件,我们每天都要花时间去收发邮件,而有时却收不到一封邮件,有时却很多。要是我们能做一个邮件通知程序就好了。本文就向大家介绍用C#做个邮件通知程序,同时也向大家展示一下C#编程的一些特性。

一. 简介:

这个邮件通知程序是一个用来通知用户的邮件服务器中是否有新邮件的TCP/IP程序。程序还带有一个精灵来通知用户具体的新邮件数,所以用户界面比较新奇。程序每隔5分钟就自动连接到邮件服务器进行新邮件的检查。用户还可以对程序进行配置:设置时间间隔,设置邮件服务器地址以及端口号,设置用户名以及密码。此程序还是居于系统托盘的,所以是在后台运行的。

二. 工程步骤:

1. 在VS.net下新建一个C#的Windows应用程序的工程,不妨命名为“EmailNotifier”。



图1
2. 设计主界面和精灵界面:

先将主窗体的ShowInTaskbar属性设置为false,FormBorderStyle属性设置为FixedDialog,Text属性设置为“配置参数”。

再在主窗体上添加五个标签控件(Label Control)、五个文本框控件(TextBox Control)、两个按钮控件(Button Control)、一个系统托盘控件(NotifyIcon Control)、一个上下文菜单控件(ContextMenu Control)以及一个时钟控件(Timer Control)。

对各个控件进行属性设置:将五个标签的Text属性分别设置为“邮件服务器地址:”、“服务器端口:”、“用户名:”、“密码:”、“时间间隔(毫秒):”;将五个文本框的Name属性分别设置为:“ServerAdd”、“ServerPort”、“Username”、“Password”、“TimeSpan”;将前四个文本框的Text属性均设置为空,将最后一个的设置为300000(因为我们默认的时间间隔为5分钟);还有把第四个文本框的PasswordChar属性设置为“*”,这样输入的时候就隐藏了密码;把按钮控件的Text属性设置为“隐藏”和“检查邮件”;将系统托盘的Icon属性设置为一个图标文件;在上下文菜单下添加三个子项“配置参数”、“检查邮件”、“退出”。

这样主界面已经设计完毕,图示如下:


图2

接着设计精灵界面。

我们用到的精灵是用Microsoft Agent创建的,它是完全居于COM的,所以我们可以很方便的利用它。有关它的详细信息,可以参考微软网站上的资料,网址为:http://www.microsoft.com/msagent/downloads.htm。先从那里下载以下一些东西:

(1)Microsoft Agent核心组建

(2) Microsoft Agent的精灵:吉尼(Genie)、么林(Merlin)、罗比(Robby)和皮蒂(Peedy)

(3)至少有一个英语的Text-to-Speech引擎(现在还找不到中文的)

(4)微软运行时发音API4.0a

有了这些,我们就可以在我们的任何程序中应用了,只要在程序中添加此ActiveX控件即可。

我们先添加一个新的窗体Form2,图示如下:



图3

在新添加的窗体上我们要用到Microsoft Agent这个控件,于是就导入它到该工程中,图示如下:



图4

现在,我们的工具箱里已经有了相应的控件,我们就可以直接使用了。(在程序运行时这个控件是不可见的)

(如果读者有兴趣的话,可以到我的另一篇有关Microsoft Agent控件的文章:http://www.computerworld.com.cn/htm/app/aprog/01_12_29_2.asp看看)
3. 重要的代码部分:

在主窗体的代码部分,因为我们要用到网络以及网络流等类的对象,所以首先得添加以下几个重要的名字空间(Namespace):

using System.Net;

using System.Net.Sockets;

using System.IO;

using System.Text;

接着,给我们的类添加一个NetworkStream对象来控制网络中的流。

private NetworkStream netStream;

给该类的构造函数添加如下代码,设置时钟的时间间隔以及使程序一开始就不可见而只有系统托盘。

timer1.Interval=Int32.Parse(TimeSpan.Text);//设定时间间隔

this.Opacity=0;//使窗体不可见

我们用到一个重要的函数EmailCheck()。这个函数先新建一个TcpClient对象进行网络连接,用一个t

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • 用C#制作屏幕捕获程序
      • .NET程序员项目开发必知必会—Dev环境中的集成测试用例执行时上
      • 遍历ArrayList易犯错误
      • C#对XML操作:一个处理XML文件的类(1)
      • .NET简谈反射(动态调用)
      • 使用C#编写LED样式时钟控件
      • DataList嵌套问题 如何删除内层子DataList的记录
      • 怎样用C#实现完整文档打印功能
      • .NET简谈自定义事务资源管理器
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1