开放式开发/开源项目-TimeDog[C#WindowsApp]

TimeDog软件开发交流与需求介绍

Update@2005.8.19
TimeDog最新版本 v13
下载地址
http://www2.zzu.edu.cn/xb/timedog.exe
源代码这里下载
http://www2.zzu.edu.cn/xb/timedog_src.rar

TimeDogSeeV13.jpg
==============
本人以前做过不少的ASP.NET的web应用程序开发,但是,在桌面应用程序开发方面不熟悉,基本没有开发过这方面的软件,如今,本人想通过共同开发来交流,利用业余时间使自己具有开发应用软件的经验,希望C#初学者,或者已经掌握C# Windows应用程序开发的.net爱好者与我交流.QQ:154222225.

项目初步需求如下:

名称:TimeDog
实现功能:能够累计计算电脑从某时刻起,其运行的总体时间.软件随操作系统启动,并开始计时,用户关闭操作系统时,存储运行时间,以便和下次的运行时间进行累加.操作系统运行时期内,不允许用户结束本软件进程.

共同开发人员:
#caca(卡卡) http://www.cnblogs.com/caca
#frogman http://www.cnblogs.com/frogman/

开发进度如下:
1,在优快云发表的求助:http://community.youkuaiyun.com/Expert/topic/3797/3797941.xml?temp=.8971979
2,自启动解决方案:

使程序开机自动运行(修改注册表?):
将你的程序加入“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”

None.gif // 自动运行
None.gif
RegistryKey hklm  =  Registry.LocalMachine ;
None.gifRegistryKey run 
=  hklm.OpenSubKey (  @" SOFTWARE\Microsoft\Windows\CurrentVersion\Run "  ,  true  ) ;
None.gif        
None.gif
if (run.GetValue(  " LookOut " ==   null )
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
string eFileName=Application.ExecutablePath + "      ";//含可执行文件名
InBlock.gif
    run.SetValue ( "LookOut" , exeFileName ); 
ExpandedBlockEnd.gif}
                
None.gifrun.Close();
None.gifhklm.Close();

3,关于.NET的Hooks
http://www.codeproject.com/csharp/GlobalSystemHook.asp
4,自启动以及计时功能已经初步实现,考虑到微量数据的存储,暂时直接存储到注册表内部.
None.gif          private   void  Form1_Load( object  sender, System.EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//检测注册表项是否已经设置了自动启动
InBlock.gif
            RegistryKey LM=Registry.LocalMachine;
InBlock.gif            RegistryKey run
=LM.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
InBlock.gif            
if(run.GetValue("TimeDog")==null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                
string exeFileName=Application.StartupPath+@"\TimeDog.exe";
InBlock.gif                run.SetValue(
"TimeDog",exeFileName);
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
//设置注册表项,用来存储系统运行时间
InBlock.gif
            if(run.GetValue("TimeDogRunTime")==null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                run.SetValue(
"TimeDogRunTime","00:00:00");
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
//设置开始时间
InBlock.gif

InBlock.gif            run.SetValue(
"TimeDogStartTime",DateTime.Now.ToString());
InBlock.gif
InBlock.gif            
//系统运行时间
InBlock.gif
            MessageBox.Show("系统运行了:"+run.GetValue("TimeDogRunTime").ToString());
InBlock.gif            run.Close();
InBlock.gif            LM.Close();
ExpandedBlockEnd.gif        }

None.gif
None.gif
private   void  Form1_Closing( object  sender, System.ComponentModel.CancelEventArgs e)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
//用户关闭窗口时候,计算程序运行时间,并存入注册表
InBlock.gif
            RegistryKey LM=Registry.LocalMachine;
InBlock.gif            RegistryKey run
=LM.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true);
InBlock.gif            TimeSpan LastAll
=(TimeSpan)(Convert.ToDateTime(run.GetValue("TimeDogRunTime")).TimeOfDay);//获得上次总体运行时间
InBlock.gif
            DateTime TimeDogStartTime=Convert.ToDateTime(run.GetValue("TimeDogStartTime").ToString());//获得本次开始运行时间
InBlock.gif
            TimeSpan ts=DateTime.Now-TimeDogStartTime;//本次运行时间
InBlock.gif
            TimeSpan AllTime=LastAll+ts;//本次在内的总体时间
InBlock.gif
            if(run.GetValue("TimeDogRunTime")==null)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                run.SetValue(
"TimeDogRunTime","0");
ExpandedSubBlockEnd.gif            }

InBlock.gif            
else
InBlock.gif                run.SetValue(
"TimeDogRunTime",AllTime.ToString());
ExpandedBlockEnd.gif        }

