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]形式的字串, 以']'为结束符。

程序太简单,不多说了.

相关文章推荐

黑龙江省对地观测与导航工程技术研究中心正式通过科技厅备案

http://www.imagehlj.com/show.php?cid=27&id=1501 黑龙江省对地观测与导航工程技术研究中心正式通过科技厅备案 来源:文: 周泉 发布时间:2017-...
  • zzh_my
  • zzh_my
  • 2017年12月10日 20:39
  • 221

工程项目CPU卡读取数据信息。

/**  * 设备服务,用于在后台运行,发送命令和接收数据  * 在服务初始化时,执行串口打开,设备电源开启,  * 获取串口输入输出流  * 启动读数据线程  *DeviceService...

stm32_015_stm32工程设置程序下载到flash中

stm32工程设置程序下载到flash中

maven工程将main函数打成jar包

现将POM.xml文件的代码粘贴如下: [html] view plain copy project xmlns="http://maven.apa...

【机器学习】Sklearn特征工程构建与优化

特征工程的构建与优化,处理缺失值以及归一化。

SpringBoot小白教程 (一): 使用Maven新建SpringBoot工程

SpringBoot小白教程 (一): 使用Maven新建SpringBoot工程1.运行环境操作系统:Ubuntu 17...
  • raphero
  • raphero
  • 2017年12月07日 01:44
  • 9

iOS开发技巧-工程Product下生成的.app,.a文件沙盒路径

Xcode编译之后Product目录中的.app文件去哪儿了? 为什么你show in finder找不到该 app文件呢? 下面帮你找到: 我们使用Xcode编写ios或者Mac OS X应用时,会...

在eclipse中将android工程打包成apk

1.)生成keystore 按照下面的命令行 在C:\Program Files\Java\jdk1.6.0_10\bin>目录下,输入keytool -genkey -alias android....

命令行编译运行java工程

平时建立java工程都是借助eclipse或intellij这些ide编辑器来构建,对于java工程的实际编译执行原理,从未了解过。作为一个曾经的C++程序员,对于源码刨根问底的那份执着从未丢过。于是...

sbt构建scala工程并导入scala-eclipse开发spark

本文介绍sbt构建Scala工程的步骤,以及导入scala-eclipse后如何开发spark项目和编译打包部署程序的。 参考: http://www.tuicool.com/articles/f2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Daytip工程
举报原因:
原因补充:

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