对我学习C#至今所写的软件做一个总结

Posted on 2008-01-25 17:14  Samson小天  阅读(2295)  评论(2编辑  收藏  举报
 

我所有程序合集

程序名称:

程序简介:

所学到的知识:

不足之处:

1.ASCII

只有一行代码的简单程序,用于获取按键的ASCII码值。

简单的控件属性设置。

2.Read Mind

读心术小游戏,在网上玩了别人的小游戏觉得很好玩,研究了半天算法后自写了一个。

动态生成控件,随机数生成原理以及tab page的使用。

标签产生随机图样用枚举就可以了,当时没学到,所以用给类的构造函数传递值的方法,造成性能损失。

3.Hot key

看到Vista新功能用Win+数字键可以对应启动快速启动栏上的程序而写。可以用Alt+数字键启动对应程序。

流的读写控制和安全、C#中系统API函数调用及其命名空间。第一次接触WinProc过程。

没有设置标签,界面难看,按键不方便且没有图标。

4.IFEO映像劫持

看了熊猫烧香病毒如何让杀毒软件失效后所写。可以让程序不能运行,也能解除IFEO映像劫持。

首次编写时学会了注册表读写。第二次更新程序时学会了如何让程序在VISTA系统权限不足的情况下自动请求管理员权限。

本来打算再写一个HOSTS劫持的。后来更新Hot Key耽搁了。

5.More Effective Key

Hot Key的更新版本,增加了标签功能,每个标签下有5个按钮,对应全局快捷键ALT 1~5,解决了ALT 6~0按键不方便的情况

学会了在容器中添加删除组件,学会了如何让程序在上次关闭的地方显示。对错误调试和编程习惯感悟颇深。第二次接触WinProc过程。

由于几乎重写代码,但是仍然用ini文件存储配置,导致程序逻辑复杂,设计困难。截至写这篇文章时仍有bug存在。

6.Ring

一个到点提醒程序。因为整天一坐到电脑上就忘乎所以,写这个程序提醒自己重要的事情。

首次编写Cute界面。对主窗体事件有初步了解。学会了ArryList的用法。

二次更新发现bug,对DateTime.toShort….string()DateTime.toString()方法加强认识。

ListView显示历史记录按照升序排列。使用后才发现其实用降序比较好。

提醒消息处理完后会有小bug,不过不影响使用。

7.USB Lock

一个U盘锁。看了电脑爱好者杂志上一篇文章。关于让计算机只有插入正确的U盘才能解锁电脑后自己实现的。

首次编写带有DLL的软件。

初步了解了WndProc过程,并在Win32学习过程中得到印证。初步了解了句柄的含义。

程序在锁住鼠标方法上采用Timer控件的方法与网上重写gina.dll和用全局鼠标键盘HOOK相比效率较低

--------

        我是从大一第二学期的暑假开始学习C#的,现在是大二第一学期的寒假。
        第一次觉得C#学得“差不多”是在看完《C#入门经典》的时候。可是当我开始写HotKey的时候才知道C#原来还有很多我不知道的啊~那时是因为HotKey用到了改变了一项之后需要重新读取配置文件。那时候还不会用委托,结果只能用appication.restart,然后再Form_load里重新载入配置。现在想起来还真是好笑啊。
    后来是在写完ring之后。觉得自己在C#也算有小小的“建树”了(经过第一次的“打击”后我已经变得很谦虚了),但是后来的USB LOCK再次给我打击。原来自己对窗体间的通信是那么的不了解……
        前几天我叔叔的小孩满百天,去吃饭。遇到了去早稻田大学读研的谢叔叔。当我说到USB LOCK的构思时,他竟然是随口就说“那么不是系统很多消息都是传到WndProc过程的么,只要重写.....”,虽然当时经过Hot key和MoreEffectivekey两个程序的开发我已经依稀知道了这件事,当我听到这个想当然的回答时还是吃了一惊。后来他介绍了一本<<Progamming Windows>>(中文叫《Windows程序设计》,现已绝版),我从网上下载了电子版,看了几张之后大叹“原来这些知识对于当年的MFC和WIN32工程师来说真是基础中的基础知识啊!”。
        当初学校有教MFC,只是使和CONSOLE一起,而且用的书可以说是写给作者自己看的,所以一直没好好学。而且在学MFC之前有教过1学期VB6,可以说那时早就投奔了VB阵营。在暑假看完C#后发现VB在开发大项目时候的局限和维护问题,于是又屁颠屁颠的奔向了C#的怀抱。现在我才知道语言都是一样的,但是对于系统(或系统底层)的了解多一点总是好的。这话说的很委婉,是《Programming Windows》的作者Charles.Petzold在书中所写
        看完Charles.Petzold这句话我大为惭愧。可以说但是前面几章的知识已经解释了我在C#中无法理解的很多问题。对于API的调用。比如在自制“按键精灵”(因为只是写出来在学校刷选课,所以就没列在这里)的时候用的获得鼠标位置的API函数、还有为什么在C#中很多函数要用到IntPtr的窗口句柄、而后在USB LOCK中用sendMessage api函数向活动窗体发送最小化消息时简直可以说这些在C#中的“高级”编程都是WIN32中的基础基础。
        最后借用Charles.Petzold那句话给习惯或者对“高级语言”情有独钟的学习者一个小小的建议,多知道一些底层的知识总是好的~

最后先在这里给大家拜一个早年~
特别鸣谢:梨子,小兰,小虞妹妹,Moca学妹陪我度过了07这个大学的低谷年。

Copyright © 2024 Samson小天
Powered by .NET 8.0 on Kubernetes