
C#
文章平均质量分 70
于大大大洋
学习这条路,漫长崎岖。
展开
-
软件版本号设置规则及示例
ABC客户端 版本说明书[版本命名规则]如:1.0.0.0位数名称描述情景第一位主版本重大修改,重写或里程碑[里程碑] [重大更新]第二位次版本显著增强、功能变更较多[新增功能] [删减功能]第三位生成号功能变更,局部修正较多[优化功能] [修改功能]第四位修订号局部修改,BUG修正[缺陷修复]Version 2.0...原创 2019-11-27 21:58:49 · 2960 阅读 · 1 评论 -
NTFS USN的Create和工具代码汇总
1、因为之前把相关代码放在了GitHub上,后来突然有人帮忙改了些个BUG,非常感谢 760193107,所以就写了个完整点的例子,希望对别人有所帮助。GitHub项目地址2、错误码:ERROR_JOURNAL_NOT_ACTIVE在测试时,执行:QueryUSNJournal();方法的时候,查询USN失败了,返回 ERROR_JOURNAL_NOT_ACTIVE 原因是NTFS的USN是禁止状态原创 2017-09-29 13:46:54 · 1610 阅读 · 0 评论 -
C# WinForm窗体四周阴影效果
一、起因关于winform窗体无边框的问题很简单,只需要设置winform的窗体属性即可:FormBorderStyle = FormBorderStyle.None;但是这中无边框窗口实现的效果和背景完全没有层次的感觉,所以能加上阴影,突出窗口显示的感觉。二、网上搜索的解决方案方法 1首先,发现了使用 user32.dll 中方法实现的方案: C# WinForm无边框窗体设置阴影效果缺点:这种原创 2017-09-08 21:04:43 · 34530 阅读 · 19 评论 -
Winform实现漂亮动画-小火车
一、起因最近在做一个Winform的项目,其中需要一些加载动画,所以就搜索了一下找些思路。 动画参考自:Jeremie Martinez (译文链接)二、效果三、实现使用的Timer来绘图,运行时资源占用情况:(使用PictureBox放Gif图片的方式来实现的话,内存会多占用10M左右,所以算是各有利弊吧) 四、素材至于动画的分析,可以参考最上面引用的链接,里面有很详细的解释,素材: 五、源.....................原创 2017-08-28 15:19:32 · 15226 阅读 · 18 评论 -
C#文件加密和解密
//由于项目需要,要对文件进行加密操作,所以对这个功能做了一点学习。不难,需要注意的地方也不多:加密算法和加密后的长度问题(这里用的AES);加密大文件使用流的方式一点一点加密(防止一次性吃掉很多内存);加密过程的回调;文件结构;截图加密: 解密: 选择文件: 内存及CPU的使用: 一、算法首先,文件要加密就一定要解密,所以一定要找个能解密的算法,这个不用多说……其实加密解密算法也............原创 2017-07-28 00:14:15 · 40796 阅读 · 24 评论 -
C# Winform 窗体美化(十、自定义窗体)
十、自定义窗体写在前面最近在做 winform 应用程序,需要自定义一种窗口的样式,所以就随便搞了一个简单的窗口。效果图有两种样式,界面如下: 无标题: 有标题: 关键词1、黑色描边边框对于窗口去掉原生的边框这个操作很简单【设置FormBorderStyle为None】,但是去掉边框之后略显生硬,所以就考虑如何做一个描边。方案a:用画笔画出来,但是画出来的描边会被控件挡住,所以作废; 方原创 2017-07-26 22:40:41 · 39599 阅读 · 20 评论 -
C# Winform 窗体美化(目录)
最近在看 C# Winform 的窗体美化,发现一些很有用的美化皮肤库,学习过后也把一些资料整理一下。一、IrisSkin 换肤库(IrisSkin4) 二、LayeredSkin 界面库(LayeredSkinDemo) 三、不规则窗体(GoldFishProject,TransparentForm) 四、镂空窗体(HollowForm) 五、鼠标穿透(MousePenetration)原创 2017-04-13 01:13:54 · 32228 阅读 · 2 评论 -
C# Winform 窗体美化(九、嵌入窗体)
九、嵌入窗体还是关于 Winform 窗体的一些操作问题,这次是研究了一个嵌入窗体,这次学习纯属偶然,项目中确实没遇到过这种需求。就是把别人的程序嵌入到自己的程序中,就像这样:这里我嵌入了测试显示器的程序 这次学习得益于一片博客(引用一定要注明出处 ^_^): http://www.cnblogs.com/bitzhuwei/archive/2012/05/24/SmileWei_Embedde...原创 2017-04-27 23:14:30 · 10154 阅读 · 0 评论 -
C# Winform 窗体美化(八、Icon)
八、Icon之前 Winform 项目也有在 Icon 上遇到些问题(这里的 Icon 指的是 .ico 类型的文件),比如刚开始不知道怎么让自己的程序 Icon 和其他软件一样可以放大,还有放大之后在音量合成器中会出现比较奇葩的效果之类的问题,这里简单整理下,以后再有其他问题再补充。1、C# 代码转换 Icon 格式最开始写 Winform 程序的时候,程序图标都是从网上 down 的,因为那时候原创 2017-04-23 19:08:14 · 25344 阅读 · 0 评论 -
SQLite CodeFirst、Migration 的趟坑过程 [附源码]
关于SQLite的CodeFirst,我找了很久,有很多博客都写过,但是真正好用的非常少,还有很多根本就是DBFirst的代码,真是坑的我够呛,研究了几天也算有点成果,整理一下,希望对路过的朋友有所帮助。...原创 2017-03-14 00:09:52 · 12899 阅读 · 19 评论 -
滚动照片抽奖软件
CODEGitHub 源码1、女友说很丑的一个软件说个最近的事情,女友公司过年了要搞活动,需要个抽奖的环节,当时就问我能不能给做一个,正好我也没啥事儿,就在周末的时候用C#做了一个,虽然派上用场了,不过被说丑也是挺无语的……2、丑也要说虽然心里想的这个软件很简单,但是真正编程也花了5个小时,主要在怎样做好看上犹豫的太久,后来索性全都做成可以配置的了,也真是绝了……3原创 2017-01-21 20:57:13 · 8072 阅读 · 0 评论 -
WPF 代码设置NotifyIcon图标
以前做Winform窗口的时候,设置图标非常简便,用WPF还是有区别的。 notifyIcon1.Icon = new Icon( System.Windows.Application.GetResourceStream( new Uri( "Images/Icon/Moana.ico", UriKind.Relative) ).Stream );...原创 2018-09-14 15:46:14 · 3439 阅读 · 0 评论 -
WPF 使用NotifyIcon控件
转载自:https://www.cnblogs.com/celery94/archive/2010/10/26/1861371.html1.在什么地方找到NotifyIcon普通的WPF控件基本上都是在该命名空间下:System.Windows.Controls,该命名空间在C:\Program Files\Reference Assemblies\Microsoft\Framewor...转载 2018-09-14 13:43:31 · 6218 阅读 · 0 评论 -
WakaTime 记录你的时间(Moana 自动同步信息客户端)
Moana(For WakaTime)通过 wakatime 网站 api,获取数据并保存,可通过图表查看自己的编程时常。save wakatime data. 因为 wakatime 网站只保存15天的数据,所以做了个程序,做数据同步和展示。一、使用方法登录 wakatime,注册账号;在自己使用的IDE,安装 wakatime 的插件;运行 Moana 程序,在...原创 2018-09-15 22:59:48 · 3714 阅读 · 5 评论 -
.NET 4.0 调用 C dll 触发 AccessViolationException 异常的处理方案
一、问题最近做项目的时候,在调用 c 写的 dll 的时候,遇到一个程序异常,发现捕捉不到,异常为:System.AccessViolationException二、解决方案详细内容和原理可以看下面引用的内容,我这里使用的方法是在方法名上面添加属性:[HandleProcessCorruptedStateExceptions]public static void main(){...转载 2018-07-03 15:01:27 · 7671 阅读 · 0 评论 -
C# 读取照片的EXIF信息
一、使用 MetadataExtractor 读取 EXIF 信息1、NuGet 中安装在 NuGet 中搜索并安装 MetadataExtractor;2、包信息我安装后会有两个包:MetadataExtractor 2.0.0 和 XmpCore 5.1.33、代码实现我是创建的 WPF 项目:private void BTOpen_Click(object...原创 2018-06-29 23:57:23 · 6057 阅读 · 1 评论 -
C# Winform 使用二维码
关于C# Winform 程序中使用二维码的使用记录:1、使用 Nuget安装 ZXing.Net 程序包;2、调用代码:private void button1_Click(object sender, EventArgs e){ BarcodeWriter writer = new BarcodeWriter(); writer.Format = Barc...原创 2018-06-29 23:07:04 · 3244 阅读 · 7 评论 -
C#阻止计算机关闭显示器和待机
一、测试测试环境:Win10 备注: 1、管理员和非管理员权限测试都正常; 2、执行阻止关闭显示器和待机后,退出程序会自动恢复; 3、使用Win+L切换到锁屏界面时,同样生效;二、代码代码来源: https://www.cnblogs.com/TianFang/archive/2012/10/12/2721883.htmlpublic class SystemSl...转载 2018-03-09 13:54:58 · 3351 阅读 · 4 评论 -
C# Winform 窗体美化(七、Win7 Aero 毛玻璃效果)
七、Win7 Aero 毛玻璃效果在 Win7 上有一种 Aero 效果,毛玻璃透明效果,搭配不同风格的颜色,效果很好。在学习 Winform 美化的时候顺便看到的这种效果,也整理进来了。原创 2017-04-15 11:52:47 · 18545 阅读 · 0 评论 -
C# Winform 窗体美化(六、双层窗体)
六、双层窗体大概情况双层床体是为了平滑的创建异形窗体的一个解决方案,找了很多资料,整理了一下。双层窗体的逻辑是建立在 UpdateLayeredWindow 不能绘制控件的基础上,上层再添加一个专门放置控件的层;这样就可以在上层“控件层”放控件,下层的“皮肤层”绘制异形的窗口。有两点需要主意: 1. 两个窗体的大小和位置的统一,使用 Size 和 Location 来解决; 2. 两个窗体的 Z...原创 2017-04-15 11:43:18 · 13716 阅读 · 7 评论 -
C#标记废弃方法
在C#中,如果一个方法我们不再使用,我们可以将其标记为“废弃”的方法,只需要在方法前,加一个[Obsolete]即可;[Obsolete]public void BiuBiuBiu(){ // 嘿嘿嘿}废弃方法并非不能使用,而是在编译时,会显示“BiuBiuBiubiu()方法已过时”的一个警告信息。原创 2017-02-21 21:24:42 · 12630 阅读 · 3 评论 -
C#操作Cookie
简单的存储Cookie和获取Cookie例子public string SaveCookie(string name){ // 登陆成功要将必要数据存储到 Cookie 里 HttpCookie httpCookie = new HttpCookie("cookie"); // 设置过期时间 httpCookie.Expires = DateTime.Now.Add原创 2017-01-23 14:55:27 · 1058 阅读 · 0 评论 -
C#日期格式
关于C#中日期DateTime的格式转换代码如下:DateTime dt = DateTime.Now;Log.v(dt.ToString("D"));//2017年1月23日Log.v(dt.ToString("d"));//2017/1/23Log.v(dt.ToString("F"));//2017年1月23日 14:25:36Log.v(dt.ToString("f"));//201原创 2017-01-23 14:45:45 · 2287 阅读 · 0 评论 -
C# 写入注册表启动项
C# 写入注册表启动项private void RegisterSelfKey(){ try { string strName = Application.ExecutablePath; if (!File.Exists(strName)) return; string strnewName = strName原创 2017-01-22 10:48:56 · 1052 阅读 · 0 评论 -
C#单例模式的简单使用
单例模式示例:public sealed class WindowService{ //定义一个私有的静态全局变量来保存该类的唯一实例 private static WindowService Service; //定义一个只读静态对象 //且这个对象是在程序运行时创建的 private static readonly object syncObject =原创 2017-01-21 21:42:00 · 2102 阅读 · 0 评论 -
C# struct 装箱拆箱例子
值类型:拆箱、装箱 struct是值类型struct和class的区别类是引用类型,struct是值类型在托管堆上创建类的实例,在栈上创建struct实例类实例的赋值,赋的是引用地址,struct实例的赋值,赋的是值类作为参数类型传递,传递的是引用地址,struct作为参数类型传递,传递的是值类没有默认无参构造函数,struct有默认无参构造函数类支持继承,struct不支持继承类偏原创 2017-01-21 21:39:12 · 1910 阅读 · 0 评论 -
标志枚举的使用
标志枚举的使用大多是在标记多重状态,比如说文件的属性:只读,可写,隐藏,系统文件等相关属性,都对应相应的标志位,如果在C#中想实现自己的标志枚举,也是可以的,下文是亲身试验的一段代码,希望对您有所帮助,也望您不吝赐教。// 执行代码private void Form1_Load(object sender, EventArgs e){ Log.i("===================原创 2017-01-21 21:35:08 · 2111 阅读 · 0 评论 -
Everything是如何搜索的
写在前面使用了Everything之后,一直对他的搜索速度感兴趣,在网上也看了很多对其原理的揭秘,终于有空找了个源码研究了一下,原理就是对NTFS的USN特性进行使用。原理详细解释我参照别人家的博客来一段: 当扇区的文件有变化时,操作系统会往USN Journal文件中追加一条记录,该记录包含文件名、变化发生的时间、变化的原因等信息,而不包含变化的内容。每一条记录用一个64位数字标识,称作USN...原创 2017-02-09 17:06:19 · 5367 阅读 · 2 评论 -
DES和AES加密:指定键的大小对于此算法无效
“System.ArgumentException”类型的未经处理的异常在 mscorlib.dll 中发生 其他信息: 指定键的大小对于此算法无效。在看DES和AES加密的时候,找了个加密的Demo,自己试验的时候总是报:指定键的大小对于此算法无效 的错误。原因为: DESCryptoServiceProvider 中的密钥是8位; RijndaelManaged 中的密钥是32原创 2017-01-22 17:23:16 · 23795 阅读 · 3 评论 -
关于C#监视剪贴板信息
1、常规方法在C#中,有一个常规检测剪贴板的方法,用的是 System.Windows.Forms.Clipboard;使用起来很简单,代码如下:/// /// 设置剪贴板的文本内容/// /// 文本内容public static void SetText(string s){ Clip...原创 2017-02-23 23:21:49 · 4507 阅读 · 3 评论 -
C# Winform 窗体美化(五、鼠标穿透)
五、鼠标穿透以前在玩射击游戏的时候,狙击枪的设定一般是开镜才有准星,所以想是不是可以自己造一个默认准星出来,思路是现在窗口上画一个准星,然后把窗体其他区域都透明,然后设置鼠标穿透;结果是:UpdateLayeredWindow 的不规则窗口中,添加鼠标穿透功能导致不规则窗口失效。GraphicsPathForm 的不规则窗口中,可以愉快地使用鼠标穿透功能。注意: 全屏的游戏,窗口是不能最前的原创 2017-04-15 10:57:12 · 9545 阅读 · 0 评论 -
C# Winform 窗体美化(四、镂空窗体)
四、镂空窗体例子下载直接贴效果图吧:1、控件的透明 2、窗体的透明 代码如下:public partial class Form1 : Form{ public Form1() { InitializeComponent(); SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_LAYERED); S......原创 2017-04-15 10:40:07 · 13533 阅读 · 23 评论 -
C# Winform 窗体美化(三、不规则窗体)
三、不规则窗体概况之前学习的 LayeredSkin 看到里面有个异形窗口,比较感兴趣,所以就找一下资料研究一下。不规则窗体学习有一个比较好的例子,叫 GoldFishProject,是一条鱼金鱼在屏幕上游。不规则窗口示例代码 GoldFishProject 游动金鱼的学习代码现学习了两种实现方式: 1. UpdateLayeredWindow 2. GraphicsPath1.UpdateL...原创 2017-04-15 10:05:18 · 18969 阅读 · 3 评论 -
C# Winform 窗体美化(二、LayeredSkin 界面库)
二、LayeredSkin 窗口美化库概况这部分资源是 Winform 美化最多的了,效果还不错,使用时只需引入 LayeredSkin.dll - 696 KB 即可。网上能找到的最后 LayeredSkin 版本应该是 LayeredSkin Demo2014-12-10.zip,之后作者就整合成一个更加强大的商业版界面库(DSkin)了。效果图示例Demo原创 2017-04-15 08:36:10 · 37576 阅读 · 7 评论 -
C# Winform 窗体美化(一、IrisSkin 换肤库)
IrisSkin 换肤库IrisSkin 是为Microsoft Visual Studio dotNET开发的最易用的界面增强dotNET(WinForm)组件包。能完全自动的为应用程序添加支持换肤功能。[百度百科]IrisSkin 使用例子 下载皮肤编辑器 下载1、文件IrisSkin4.dll - 544 KB各种 .ssk 格式的皮肤文件(一般在网上搜的是13个皮肤的压缩包)2、代码p...原创 2017-04-14 23:22:05 · 51230 阅读 · 35 评论 -
C# 将程序添加开机启动的三种方式
前言最近在研究程序随系统启动,发现在 win7 上因为权限的问题,写注册表的时候总是会出现问题,写不进去导致的不能自动启动,随后决定仔细的看一看这方面的问题。查资料过程中主要发现有三种方式可以添加到启动,分别是: 1. 开始菜单启动; 2. 注册表启动项; 3. Windows 计划任务。一、开始菜单启动在很久以前,刚开始捯饬电脑的时候,就知道的一个开机启动的方法,那时候就是直接把程序的快捷方...原创 2017-04-09 13:57:19 · 42865 阅读 · 5 评论 -
进程通信:匿名管道和命名管道
一、进程间通信方式管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程原创 2017-03-22 16:29:16 · 1408 阅读 · 0 评论 -
C#获取屏幕大小的“简单整理”。。
额……首先是有一个需求,两个显示器,程序自动获取自己所在的显示器大小,并显示到右下角。我们都知道C#有一个Screen.PrimaryScreen.Bounds,可以获取屏幕的完整尺寸,但是只能获取主显示器的尺寸,后来我发现又一个Screen.GetBounds(this),可以获取程序所在的屏幕尺寸。代码如下Console.WriteLine("主显示器完整尺寸:");Console.Write原创 2017-03-06 22:57:06 · 7573 阅读 · 0 评论 -
int?id与id??1 的意思
http://blog.youkuaiyun.com/jingmeifeng/article/details/24710143int? id 表示id是可以为null的整型 跟Nullable id 是一样的id ?? 1等于 id==null?1:id;转载 2015-06-03 17:45:05 · 2430 阅读 · 0 评论