在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

 分类:代码世界

C#封装windows系统化shutdown功能类

/// <summary> /// 封装了一些ShutDown中的功能 /// </summary> public sealed class ShutDown { private ShutDown() { } [StructLayout(LayoutKind.Sequential, Pack = 1)] private struct tokpriv1luid { public int count; public long luid; public int attr; } [DllImport("kernel32.dll", Exac...

6年前 (2018-10-03) 961℃ 0评论 0喜欢

.net Core 中DateTime在Linux Docker中与Windows时间不一致

最近写了一个.net core项目,部署到CentOS并在docker上运行的时候,发现DateTime.Now获取的时间与Windows不一致(定时执行的任务,晚了8个小时),在Windows中可以正确的获得本地时间,而在Linux CentOS 的Docker环境中获取的时间少了8个小时。通过Linux命令查看本机时间,本地时间正确,但.net core在Docker运行获取时间依然是少8个小时。猜测可能是时区的问题,然后就找到了NodaTime的一个库进行获取统一时区的时间,完成后Linux CentOS的Docker环境上获取的时间就与Windows中保持了一致。 NodaTime库需要下载相关包,也可以直接使用Nuget下载。 项目地址 nodatime项目git开源nodatime官网 新增一个DateTime扩展方法: pu...

6年前 (2018-09-30) 7094℃ 0评论 17喜欢

C#文本文档类型转换(dos2unix、dos2mac、unix2dos、mac2dos、unix2mac、mac2unix)

由于某些业务需要与银行进行交互,我们提交相应的批次文件银行处理,但是银行要求的文本文件格式为Unix,所以需要进一步处理。如果一个文件还可以用编辑器转换一下,但是数量稍微多再使用编辑器转换就太累了。 Windows、Linux、MAC的文本文件换行回车格式不同,基于 Windows系统 的文本文件类型是DOS在每一行末尾有一个 CR(回车)和 LF(换行),而 Linux系统的文本文件类型是Unix只有一个 LF(换行),MAC系统的文本文件类型是mac一个 CR(回车)。 对于换行这个动作,unix下一般只有一个0x0A表示换行(“\n”),windows下一般都是0x0D和0x0A两个字符(“\r\n”),苹果机(MAC OS系统)则采用回车符CR表示下一行(\r) Unix系统里,每行结尾只有“<换行>”,即“\n”; W...

6年前 (2018-09-20) 2582℃ 0评论 8喜欢

asp.net webform重写FindControl实现查找控件(包括被嵌套的控件)

