Daytip工程

原创 2006年05月28日 18:01:00

学习一门语言的最好的方法就是多写代码,但老是抄例子也容易烦.,最好就是自己想一些小工程来做,做完了,又熟悉了语言,又能解决一些小问题,或者给生活带来乐趣.

DayTip. 

思路:每天到服务器获取祝福并显示.因为属于提示类的小东西,使用notifyicon做出来比较好看.同时添加右键菜单.

部分代码:

  //帮助,关于选项
  private void menuItem4_Click(object sender, System.EventArgs e)
  {
   string strMsgInfo = "从第一个c#版的[HelloWorld]到这个[DayTip],7天时间!/r/n说掌握了一门语言有点夸张,但至少开了一个好头,也给自己打了点气:只要专心去做,就会做得精彩!/r/n好样的!!呵呵```~~/r/n/r/n本程序送给小梅子以及所有我的朋友她的朋友,祝所有人天天开心,好运相伴。/r/n有留言、祝福请email给我。";
   MessageBox.Show(strMsgInfo,"天天好心情!");
  }

  //关闭选项
  private void button3_Click(object sender, System.EventArgs e)
  {
   this.Close();
  }

  //初始化界面
  private void TrayIcon_Load(object sender, System.EventArgs e)
  {
   GetDayBless(); //显示当日祝福
   SetRightBottom(); //设置窗口位置
   menuItem1_Click(sender, e); //显示窗口
   hidetimer.Enabled = true; //开始隐藏计时
  }
  //设置程序位置在右下角
  private void SetRightBottom()
  {
   Rectangle rt = new Rectangle();
   rt = Screen.GetWorkingArea(rt);
   Point ptSet = new Point(rt.Width-160, rt.Height-120);
   this.DesktopLocation = ptSet;
  }
  //从服务器上下载祝福
  private void GetDayBless()
  {
   //download the bless file
   try{
    Stream data = client.OpenRead("http://127.0.0.1/bless.txt");
    StreamReader reader = new StreamReader(data);
    byte[] mybyte = new byte[20*1024];
    int allbyte = (int)mybyte.Length;
    int startbyte = 0;
    while (allbyte>0)
    {
     int n = data.Read(mybyte, startbyte, allbyte);
     if(n == 0){
      break;
     }
     allbyte-=n;
     startbyte+=n;
    }
    //转换成string,在string中查找当日的祝福字串
    System.Text.Encoding encoding = System.Text.Encoding.Default;
    string strAllTip = encoding.GetString(mybyte);
    string strTodayTip = GetTodayTip(strAllTip);
    g_strTodayTip = strTodayTip; //保存当日提示
    richTB.Text = strTodayTip;
    data.Close();
   }
   catch{
    return;
   }
  }
  //查找当日祝福
  private string GetTodayTip(string strAll)
  {
   //构造日期  05-23 的形式,注意小于10的用0补足。
   int iMonth = DateTime.Today.Month;
   int iDay = DateTime.Today.Day;
   string TimeString = "";
   TimeString = (iMonth<10)?"0"+iMonth.ToString():iMonth.ToString();
   TimeString += "-"+((iDay<10)?"0"+iDay.ToString():iDay.ToString());
   
   //寻找当日字串([05-23=xxxxxx]的形式, 以']'为结束符。)
   int iIndex = strAll.IndexOf(TimeString);
   int iEnd = strAll.IndexOf("]", iIndex);
   string TodayTip = strAll.Substring(iIndex+6, iEnd-iIndex-6);
   return TodayTip;
  }

  //隐藏窗口时间到(退出提示,关闭隐藏定时器)
  private void hidetimer_Tick(object sender, System.EventArgs e)
  {
   richTB.Text = "/n/n/n程序将在一分钟后退出.";
   hidetimer.Enabled = false;
   exittip.Enabled = true;
  }
  //退出时间到(关闭退出定时器,退出程序)
  private void exittimer_Tick(object sender, System.EventArgs e)
  {
   exittimer.Enabled = false;
   this.Close();
  }
  //退出提示时间到(关闭提示定时器,开启退出定时器,隐藏窗口)
  private void exittip_Tick(object sender, System.EventArgs e)
  {
   if(this.Visible)
   {
    this.Hide();
   }
   richTB.Text = g_strTodayTip;
   exittip.Enabled = false;
   exittimer.Enabled = true;
  }

从网站上下载bess.txt文件,在内存数据流中读出[05-23=xxxxxx]形式的字串, 以']'为结束符。

程序太简单,不多说了.

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

下载编译 Qt 5 for Android 并新建工程

步骤详见: http://wiki.qt.io/Android 步骤1-4略 5.安装jdk1.6.0.45: http://blog.csdn.net/zjclugger/article/det...

STVD 新建STM8L151工程

在STVD中新建一个STM8L工程

杭电-1233还是畅通工程(kruskal,prim)

还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot...

VS2013MFC单文档工程学习笔记八 - 为窗口添加一张背景图片

方法一: 1、声明成员变量CBrush m_brush; 2、在InitDialog中添加代码: CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); //IDB...
  • asaqlp
  • asaqlp
  • 2015-06-12 01:53
  • 2503

ACM-最小生成树之畅通工程再续——hdu1875

ACM 最小生成树 畅通工程再续 hdu1875 Prim

Android Library 工程实现模块复用 (代码及资源文件)

1. 情境     通常我们开发的 app 不止一个,并且这些 app 中有一些通用的模块,比如一些 util 方法或 者我们自定义的控件。通常我们将这部分代码 copy 到不同的工程中实现复用,...

PowerDesigner16.0连接MySQL5.0,建立逆向工程图解

前言:本文章只给一些刚入门的朋友提供具体图解,若你已经很熟练,请不要在此浪费你的时间。。。       平常工作中,程序员都喜欢用PowerDesigner来分析数据库中各种各样表之间的关系,几天,...

PE文件格式分析系列(文章2)----一个PE文件rdata段的分析(Win32工程Release版)(一)

PE文件格式分析系列(文章2) 一个PE文件rdata段的分析(Win32工程Release版)(一) 在分析MFC工程调试版的PE文件时, 导入表在idata段 而这个Win32工程Relea...
  • cay22
  • cay22
  • 2012-06-23 22:15
  • 2179

android工程目录结构超详细介绍

Android Projects   src/存放源代码的地方.bin/编译后的输出目录。这里你可以找到.apk文件和其他编译后的资源.gen/包含R.java文件,这个文件是由ADT自动生成的,...

登录工程三:现代Web应用中的身份验证实践

登录系统     首先,我们要为“登录”做一个简要的定义,令后续的讲述更准确。之前的两篇文章有意无意地混淆了“登录”与“身份验证”的说法,因为在本篇之前,不少“传统Web应用”都将对身份的识别看作整...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)