CnClock桌面时钟-Winform小程序开发

简介:

过年回家也上不了网,前两天闲得无聊就自己研究了一个小程序。先看一下程序的界面:

界面一:

界面二:

 

这个小程序大概用了一天多的时间编写出来,功能比较简单,该程序具有的功能:

1.可以显示日期,当前时间,星期,农历。

2.程序可以吸附在桌面上,实现嵌入桌面的效果。

3.可以设置程序为开机自启动。

 

下面贴出部分主要代码:

复制代码
  // 设置吸附桌面功能 
  private  void 吸附桌面ToolStripMenuItem_CheckStateChanged( object sender, EventArgs e) 
 ...{ 
  // 默认为勾选状态(吸附桌面),点击后即触发该事件,“吸附桌面”项勾掉了,则变量ischecked为!ischecked(false), 
 
// 则可以移动窗体。再次点击该菜单项,ischecked为!ischecked(true),则不能移动窗体。 
 
// checkstate发生变化 
 ischecked = !ischecked; 
  if (ischecked ==  true
 ...{ 
 勾选但不移动的处理 #region 勾选但不移动的处理(如果用户勾选了该项,但是并没有移动程序的位置,则进行该项判断)
  // 2012年1月31日0:27:44 解决思路: 
 
// 先判断ini文件是否存在,如果是第一次启动程序或ini文件丢失,则无ini文件, 
 
// 则没有上次保存的ini配置信息,不进行读取操作,否则 
 
// 先从ini文件中读取上次设定的x,y的坐标值,作为old_x,old_y。再将新的坐标值与旧的 
 
// 坐标值进行比较,如果窗体移动了,则比较后不同,进行写入ini操作,否则不写入 
 
  if (File.Exists(pathbase +  " CnClock.ini ")) 
 ...{ 
  try 
 ...{ 
 StreamReader sr =  new StreamReader(pathbase +  " CnClock.ini ", Encoding.GetEncoding( " gb2312 ")); 
  if (sr.Peek() >=  0
 ...{ 
 old_x = Convert.ToInt32(sr.ReadLine()); 
 old_y = Convert.ToInt32(sr.ReadLine()); 
 } 
 sr.Close(); 
 } 
  catch (Exception ex) 
 ...{ 
 MessageBox.Show(ex.Message.ToString()); 
 } 
 } 
  #endregion 
  // 2012年1月30日22:34:43,又想到一个新问题:如果用户勾选了“吸附桌面”项后,没有移动该窗体的位置, 
 
// 这种情况下是否要判断一下新位置与原位置是否相同??? 经考虑,需设定! 
 
// 2012年1月31日0:21:04 设置完成,代码见 #勾选但不移动的处理 部分 
 
 
// 什么时候才会执行下面这句代码“yidong = false;” 呢? 
 
// 分析:在form_load时不会执行,只有当用户移动窗体后,再选中"吸附桌面"项后才会执行 
 
// 这句代码,所以这里才是控制什么时候将新的位置坐标写入ini文件的地方,在这句下面写相应代码 
 yidong =  false
 
 
  // 如果用户勾掉了“吸附桌面”选项,则窗体可以移动,待用户确定新位置后, 
 
// 如果用户不勾上“吸附桌面”菜单项,则不记录新位置坐标,否则将新位置的坐标写入ini配置文件中。 
  try 
 ...{ 
  // 获取窗体移动后的坐标(_x,_y) 
 _x =  this.Location.X; 
 _y =  this.Location.Y; 
  // 勾选但不移动的处理(部分代码) 
 xin_x =  this.Location.X; 
 xin_y =  this.Location.Y; 
 
  // 相或,一真为真。即如果x不同或y不同或两个都不同,则说明窗体位置发生变化了 
 
// 须执行写入操作 
 
// 勾选但不移动的处理(部分代码) 
  if (!(xin_x == old_x) || !(xin_y == old_y)) 
 ...{ 
 StreamWriter sw =  new StreamWriter(pathbase +  " CnClock.ini "false, Encoding.GetEncoding( " gb2312 ")); 
 sw.Flush(); 
 sw.WriteLine(_x); 
 sw.WriteLine(_y); 
 sw.Close(); 
  // 新位置确认后给予提示 
  this.notifyIcon1.ShowBalloonTip( 5" CnClock提示 "" 新位置已设定! ", ToolTipIcon.Info); 
 } 
 } 
  catch (Exception ex) 
 ...{ 
 MessageBox.Show(ex.Message.ToString()); 
 } 
 } 
  else 
 ...{ 
 yidong =  true
 } 
 }
 
 
 
  设置开机自启动功能:

 
 
  
复制代码
// 设置开机启动功能 
  private  void 开机启动ToolStripMenuItem_CheckStateChanged( object sender, EventArgs e) 
 ...{ 
  /* 设计思路: 2012年1月31日16:00:47完成 
 * 默认开机启动,则在form_load中先执行一下设置autorun方法。 
 * 用户勾掉“开机启动”项后,则取消autorun,用户勾选“开机启动”项后,则设置autorun。 
 
*/ 
  // 初始为开机启动,则isautorun初始为true,当用户点击该项后,isautorun为false,不开机启动。 
 isautorun = !isautorun; 
  if (isautorun ==  true
 ...{ 
  // isautorun为true,开机启动 
 auToRun.SetAutoRun(Application.ExecutablePath,  true); 
  // 设置为开机启动后给予提示 
  this.notifyIcon1.ShowBalloonTip( 5" CnClock提示 "" 开机启动已设定! ", ToolTipIcon.Info); 
 } 
  else 
 ...{ 
  // isautorun为false,开机不启动 
 auToRun.SetAutoRun(Application.ExecutablePath,  false); 
  // 设置为开机不启动后给予提示 
  this.notifyIcon1.ShowBalloonTip( 5" CnClock提示 "" 已关闭开机启动! ", ToolTipIcon.Info); 
 } 
 }
复制代码
 
 
 
 
程序下载地址:CnClock1.0版: http://dl.dbank.com/c0qbry08qv
            CnClock2.0版: http://dl.dbank.com/c0m78h7dty
            如果以上页面无法下载可到下面页面下载: http://www.kuaipan.cn/index.php?ac=file&oid=5028779638390791
 
 
说明:两个版本的区别是1.0版是方形显示的,2.0版是条形显示的(见文首图片)。
 
该程序需要.net Framework2.0或以上版本支持。
 
复制代码
目前发现的一个小问题:

在程序选择是否支持开机启动时,要操作注册表。如果用户电脑上装有360安全卫士或QQ电脑管家等管理软件,会弹出提示信息。如果用户选择了不允许操作注册表,则程序弹出异常提示,注册表信息不会写入,但写入正确的气泡提示信息还会弹出来。这个地方还需要修改一下。

 
本人还是新手,如果代码有编写的不完善的地方还请大家多多指教。
 

 

本文转自 酷小孩 博客园博客,原文链接: http://www.cnblogs.com/babycool/archive/2012/02/02/2335655.html ,如需转载请自行联系原作者

相关文章
预约按摩小程序开发,为什么很多上门按摩平台根本招聘不到优秀技师?
上门按摩平台面临招不到优秀技师的问题,主要原因是平台众多,技师选择多样。为解决此问题,平台可引入技师等级制度,根据订单数量和好评率划分高、低等级技师。高等级技师可享受70%-90%的高提成及首页推荐,这不仅能激励技师的积极性,还能帮助平台筛选出优质技师,提升服务质量和口碑,形成良性循环。
|
10天前
|
人工智能 小程序
【一步步开发AI运动小程序】十五、AI运动识别中,如何判断人体站位的远近?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,无需后台支持,具有快速、体验好、易集成等特点。本文介绍如何利用插件判断人体与摄像头的远近,确保人体图像在帧内的比例适中,以优化识别效果。通过`whole`检测规则,分别实现人体过近和过远的判断,并给出相应示例代码。
|
4天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
9天前
|
人工智能 小程序 UED
【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,本地引擎无需后台支持,具备快速、体验好、易集成等优势。本文介绍如何利用插件的`camera-view`功能,通过检测人体站位视角(前、后、左、右),确保运动时的最佳识别率和用户体验。代码示例展示了如何实现视角检查,确保用户正或背对摄像头,为后续运动检测打下基础。
|
22天前
|
人工智能 小程序 IDE
【一步步开发AI运动小程序】九、姿态辅助调试桌面工具的使用
随着AI技术的发展,各大厂商推出的AI运动APP如“乐动力”、“天天跳绳”等,使云上运动会、线上健身等概念大热。本文将指导你如何利用“云智AI运动识别小程序插件”,在微信小程序中实现类似功能,包括工具搭建、服务启动及数据回传等步骤,助力开发者高效开发AI运动小程序。
【一步步开发AI运动小程序】九、姿态辅助调试桌面工具的使用
|
15天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十三、自定义一个运动分析器,实现计时计数02
本文介绍如何利用“云智AI运动识别小程序插件”开发AI运动小程序,详细解析了俯卧撑动作的检测规则构建与执行流程,涵盖卧撑和撑卧两个姿态的识别规则,以及如何通过继承`sports.SportBase`类实现运动分析器,适用于小程序开发者。
|
15天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十二、自定义一个运动分析器,实现计时计数01
随着AI技术的发展,AI运动APP如雨后春笋般涌现,如“乐动力”、“天天跳绳”等,推动了云上运动会、线上健身等热潮。本文将指导你从零开始开发一个AI运动小程序,利用“云智AI运动识别小程序插件”,介绍运动识别原理、计量方式及运动分析器基类的使用,帮助你在小程序中实现运动计时和计数功能。下篇将继续探讨运动姿态检测规则的编写。
|
8天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
39 8
|
25天前
|
人工智能 JSON 小程序
【一步步开发AI运动小程序】八、利用body-calc进行姿态识别
随着AI技术的发展,各大厂商推出的如“乐动力”、“天天跳绳”等AI运动APP,使得云上运动会、线上健身等概念风靡一时。本文将引导读者从零开始开发一个AI运动小程序,使用“云智AI运动识别小程序插件”,介绍人体姿态检测规则、规则编写语法、执行检测规则运算及姿态检测实战等内容,助力开发者轻松实现AI运动小程序的开发。
【一步步开发AI运动小程序】八、利用body-calc进行姿态识别
|
4天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
下一篇
DataWorks