这个也是很早的东西了,记得那时候.net的MVC还没盛行,基本是webForm的天下。现在虽然有用webform,但是的确已经很少继续使用了。重写现有的FindControl,用途就是根据控件ID查找指定的控件,一般情况下系统提供的方法就可以完成,但是那些被嵌套的控件用原来的方式无法查找,所以就重写了FindControl实现了被嵌套控件同样可以查找。这个也是在翻查一些记录的时候发现的,现在重新发出来做个记录吧!   public override Control FindControl(string id) { Control found = base.FindControl(id); if (found == null) { found = this.Page.FindControl(id); } if (found == null) { ...

6年前 (2018-09-19) 1159℃ 0评论 2喜欢

C#实现字节数组高低位转换

今天,在百度网盘突然看到文章分类中有一些内容,仔细一看都是很久很久之前在百度空间发的一些日子内容,由于2015年百度空间关闭,百度空间中相关博文被迁移到百度云中且仅自己可见。曾经很久没有关注过的一些东西又被意外发现,于是决定重新记录下来。以下是使用C#实现关于字节高低位转换的一个方法,记得之前是有物联网接入,上位机数据被读取并且存储到服务器,而当中数据都是高低位颠倒的,在解析的时候需要将高低位进行转换。当时为了解决这个问题,就这么写了!大概是这么个情况!!!!   /// <summary> /// 字节数组高低位转换 /// </summary> /// <param name="sourceByte"></param> /// <p...

6年前 (2018-09-18) 2587℃ 0评论 14喜欢

Javascript实现数组类

//数组类 function ArrayList() { this.length = 0; this.array = new Array(); this.Item = function(index) { return this.array[index]; } this.Add = function(value) { this.array[this.length] = value; this.length++; } this.Remove = function(value) { if (this.length >= 1) { for (var i = 0; i < this.length; i++) { ...

6年前 (2018-09-03) 863℃ 0评论 0喜欢

Unix timestamp与C# DateTime 相互转换

Unix时间戳(Unix timestamp) Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix系统、类Unix系统中,也在许多其他操作系统中被广泛采用. 因业务需求,需要与银行进行接口对接。因为的银行接口中是有校验时间且时间格式要求为Unix timestamp,所以就使用C#进行了相关的转换。 public static class DateTimeExtension { /// <summary> /// DateTime转换成Unix timestamp /// </summa...

6年前 (2018-08-16) 812℃ 0评论 0喜欢

PHP实现友情链接检测

朋友最近有一个需求,希望别人可以通过自己网站主动申请友情链接,但是申请被提交前必须进行检测,申请方的网站中必须先添加自己网站的链接。除此之外还需要使用PHP来进行实现,所以就有了这篇文字记录。 主要的PHP代码实现如下: <?php $max_allow_links = 100; // 最大许可检查的链接数目 function my_file_get_contents($url, $timeout = 30) { if (function_exists('curl_init')) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_s...

6年前 (2018-07-23) 1729℃ 0评论 5喜欢

C#通过探测邮件服务器进行Email地址效验

Email地址包括两个部分:用户名和邮件服务器。因此,检验邮件地址可以分为两步进行:首先检验邮件服务器,然后检验用户名。如 sky@qq.com,首先检验qq.com服务器是否是有效的邮件服务器,如果是再在该服务器上确认是否存在sky用户。当然这检测种方式也并不是百分之百有效,有些服务器不允许检测、有些服务器返回的是错误的信息,这些时候检测结果都是不正确的。 通过查询DNS服务器,获取域名的MX(Mail Exchanger)记录,可以确定某一域名对应的邮件服务器是否有效。在Windows系统中,可以使用nslookup程序来查看这一记录。 public class EmailCheckHelper { TcpClient tcpc; NetworkStream s; string strDomain; byte[] bb; in...

7年前 (2017-07-04) 2161℃ 0评论 0喜欢

Linux CentOS关闭防火墙

永久开始/关闭防火墙 开启 chkconfig iptables on 关闭 chkconfig iptables off 临时关闭/开启 开启 service iptables start 关闭 service iptables stop 以上设置内容,重启后生效! 转载请注明:清风亦平凡 » Linux CentOS关闭防火墙...

8年前 (2017-05-05) 567℃ 0评论 0喜欢

深圳非税通知书与校验码

通知书上的号码组成规则如下: 名称 长度 例子 备注 区域码 2 01 区域编码 通知书类型 1 1 5 单位系统开具缴款通知书   年份码 2 05 两位年份码。开出通知书的年份。 序列号 8 00000001 自动递增的序列号。每一个单位(以用户所在实际单位为准,不限于顶级单位)都拥有一组独立的自增长序列号。 特征码 1 0 0 党政网非税系统 1 互联网非税系统 校验位 2 01 参考后面的计算法则 一个完整的通知书号码样例如下: 0111000000156006 校验位的计算法则如下: A = ∑(ai×Wi)(mod 11) A 0 1 2 3 4 5 6 7 8 9 10 校验位 01 00 10 09 08 07 06 05 04 03 02 其中: i —-表示号码字符从右至左不包括校验码在内的位置序...

8年前 (2017-03-07) 2453℃ 0评论 20喜欢

C#实现简单工厂模式

在面向对象程序中,我们经常看到一种模式就是简单工厂模式(Simple Factory Pattern)。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的类都有一个共同的父类和共同的方法,但每个方法执行的任务不同,而且根据不同的数据进行了优化。简单工厂模式实际上不属于23个GoF模式,但它可以作为学习工厂方法做铺垫。 一、UML类图,简单工厂基本类图 二、代码演示 /// <summary> /// 产品抽象类 /// </summary> public abstract class Product { public abstract void CreateProduct(); } /// <summary> /// 具体产品A /// <...

8年前 (2017-02-02) 1299℃ 0评论 0喜欢

批处理实现对Windows系统远程连接端口号的修改

批处理实现对Windows系统远程连接端口号的修改,以下代码另存为*.bat即可。 @echo off title 远程连接端口修改 color 0a echo 输入端口请注意: echo 1.不要是用常用端口,例如:21、23、80、139、137、1433等端口。常用端口可能被占用 echo 2.你所修改的端口请大于0且小于65535: echo 3.修改完成后,请把你修改的端口对外开放。例如:在防火墙中放开写权限,以免出现修改成功防火墙不允许通信的情况。: set /p c= 请输入新的端口: if “%c%”==”” goto end goto edit :edit reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wd...

8年前 (2017-01-07) 1133℃ 0评论 1喜欢

C#获得Excel第一个工作表的名称

private string getExcelSheetFirstNameFor(string path) { string firstName = ""; Excel.Application objExcelApp = new Application(); objExcelApp.Visible = false; objExcelApp.DisplayAlerts = false; Workbooks objWorkbooks = objExcelApp.Workbooks; _Workbook objWorkbook = null; _Worksheet objWorksheet = null; object objMissing = System.Reflection.Missing.Value; try { objWork...

8年前 (2017-01-06) 1417℃ 0评论 1喜欢

C#实现多个文件(mp3)合并

友情提示以下所诉的音频合并仅仅针对mp3,其他类型音频文件可能存在差异,敬请注意。 公司项目存在多媒体叫号功能,此功能在XP系统上读的速度是可以的,但是在Window7以及以上版本系统读的速度非常慢(不连贯,难以接受)。现在实现方式根据信息拼接了不同的MP3文件,然后进行顺序读取。但是很奇怪为什么在更高版本系统中使用会变的异常的慢,让人难以接受。为了解决这个问题想到了2个方案: 使用flash音乐播放器进行列表播放,但是很多的网页播放器不具备与JavaScript交互的功能,甚至没有列表播放功能。(没有发现其他好用的播放器)对多个MP3文件进行合并后进行播放 经过测试否决了第一种方式,因为压根没有找到一款适合的网页播放器,重新写太费时间了。第二种方式可以解决问题。所以就使用了这个简单的方法来修改现有叫号功能在高版本系统播放缓慢的问题。基本代码如下: using Sy...

8年前 (2016-12-15) 4693℃ 6评论 13喜欢

ECShop之模版堂的模板首页轮播最后出现空白BUG修复

因朋友需要搭建一个商城做演示用,所以选择了用PHP写的ECShop。他为了减少改动就是用了模板堂的模板。但是首页轮播广告在不足7个的时候总是会有后续的空白,初步猜想是代码中固定了轮播广告数量。经过问题的查找很快确定了自己的猜想,就随手把它给改掉了。 找到模板文件下的文件(library\index_ad.lbi)并打开。找到如下代码: window.onload = function() { function Each(list, fun) { for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); } }; var objs = $("idNum").getElementsByTagNam...

8年前 (2016-12-10) 1414℃ 0评论 2喜欢

Jquery插件实现outerHTML

$.fn.outerHTML = function() { return (!this.length) ? this: (this[0].outerHTML || (function(el) { var div = document.createElement('div'); div.appendChild(el.cloneNode(true)); var contents = div.innerHTML; div = null; return contents; })(this[0])); } 转载请注明:清风亦平凡 » Jquery插件实现outerHTML ...

8年前 (2016-11-09) 1053℃ 0评论 0喜欢

自增长INT主键与GUID主键优缺点

使用INT做主键的优点: 需要很小的数据存储空间,仅仅需要4 byte 。insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。 index和Join 操作,int的性能最好。 容易记忆。 支持通过函数获取最新的值 使用INT做主键的缺点 如果经常有合并表的操作,就可能会出现主键重复的情况。 使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。 很难处理分布式存储的数据表。 使用GUID做主键的优点: 它是独一无二的。 出现重复的机会少。 适合大量数据中的插入和更新操作。 跨服务器数据合并非常方便。 使用GUID做主键的缺点: 存储空间大(16 byte),因此它将会占用更多的磁盘大小。很难记忆。join操作性能比int要低...

8年前 (2016-09-23) 897℃ 0评论 0喜欢

require.js的用法

一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。 <script src="1.js"></script> <script src="2.js"></script> <script src="3.js"></script> <script src="4.js"></script> <script src="5.js"></script> <script src="6.js"></script> 这段代码依次加载多个js文件。 这样的写法有很大的缺点。首先,加载...

8年前 (2016-08-22) 1218℃ 0评论 0喜欢

关于Zxing.net 自动解码Code39的BUG

使用Zxing.net进行一维条码识别,如果自动识别解码对Code39条码解码的情况下可能会出现解码错误的情况(这里的错误是指解码后的数据和原来进行编码的数据不一致,进行编码的数据均为Code39的合法字符)。原因:自动解码会尝试目前所有支持类型的解码,包括Code39Extended模式。Code39和Code39Extended 是相同的方法处理,在进行Code39解码后会判断是否使用了Code39Extended模式,使用了扩展的话就会再次对返回的结果进行Code39Extended解码。文件所在位置:lib\oned\Code39Reader.cs   代码如下: /* * Copyright 2008 ZXing authors * * Licensed under the Apache License, Version 2.0 (the "License"); ...

8年前 (2016-08-19) 1610℃ 0评论 0喜欢

谷歌百度以图搜图感知哈希算法之C#简单实现

在谷歌百度以图搜索中, 用户可以上传一张图片, 谷歌百度显示因特网中与此图片相同或者相似的图片. 第一步:将图片缩小到8×8的尺寸,总共64个像素。这一步的作用是去除图片的细节, 只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。 第二步:将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64种颜色。 第三步:计算所有64个像素的灰度平均值。 第四步:将每个像素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。 第五步:将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样次序。 第六步:计算”汉明距离”(Hamming distance),如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。 usi...

8年前 (2016-08-18) 1671℃ 0评论 2喜欢

javascript实现的iframe数据共享接口

在iframe与父窗口或者与子窗口传递数据是一个麻烦的事情,如果我们能够写一个一劳永逸的接口那就再方便不过了,下面就来简答介绍一下如何实现此功能。原理就是将数据缓存早window.top这个窗口,这样无论子窗口父窗口的层次如何变化,数据总是存在不会变化的。 var dataShare = { setData: function(name, value) { var top = window.top, cache = top['_CACHE'] || {}; top['_CACHE'] = cache; return value ? cache[name] = value: cache[name]; }, removeData: function(name) { var...

8年前 (2016-08-17) 1327℃ 0评论 0喜欢

关于DllImport调用非托管dll出现“无法加载DLL’*.dll’,找不到指定的模块”错误

项目中有短信发送模块,由于SP提供的SDK升级。在项目中需要新增SDK的版本。新版本新增的同时要更新旧版本的Dll引用方式,旧版本之前通过DllImport引用使用绝对路径。地址更换后,在操作短信发送的时候就会报“无法加载DLL’*.dll’,找不到指定的模块”。(相关的DLL已经放到Bin目录下)。 当使用绝对路径或者把相关DLL拷贝到系统目录(C:\WINDOWS\system32)后,此类错误不再出现。虽说问题得以解决,但无论是绝对路径还是把相关DLL放到系统目录,这都不是很好的解决办法。很多服务器是不允许在非网站应用程序下新建文件的。而在网上基本都是三种解决方案,如下: 1、将相关的DLL拷贝到Bin目录下 2、将相关的DLL放到系统目录(C:\WINDOWS\system32) 3、使用绝对路径,例如:E:\dll\xxxx.dll 以上三种解决方案在不同...

8年前 (2016-08-16) 2061℃ 0评论 3喜欢

asp.net实现验证码

这个之前(很久之前了吧)使用webform的时候使用的验证码,实现的方式也很简单。 using System; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Text; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace WebUI.yzm { public partial class yzm : System.Web.UI....

8年前 (2016-08-01) 883℃ 0评论 0喜欢

C#获取指定文本文件的编码格式

在某些情况下对文本文件进行读取会出现乱码,这种情况是因为指定的文本文件的编码类型不是系统默认的编码类型或者不是读取时指定的编码类型。解决这种出现乱码的情况可以先获取指定文本文件的编码类型,然后在进行内容的读取。这样尽可能的避免读取文本文件时出现乱码的机率。代码如下: /// <summary> /// 获取指定文件的编码 /// 以防止在不知道文件编码格式的情况下处理文件而造成的乱码问题 /// </summary> /// <param name="filename">文件路径</param> /// <returns></returns> public System.Text.Encoding GetFileEncodeType(string filename) { if (!File.Ex...

8年前 (2016-07-19) 1954℃ 0评论 4喜欢