许明会的计算机技术主页

Language:C,C++,.NET Framework(C#)
Thinking:Design Pattern,Algorithm,WPF,Windows Internals
Database:SQLServer,Oracle,MySQL,PostSQL
IT:MCITP,Exchange,Lync,Virtualization,CCNP

导航

2016年5月2日

异步编程,采用WorkgroupWorker,async和await关键字

摘要: 金科玉律:不要在UI线程上执行耗时的操作;不要在除了UI线程之外的其他线程上访问UI控件! NET1.1的BeginInvoke异步调用,需要准备3个方法:功能方法GetWebsiteLength,结果方法DownloadComplete,呼叫方法BeginInvoke! 但很不幸,在UI线程之外访问UI线程控件!调用失败。线程同步必须在线程所属进程的公共区域保留同步区,以此实现线程间的通讯。 ... 阅读全文

posted @ 2016-05-02 12:46 许明会 阅读(577) 评论(0) 推荐(0) 编辑

2016年4月15日

OCR图像识别技术-Asprise OCR

摘要: // csc AspriseDemo.cs /r:AspriseOcr.dll // 注意注册:AspriseOCR.InputLicense("123456", "123456789123456789123456789"); // http://asprise.com/ocr/docs/html/asprise-ocr-library-csharp-vb.net-component.html u... 阅读全文

posted @ 2016-04-15 16:32 许明会 阅读(3686) 评论(1) 推荐(0) 编辑

2016年4月14日

关于委托,事件和类的设计准则

摘要: 我们必须保持类型设计满足“高内聚,低耦合”,如此才能做到更好的代码重用。将应用拆解成组件类型可以实现高可维护性,并利于编码调试。 按钮点击、鼠标移动、键盘按键通常都是观察者模式的典型应用。封闭的类型对外发布事件,外部用用订阅类型的事件并编码实现在事件触发通知到系统后的操作,想想按钮Button类型来 阅读全文

posted @ 2016-04-14 16:35 许明会 阅读(377) 评论(0) 推荐(0) 编辑

2016年4月8日

JavaScript能干什么?

摘要: 真的是长见识了,JavaScript居然能做除了WEB界面外运行于任何平台的APP,而且可以做服务器端,还有天理和王法吗?JavaScript到底有多神奇,要不要重新上路,老程序员何去何从,自然要先网上查查。不墨迹,直接上硬货,自己看吧。 http://www.zhihu.com/question/20796866 JavaScript能做什么? 【开源专访】Node-Webkit作者王文睿:桌... 阅读全文

posted @ 2016-04-08 15:47 许明会 阅读(2670) 评论(0) 推荐(0) 编辑

2016年4月7日

C#泛型代理、泛型接口、泛型类型、泛型方法

摘要: //http://www.cnblogs.com/JeffreySun/archive/2012/11/14/2770211.html //http://www.baqima.com/a/2628.html //http://www.cnblogs.com/yangqi/archive/2010/07/16/1778767.html //http://www.cnblogs.com/TianFan... 阅读全文

posted @ 2016-04-07 00:40 许明会 阅读(762) 评论(0) 推荐(0) 编辑

2016年4月5日

Delegate, Method as Parameter.

摘要: 代理, 将方法作为另一方法的参数. 类似C里面的函数指针. using System; using System.Windows.Forms; using System.Threading; namespace Demo { public delegate void Greeting(string name); public class Demo { ... 阅读全文

posted @ 2016-04-05 00:24 许明会 阅读(375) 评论(0) 推荐(0) 编辑

2016年4月2日

DES对称性加密

摘要: using System; using System.Security.Principal; using System.Security.Permissions; using System.Security.Cryptography; namespace Demo { class MainClass { /// /// DESCryptoS... 阅读全文

posted @ 2016-04-02 14:21 许明会 阅读(512) 评论(0) 推荐(0) 编辑

2016年3月29日

利用委托实现异步调用

摘要: 同步调用示例(委托是一个类型安全的,面向对象的指针) using System; using System.Threading; namespace Demo { public delegate int Operate(int x, int y); public class DelegateAsync { static int Add(int a, i... 阅读全文

posted @ 2016-03-29 23:52 许明会 阅读(657) 评论(0) 推荐(0) 编辑

通过Windows组策略限制证书组织流氓软件的安装运行

摘要: https://liwei2.com/2015/11/27/378.html关于如何提取证书,请参阅:https://www.zhihu.com/question/26917038http://www.appinn.com/ 小众软件,不错的站点. 关于如何拉黑证书,代码如下: 阅读全文

posted @ 2016-03-29 00:14 许明会 阅读(1296) 评论(0) 推荐(0) 编辑

2016年3月27日

枚举\位域\结构综合实验

摘要: 1.枚举项和数值,字符串如何互相转换?2.结构和byte[]数组间如何互相转换? 这在通讯上普遍使用!3.位域在工控上DIO控制普遍使用,如何借鉴.OK,上代码! 阅读全文

posted @ 2016-03-27 18:41 许明会 阅读(475) 评论(0) 推荐(0) 编辑

2016年3月26日

public static void Invoke (Action action)

摘要: using System; using System.Security.Principal; using System.Security.Permissions; namespace Demo { class MainClass { public static void Invoke (Action action) { ... 阅读全文

posted @ 2016-03-26 22:44 许明会 阅读(476) 评论(0) 推荐(0) 编辑

2016年3月25日

C#编写WIN32系统托盘程序

摘要: 基本功能概述: 阅读全文

posted @ 2016-03-25 13:19 许明会 阅读(800) 评论(0) 推荐(0) 编辑

C#的互操作性:缓冲区、结构、指针

摘要: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace Interop { class Program ... 阅读全文

posted @ 2016-03-25 00:08 许明会 阅读(588) 评论(0) 推荐(0) 编辑

2016年3月24日

SQLServer异步调用,批量复制

摘要: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; using System.Data; using System.Data.Common; ... 阅读全文

posted @ 2016-03-24 23:10 许明会 阅读(871) 评论(0) 推荐(0) 编辑

2016年3月21日

Python体验(10)-图形界面之计算器

摘要: 1 import wx 2 class Form(wx.Frame): 3 def __init__( self, parent, id, title ): 4 wx.Frame.__init__(self,parent,id,title,wx.DefaultPosition,wx.Size(300, 250)) 5 self.... 阅读全文

posted @ 2016-03-21 00:58 许明会 阅读(1825) 评论(0) 推荐(0) 编辑

2016年3月20日

Python体验(09)-图形界面之Pannel和Sizer

摘要: import wx class Form(wx.Frame): def __init__(self,parent,ID,title): wx.Frame.__init__(self,parent,ID,title) panel = wx.Panel(self,-1) wx.Button(panel,-1,"Button1",(0,0)... 阅读全文

posted @ 2016-03-20 23:32 许明会 阅读(1130) 评论(0) 推荐(0) 编辑

Python体验(08)-图形界面之工具栏和状态栏

摘要: # coding=utf-8 import wx # 导入必须的Python包 class MenuForm(wx.Frame): def OnQuit(self,event): self.Close() def OnOpen(self,event): self.statusbar.SetStatusText('Open a File!')... 阅读全文

posted @ 2016-03-20 22:35 许明会 阅读(2133) 评论(0) 推荐(0) 编辑

Python体验(07)-图形界面之菜单

摘要: 顺序安装以下程序: 阅读全文

posted @ 2016-03-20 20:59 许明会 阅读(1920) 评论(0) 推荐(0) 编辑

2016年3月14日

C#利用WIN32实现按键注册

摘要:   阅读全文

posted @ 2016-03-14 00:22 许明会 阅读(748) 评论(0) 推荐(0) 编辑

Javascript猜数字游戏

摘要:   阅读全文

posted @ 2016-03-14 00:10 许明会 阅读(2473) 评论(0) 推荐(0) 编辑

序列化/反序列化/序列化事件/加解密

摘要:   阅读全文

posted @ 2016-03-14 00:09 许明会 阅读(763) 评论(0) 推荐(0) 编辑

2014年3月13日

C#检测网卡和网络统计信息

摘要: using System;using System.Collections.Generic;using System.Net.NetworkInformation;public class MyClass{ public static void Main() { //Host Info IPGlobalProperties ipProp = IPGlobalProperties.GetIPGlobalProperties(); string hostInfo = string.Format("Host Name:{... 阅读全文

posted @ 2014-03-13 20:50 许明会 阅读(1321) 评论(0) 推荐(0) 编辑

2013年12月23日

KMS服务器激活Windows和Office2013EnterprisePlus

摘要: KMS服务器激活Windows和Office2013EnterprisePlus参考了文档 http://wenku.baidu.com/view/0cb2602358fb770bf68a5501.htmlOspp.vbs在Office安装目录,因此必须要先定位到目录;指定KMS服务器地址(HEU_KMS_Activator_CH_v7.6b.exe的目标计算机IP地址);,执行激活命令并查看激活状态。实际测试时没有输入/inpkey一样能够激活,估计安装程序的KMS Key有效,只是缺少KMS服务器罢了。执行命令如下:cd "C:\Program Files\Microsoft O 阅读全文

posted @ 2013-12-23 07:59 许明会 阅读(2803) 评论(1) 推荐(0) 编辑

2013年11月6日

将Java应用程序打包成可执行的Jar包

摘要: 可以将多个class文件打包为jar包,在指定程序入口点情况下,可以用 java –jar jar包名称的方式调用jar包内主类的main函数。程序源代码如下://Math.javapublicclassMath{publicintadd(inta,intb){returna+b;}publicintsub(inta,intb){returna-b;}}//BasicJavaAPP.javapublicclassBasicJavaAPP{publicstaticvoidmain(String[]args){Mathmath=newMath();intresult=math.add(3,4);S 阅读全文

posted @ 2013-11-06 23:01 许明会 阅读(671) 评论(0) 推荐(0) 编辑

2013年10月10日

喜欢听的歌

摘要: la la love on my mind. White Flag 阅读全文

posted @ 2013-10-10 14:02 许明会 阅读(153) 评论(0) 推荐(0) 编辑

2013年7月24日

VMware/Microsoft官网查询参加的培训及认证信息

摘要: 如果你参加了VMWare的培训,会要求你拿一个已经注册的邮箱加上一个密码在VMware的系统里面登记,这样你就能在VMWARE官网查到注册,并据此你才能申请VMWare的考试认证。 例如下图,路径为 Home>Services>VMware Training>myEnrollmentHistory 微软认证专家站点 https://mcp.microsoft.com/mcp 阅读全文

posted @ 2013-07-24 14:34 许明会 阅读(488) 评论(0) 推荐(0) 编辑

2013年7月19日

交换机做Channel-Group

摘要: core1#conf tEnter configuration commands, one per line. End with CNTL/Z.core1(config)#inter range gi0/1-4core1(config-if-range)#do show etherch sumFlags: D - down P - bundled in port-channel I - stan... 阅读全文

posted @ 2013-07-19 16:26 许明会 阅读(1974) 评论(0) 推荐(0) 编辑

2013年7月10日

dsquery、netdom工具示例

摘要: C:\>netdom query fsmo架构主机 DC1.lypower.com.cn域命名主机 DC1.lypower.com.cnPDC DC1.lypower.com.cnRID 池管理器 DC1.lypower.com.cn结构主机 DC1.lypower.com.cn命令成功完成。 C:\>dsquery site"CN=Default-First-Site-Name,CN=Sites... 阅读全文

posted @ 2013-07-10 18:52 许明会 阅读(1965) 评论(0) 推荐(0) 编辑

关于计算机的ID和用户ID之间的关系

摘要: 关于计算机的ID和用户ID之间的关系 计算机安装完系统后就会生成计算机ID,然后系统会以计算机ID为前缀附加数字创建Administrator(500)和Guest(501)用户ID,其他用户的ID将从1000开始计数累加。 本机登录的域用户ID来源于DC,据此我们去掉后面的用户ID也就知道了DC服务器的ID。 下面为示例DEMO,查看本地计算机的SID和及本地计算机用户SID。 C:\>psge... 阅读全文

posted @ 2013-07-10 17:54 许明会 阅读(1493) 评论(0) 推荐(0) 编辑

2013年6月24日

魔兽世界挂机脚本

摘要: Dim WshShell Set WshShell=WScript.CreateObject("WScript.Shell") 'WshShell.Run "notepad" msgbox "点击确定后将执行按键脚本,保证程序不会长时间无动作被注销。",vbOKOnly,"魔兽世界按键脚本"while true WScript.Sleep 5000 WshShell.AppActivate "魔兽... 阅读全文

posted @ 2013-06-24 06:39 许明会 阅读(5500) 评论(0) 推荐(0) 编辑

2013年6月12日

手工搭建32位汇编语言程序开发环境

摘要: 目标: 以创建一个简单的对话框程序为例搭建环境,目标是用到最少的资源,这样我们能够知道一个程序的来龙去脉。 实现: 从Visual Studio 安装环境中拷贝 ML宏汇编器和LINK链接器;拷贝部分.h头文件和.lib链接库文件。 分析: [工具]C和C++的编译器为CL.EXE,汇编语言的编译器为ML.EXE,这两个程序都能生成COFF格式的目标文件OBJ;然后用通用的LINK.EXE链接器将OBJ文件链接为EXE文件。编译和链接工具准备完毕。 [lib库]Windows系统是基于DLL的,PE文件会记录他引用的所有DLL和这些DLL中的API,链接器LINK必须根据LIB文件... 阅读全文

posted @ 2013-06-12 21:45 许明会 阅读(635) 评论(0) 推荐(0) 编辑

搭建基于虚拟机的Windows内核模式调式环境

摘要: 目标:VM –>\\.\pipe\com_1(HOST) <--WinDbg/VS2012利用PIPE实现VM和VM所在的HOST通讯,从而实现在HOST上安装的WinDbg程序能够调试VM操作系统。http://msdn.microsoft.com/en-US/library/windows/hardware/jj200334(v=vs.85) ß设置HOST主机调试VM操作系统内核。http://msdn.microsoft.com/en-US/windows/hardware/hh852360 Debugging Tools, Symbols, SDK & 阅读全文

posted @ 2013-06-12 19:53 许明会 阅读(585) 评论(0) 推荐(0) 编辑

2013年6月6日

记事本终结者

摘要: //cl Win32Demo.cpp user32.lib#include<Windows.h>#include<dos.h>int__stdcallWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,int){MessageBox(NULL,TEXT("记事本终结者,从此再也不能运行记事本!"),TEXT("你很不幸!"),0X40);while(true){HWNDhNotepad=FindWindow(TEXT("Notepad" 阅读全文

posted @ 2013-06-06 18:48 许明会 阅读(344) 评论(0) 推荐(0) 编辑

2013年5月18日

实现C#即时编译器

摘要: 结合控制台重定向和C#即使编译器(见我上面两篇文章)写的WinForm即时C#编译器,功能还不错。文本框就是你Main方法内的语句,可以输入任意测试代码,支持错误行号定位,编译结果捕获,自动拆分窗格等,程序按F5执行,F5…… 忘记在代码里面加说明了:( 时间不早了,上传睡觉,带批处理build代码和SharpDevelop方式源代码哦。可以拿下面的代码测试程序//F5:CompileandRuntheappF6:KillcurrentRunningApp//-----------------------------------------------------------System.D. 阅读全文

posted @ 2013-05-18 03:39 许明会 阅读(3424) 评论(0) 推荐(0) 编辑

C#即时编译器技术测试

摘要: 用visual studio编写测试程序需要新建solution,然后project,命名和存盘都是麻烦事。可以考虑写一个自己的编译环境。通过 Microsoft.CSharp.CSharpCodeProvider() 对象的 CompileAssemblyFromSource(parameters,codes) 方法就能得到编译结果对象 CompilerResults;然后结果对象再通过反射机制 result.CompiledAssembly.GetType("Phoenix") 就可以通过编译生成的程序集包含Main方法的类型。然后你可以 Phoenix.GetMeth 阅读全文

posted @ 2013-05-18 03:15 许明会 阅读(970) 评论(0) 推荐(0) 编辑

重定向Console输出到文本框

摘要: 很多时候,我们需要捕获Console输出,然后在文本框等控件中显示。例如SnippetCompiler就实现了编译源代码并将结果在下面的ListView显示的功能。Console.SetOut(TextWriter)设置Console输出重定向,这样我们需要写一个TextWriter的派生类,这个类的构造函数我们传入要定向目标控件的引用,然后在 public override void Write(char value) 中修改引用控件的BeginInvoke方法挂一个Delegate关联控制台输出流到控件。代码如下,足够精简了。usingSystem;usingSystem.Windows. 阅读全文

posted @ 2013-05-18 01:50 许明会 阅读(3433) 评论(1) 推荐(0) 编辑

2013年5月10日

reference and value type

摘要: ///<summary>///referencetypeisallocateonHEAP,///theassignmentstatementjustsetapinttotheobject.///thereferenceobjectmemorycollectiononappexit!///</summary>usingSystem;usingSystem.Collections.Generic;///<summary>///classisreferencetype;structisvaluetype///</summary>class/*struc 阅读全文

posted @ 2013-05-10 11:40 许明会 阅读(313) 评论(0) 推荐(0) 编辑

参数修饰符 params、 out、ref

摘要: ///<summary>///参数修饰符params、out、ref///</summary>usingSystem;namespaceConDemo{classMainClass{staticdoubleAverage(paramsdouble[]values){doubleaverage=0;foreach(variteminvalues){average+=item;}average=average/values.Length;returnaverage;}publicstaticvoidAdd(intx,inty,outintans){ans=x+y;}stat 阅读全文

posted @ 2013-05-10 11:36 许明会 阅读(259) 评论(0) 推荐(0) 编辑

2013年5月2日

匿名方法 Anonymouse Method

摘要: DEMO: Object Initializer, Anonymouse Method.usingSystem;usingSystem.Windows.Forms;publicclassMyClass{publicstaticvoidMain(){ButtonbtnHello=newButton();btnHello.Text="&Hello";btnHello.Click+=delegate{//AnonymouseMethodMessageBox.Show("Yes!It'stheAnonymouseMethod!");};Formf 阅读全文

posted @ 2013-05-02 17:19 许明会 阅读(358) 评论(0) 推荐(0) 编辑

2013年4月29日

自动属性,对象初始化器,集合初始化器和lambda表达式

摘要: C#在2.0以后进入了一些新特性,如 自动属性,对象初始化器,集合初始化器和lambda表达式,另外还包括匿名方法、可空类型和扩展方法等。详细见我2007年的文章,现测试几个初始化器在语法层面和reflector以后对比,可发现哪些是语法甜点,那些是CLR内置的改进。1.自动属性:AutoProperty 直接给出类内属性field的名称,后面跟{},并在内部简单写get; set;即可。 编译器将自动创建私有属性字段,并实现get_属性名称和 set_属性名称method,属于编译器语法甜头。public string FirstName{get;set;}2.对象初始化器:Object . 阅读全文

posted @ 2013-04-29 22:29 许明会 阅读(680) 评论(0) 推荐(0) 编辑