5,实现类似QQ最小化形式的功能,参考了:
C#编写最小化时隐藏为任务栏图标的Window appllication.
6,禁止用户点击关闭按钮时关闭应用程序.
None.gif private   void  Form1_Closing( object  sender, System.ComponentModel.CancelEventArgs e)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    e.Cancle
=true;
ExpandedBlockEnd.gif}

7,项目源文件提供 下载
8,关于Windows服务程序的设计
Visual C#创建Windows服务程序
用C#创建Windows服务(Windows Services)

9,能创建一个"不死进程"的程序将更好,但是,优快云的网友说了,无法实现进制用户结束进程的,于是有人提议用进程注入,这些可能只能用汇编或者C实现了,C#应该不能实现,现在做出了Windows服务程序版本,22K的程序,而且知识在服务启动,停止的时候作些文件读取操作,但是其占用的内存(7.35M)着实不太让我满意,程序的优化又从何处着手呢?
Windows服务版本提供源代码 下载 (程序的安装参考上面的两篇文章)

10,Windows服务版本本来是禁止用户停止服务的,在用户关闭电脑的时候触发一个事件并记录时间,所以应该重写OnShutdown()函数,而不是OnStop()函数
None.gif          protected   override   void  OnShutdown()
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif {
InBlock.gif            
base.OnShutdown ();
InBlock.gif            WriteLog(
"end@"+DateTime.Now.ToString());
InBlock.gif            WriteLog(
"===========");
InBlock.gif            
//记录运行时间
InBlock.gif
            WriteTime();
ExpandedBlockEnd.gif        }
并且专门写一个TimeDogSee的东西供用户查看电脑共运行时间.

11,放两个程序的图片
(下图:程序以后台服务的形式运行,禁止停止服务)
screen2_2.jpg
(下图:程序的进程图,20K的程序,占用内存怎么那么多呢???C#写的程序“很吃内存”,有没有优化的方法呢?是不是因为后台服务程序调用了很多.net的程序集,虽然代码就几行--Microsoft简化的程序的设计难度。)
screen3_3.jpg
(下图:程序运行一段时间后,占用内存大幅度降低)
TimeDog300.gif
(下图:TimeDogSee,用来查看系统共运行的时间)
TimeDogSee.gif
12,下面的任务就是做成分布式的应用程序,我们一户为了计时收费,全部安装了本软件,于是想通过网络编程,是用户可以发送运行的时间以及详细记录,服务器也可以通过网络进行对客户端的运行时间进行控制-比如:清零。

13,关于c#方面的网络编程的书籍,记得上个学期的暑假里面看过一本书:
C# Network Programming
by Richard Blum  ISBN:0782141765
Sybex © 2003 (647 pages)
当时,还编写了一个控制台下的局域网聊天程序的,如今,打算再看看了.
里面涉及到一个网络抓包工具:WinPcap(Ethereal也是调用他实现网络抓包的),可以在这里下载:
http://netgroup-serv.polito.it/netgroup/tools.html
14,软件运行的很是成功,不过准备改进一下:
(1)加入定时计算结果,防止以外调电,或者用户或者系统关闭进程(有记录).
(2)存储的数据进行加密,路径更为隐蔽.
(3)对软件进行部署,方便安装,卸载与更新.

转载于:https://www.cnblogs.com/caca/archive/2005/02/22/107452.html

标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值