.NET技术
文章平均质量分 67
noock
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
WebBrowser弹出窗口之(二)––showModalDialog( ) & showModelessDialog( )
showModalDialog并不创建新的浏览器窗口,也不创建新的浏览器对象,而是在WebBrowser的同一个线程中创建的窗口,而showModelessDialog( )则是在新的线程中创建的窗口,所以处理方式不相同。当showModalDialog( )被调用后,浏览器线程会创建一个对话框,该对话框包含两个窗口,父窗口的类为“Internet Explorer_TridentDlgFra原创 2010-12-28 21:57:00 · 11476 阅读 · 33 评论 -
C#插件技术基础
从原理上很简单,先定义统一接口,主程序根据预定义的接口加载DLL,示例代码 public static int Test() { try { System.IO.FileInfo fi = new System.IO.FileInfo("noock.demo.plugins.dll"); // 加载插件库 System.Console.W原创 2010-12-28 20:26:00 · 2021 阅读 · 0 评论 -
WebBrowser.IsBusy 在.Net 4.0中的BUG
属性IsBusy在文档中说明(http://msdn.microsoft.com/en-us/library/ek4h3t66(v=VS.100).aspx?appId=Dev10IDEF1&l=EN-US&k=k(SYSTEM.WINDOWS.FORMS.WEBBROWSER.ISBUSY)%3bk(ISBUSY)%3bk(TargetFrameworkMoniker-%22.NETFRAMEWORK&k=VERSION%3dV4.0%22)%3bk(DevLang-CSHARP)&rd=true):原创 2011-01-18 17:10:00 · 2231 阅读 · 0 评论 -
改善WebBrowser性能
C#中使用.NET封装的WebBrowser只支持单线程模式,大部分对其操作必须在创建它的线程中执行,不可以在其它线程中调用其方法或属性,用起来非常不方便。而且,其性能受到明显影响,特别是程序的线程较多的时候,WebBrowser反应非常慢,为了提高其响应速度,我提高了其线程的优先级,还是比较管用,线程默认的优先级是Normal,只需要改为AboveNormal改善就比较明显了,但改成Highest反而感觉效果不好,可能跟我的后台线程有关系。原创 2011-01-20 17:40:00 · 6240 阅读 · 2 评论 -
慎用Application.DoEvents( )
如果在UI的消息处理函数中进行较大量的计算或对界面进行操作,占用较长时间时可以在中间调用Application.DoEvents来响应用户操作,但不建议这样做,替代的方法就是在后台线程中进行这些操作,用线程池是一个不错的方法(例如System.Threading.ThreadPool)。 该函数只能在UI的主线程中调用,不不不要在工作线程中调用该函数,否则Application.DoEvents可能挂死永不退出,使用reflector反编译了一下这个函数,发现里面没有使用lock之类的线程锁,可能不是线程原创 2011-01-21 12:54:00 · 7809 阅读 · 1 评论 -
C#获取程序集信息
软件安装的点过多,有时候为特定某些点更新程序,而其它可能不更新,为了便于维护就加了个对话框,来显示当前软件的所有程序集版本,方便随时查看,或者将信息上传到服务器便于统一管理。 C#生成的.net DLL程序集与C++成生的DLL共享库作用是一样的,但其本质是不同的,C#生成的DLL包含的是中间语言IL,其实只是与C#更低级一些的高级语言,并不是机器码,而C++生成的DLL动态库却是机器码,这导致两者的表现也不同,例如使用System.Diagnostics.Process.Modules得不到.net 动原创 2011-03-01 22:43:00 · 5781 阅读 · 0 评论 -
WebBrowser弹出窗口之(三) – alert( ) / confirm( )
alert/confirm等javascript函数产生的对话框是标准的windows对话框,例如 通过HOOK对话框的初始化消息WM_INITDIALOG,检测其标题是否为“来自网页的消息”(英文系统需要匹配项文字符串)(因为钩子是针对主线程的,不会捕获到其它进程的消息,如IE的),然后找到“确定”按钮,通过发送按钮的命令消息来模拟点击“确定”按钮,来实现自动关闭。其中,对话框中显示的消息也在一个window中,可以通过字符串匹配来找到,安装HOOK函数的方法与showModalDialo原创 2011-03-11 15:19:00 · 2656 阅读 · 0 评论 -
都是visual studio 2010 BUG惹的祸
这两天项目在用C#调用C++编写的一些库时遇到一个很头痛的问题,用C++对DLL进行测试没有任何问题,可用C#进行调用时居然所有输出参数均未被改变,也就是输出没有任何输出,但返回值是正确的。同事调了两天,曾怀疑是函数调用约定问题,于是不断地在__cdecl和__stdcall的各原创 2011-09-15 22:46:46 · 1947 阅读 · 0 评论 -
破解Visual SVN
以前很少在visual studio中用直接用SVN,都在使用小乌龟,最后发现用多了,还是用个集成的插件比较好,虽然有个开源的,但感觉不太好用,还是visual SVN比较好用,以前也不想着自己去破解它,今天偶然在搜到文章http://www.heiqu.com/show-7原创 2011-09-16 11:48:03 · 11832 阅读 · 2 评论 -
破解 bytescout Barcode SDK (2.2.0.343)
声明:本文纯粹出于学习目的,如果用于商业目的造成法律责任后果自负。bytescout 的收费条码SDK库很不错,需要购买License,但毕竟是用.Net语言写的,如何保证license不失效呢?这周末不加班,没事儿就试着破解一下,着实还费点儿劲,时间加到一起估计得有10个小时以上了,比以前破解致得E6文档管理系统、Visual SVN花的时间多多了,而且这次并没有彻底破解,只是时间问原创 2011-10-23 22:27:22 · 3832 阅读 · 2 评论 -
WebBrowser弹出窗口之(一) -- window.open( )
1. 对于新打开的窗口,在打开时会触发WebBrowser的NewWindow3事件,触发该事件有以下几种操作: 1) 按住SHIFT或CTRL键时点击鼠标; 2) 在链接的右键菜单中选择“在新窗口中打开”或“在新标签中打工”; 3) 链接的目标窗口不存在或者为“_blank“; 4) Javascript的windows.open函数调用; 5) 在调用Navigate 或 Navigate2 时,设置了navOpenInNewWindow标志位; 在自定义的原创 2010-12-21 15:57:00 · 17478 阅读 · 1 评论 -
Ribbon使用笔记
1. 定义按钮组中各按钮大小 通过使用ribbon:RibbonControlSizeDefinition 逐个定义各按钮的样式即可2. 下拉菜单工按钮原创 2011-11-19 00:04:35 · 2846 阅读 · 0 评论 -
WPF绘制网格线
新的软件要绘制网格,像VISIO一样的底纹便于绘图时对齐,在WinForm下,在Paint事件中通过计算通过Graphics在画布上一条线一条线地画就行了,显然会慢点,而且代码比较多。 在WPF中,可以更简单,通过绘制适量直线不会方便而且可以提高性能,可以创建一个Group,然后将所有的直线添加到该组,然后通过RenderTransform或LayoutTransform根据缩放比例进行缩放原创 2011-11-20 18:17:28 · 10385 阅读 · 1 评论 -
C#调用C/C++ 动态链接库DLL(二)
此次示例包含了常用类型参数的转换及传递包括1) 基本类型:int, unsigned char, float, double等2) 指针类型;3) 引用4) 一维数组、二维数组5) 简单结构体6) 结构体中包含数组7) 字符串类型8) bool类型后续再进行其它 类型的封装,如9) 函数指针与回调函数10) 类下面结合代码对这些类型原创 2012-06-24 15:02:36 · 5412 阅读 · 1 评论 -
C#调用C/C++ 动态链接库DLL(三)
2。 在C#中创建DLL接口的声明C#没有全局函数,必须使用静态函数实现全局函数。1) DllImport类似C++中的__declspec(dllimport),第一个参数为必选参数,为DLL的路径,一般以相对路径即可,只需要将DLL文件放到工作目录中即可2) EntryPoint表示对应的函数名称,这个与C++ DLL工程中.def文件中导出的函数名同使用C#调用C++时不支原创 2012-06-24 15:24:11 · 18342 阅读 · 0 评论 -
一个简单的测试框架(C#版)
端午节有空本来是为整理一下C#调用C/C++库的方法,为了测试用例顺便实现了一直想实现的一个小的测试框架跟同事们分享一下,NUnit搞得已经比较复杂了,这个非常简单理解起来容易,用起来比较方便,谁再想用其它功能再自己加吧,如果功能要求比较多就直接用NUnit好了,不要再自己造轮子了。此篇献给伟大的屈原,是他给我们创造了这样一个假期!代码比较简单,注释也写了不少,就不再多说了,直接上代码,时原创 2012-06-24 14:43:42 · 5143 阅读 · 0 评论 -
C#调用C/C++ 动态链接库DLL(四) -- 调用C++类
对于在C#中调用C++类的情况比较复杂,至少有三种情况,见下文的Introduction部分,并详细讲述了P/Invoke以下内容转自:http://www.codeproject.com/Articles/14180/Using-Unmanaged-C-Libraries-DLLs-in-NET-Applicatio1. IntroductionThis arti转载 2012-06-24 16:14:29 · 6909 阅读 · 1 评论 -
C#调用C/C++ 动态链接库DLL(一)
在一些应用系统中经常会用到C#调用C++的一些代码,特别是结构体、指针、引用等类型的传递。总结一下常用的一些类型传递。官方关于C#与C++互操作的文档http://msdn.microsoft.com/en-us/library/ms173184.aspx,官方的一个例子:http://msdn.microsoft.com/en-us/library/ms173187.aspx。1。原创 2012-06-24 14:53:26 · 5399 阅读 · 0 评论 -
整数运算实现四舍五入
在进行除法运算时难免会遇到四舍五入的问题,如果使用整数运算可能误差较大,因为纯整数运算会把整数部分全舍去,如果使用浮点运算,则会增加运算量,特别是运算量比较大的算法中或在移动设备和移动设备这些资源比较紧张的应用上,这种开销是值得考虑的。下面代码就是使用整数运算实现四舍五入的一个例子c = (b + (a >> 1)) / a;这里a >> 1就是a的一半,这样就像当于只要b/a的余数大原创 2012-07-15 16:44:22 · 3769 阅读 · 0 评论 -
ASP.net 2.0 的 Membership Provider 与 Role Provider 第一部分(转)
原文地址:http://www.odetocode.com/Articles/427.aspx翻译:欧盟特软件技术公司 纪俊很多年来,我们写了很多代码来实现互联网应用程序的窗体浏览权限管理。我们编码来验证用户名和密码、编码对密码做哈希并校验并且编码来创建与管理用户。如果你比较两个这种实现,你可能会发现程序结构与代码是相似的。从 ASP.net 2.0 开始,网站开发者不再需要写这种重复性的转载 2010-12-05 17:37:00 · 1403 阅读 · 1 评论 -
在多线程中调用WinForm(C#) (转载)
问题的产生: 我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉。请问如何从多线程中调用form中的方法呢? 解答: 每一个从Co转载 2007-11-02 05:14:00 · 879 阅读 · 0 评论 -
C#编程笔记
1、byte[]数组与其它类型之间的转换 (1)指针 这种方式是最灵活,功能最强的一种,但该方法在C#中是不推荐的,这是C和C++中使用较多的方法,而且效率也比较高。 这种方法在转换struct时,需要使用Serilizable属性,使其存储器按需分配,不进行对齐。原创 2007-11-02 05:15:00 · 653 阅读 · 0 评论 -
ASP.NET 2.0 编程技巧
1. 使用指令引用命名空间 2. 使用Page的Unload事件,在该事件中尽可能地手动清理资源,如关闭数据库连接,销毁创建的对象等。因为光靠系统自动回收资源,可能会比较慢,如果某一段高峰内占用系统内存过多可能会造成服务器崩溃。 3. 使用Page的Error事件来处理错误。原创 2007-12-03 07:08:00 · 737 阅读 · 0 评论 -
C#编程实现多语言WinForm程序
网上看了一些,还要自己编译生成.resources文件,然后动态加载,这个方法没有试,感觉也挺麻烦的,本来VS可以很方便地生成.resx的资源文件,然后一起编译时DLL,搞了很久也没有弄清楚如何将一个个字符串分别读出,不过也通过其它方法实现了多语言的支持,唯一一点遗憾就是需要重启原创 2007-12-05 07:21:00 · 1670 阅读 · 0 评论 -
C#程序优化一例
昨天去一个外企去面试,面试官是公司的一个副总,技术出身,所以聊了我的一些经历之后问了一些C++方面的问题,不过还是static, 线程和进程等问题,回答得还可以,然后就说出一道编程题让我在小白板上做一下。 题目是使用C#编程,实现一个函数,该函数将一个字符串List(任何一种L原创 2008-03-07 09:25:00 · 1304 阅读 · 0 评论 -
C#中Delegate的效率问题
<br /><br />昨天在研究C#的定时器的过程中,发现 Delegate的效率比直接调用一个函数的效率要低不少,今天研究了一下,的确如此。在网上查了一下<br />http://www.cnblogs.com/sumtec/archive/2004/05/23/11025.aspx<br />也写了一个程序进行测试,但给出的程序不是太合理,因为在调用接口注册的函数时使用了for循环,操作明显多于delegate测试函数,所以执行结果反而是delegate比接口调用要快很多,于是我又写了如下程序进行测试原创 2010-12-05 17:28:00 · 4206 阅读 · 0 评论 -
ASP.NET Authentication Provider(转)
ASP.NET 提供了一些新型的Authentication 和 Authorization 方案,对于开发人员来说这将是和以前不同的一种方式。可喜的是ASP.NET提供的方案多样更加灵活;可惜的是这种方案是基于IIS的。新型ASP.NET Authentication Pr原创 2007-12-29 09:40:00 · 1001 阅读 · 0 评论 -
Java可能输给C#的一些理由
这几天什么也不想干,突然想起来玩几天Java弄个简单的JSP网站试试,看看JAVA的开发如何,折腾了有两三天,给我的一个感觉就是搞Java开发比C#“难”,这个难也未必就是技术难度,涉及到各个方面,咱也不是什么专家也不好说评价,就是谈一下体会吧,也不一定全对,有发现的就留个言说一下吧。Java与C#都是为解决跨平台问题而设计的一种编程语言,说它们是编程语言倒不如说是两个编程平台,因为两者不仅可以进行普通控制台与UI程序的设计,而且可以进行WEB应用开发以及程序库开发等多种应用,都是运行在一个中间平台上J原创 2010-12-05 15:05:00 · 1403 阅读 · 1 评论 -
C#实现高精度定时器
这两天正在准备做一个实时控制的东西,想用C#。可是昨天日本人展示了一个在LINUX平台下使用C语言控制的单自由度机械臂,我问他们为什么不用WINDOWS,他们说用WINDOWS编程实时性很差,定时很不准,所以用了LINUX,为了兼容性好,服务器也用的是LINUX平台,用于网络控制原创 2008-03-16 09:25:00 · 8356 阅读 · 0 评论 -
.NET 框架中使用配置文件(转)
.NET框架通过基于XML的配置使配置设置驾轻就熟。它同时还提供了必要的方法,通过集合类(Collection classes)访问这些设置。通过一个静态的ConfigurationSettings类可访问实际的配置数据。该类还提供了一个GetConfig()方法,可向一个合转载 2007-11-02 05:04:00 · 747 阅读 · 0 评论 -
.Net 2.0 中配置文件的读写(转)
转自:http://blog.joycode.com/ghj/archive/2006/02/10/71293.aspx 在基于 .net 2.0 的企业库中,原来的配置应用程序块被废除了,使用了 .net 2.0 自带的读写配置功能,下面我们就来看看 .net 2.0 中转载 2007-11-01 16:13:00 · 780 阅读 · 0 评论 -
C#多国语言支持的WinForm程序开发(转)
转自:http://www.cnblogs.com/tonyqus/archive/2005/04/14/126614.html看了蝈蝈今天发的文章后,研究了一下WinForm的多语言解决方案,参考网上的一些资料后,发现一个简单的方法,完全可以通过VS.NET的强大功能实现。转载 2007-12-05 07:20:00 · 1877 阅读 · 0 评论 -
ASP.NET 中接收POST方法上传的XML
这几天正在研究HTTP协议 ,想用HTTP加XML设计一通讯协议,就像SOAP和XML-RPC,所以通讯的两端都要实现HTTP协议,为了简便,想用IIS实现,使用ASP.NET开发的WEB应用程序处理通讯过程,就想使用HTTP协议中的POST方法传递信息,查了一些资料,做了一个测原创 2008-03-26 09:29:00 · 2657 阅读 · 0 评论 -
ASP.net 2.0 的 Membership Provider 与 Role Provider 第二部分(转)
在第一部分我们讨论了 Provider 模型,授权与 SqlMembershipProvider 类。在这篇文章我们将把精力放到 Role Provider 与授权。一旦确定了用户身份,您需要决定的将会是允许用户做什么和允许他们访问哪些页。通常我们管理权限的技术是将用户分如不转载 2007-12-29 09:38:00 · 880 阅读 · 0 评论 -
C#与Java的区别(转)
转自:http://wenwen.soso.com/z/q122730167.htm1. 源文件方面。C#可以在一个.cs 文件中。出现多个name sapce(命名空间,有些类似于pacakage),并定义多个类。C#包含有预处理指令。 2. 数据类型方面。 a) C#定义了struct(结构),不能是抽象的,也不能被继承,是值类型的。 b) C#没有基本类型的概念,全部是面向对象的类型,int是Int32的简写。 c) 在Java中const是保留字,final与C#中的const意思相同,C#转载 2009-03-13 12:05:00 · 751 阅读 · 0 评论 -
C#中文编程
C#使用Unicode编码处理字符,这也是Windows内置编码方式,使用这种方式带来一个好处就是,可以使用中文编程,除了关键词不能使用中文以外,类型、变量名、函数名、属性名等都可以使用中文。如果是C++的语法的话就可以使用#define定义宏,使用中文关键词替换项文关键词,那可就几乎是纯粹的中文编程了,遗憾的是C#中的#define不支持这种功能,它只能用于条件编译。 下面是一段中文程序的示例,看起来应该很亲切吧,但以前用英文编程习惯了,看着这些代码还真是不习惯,但它的确可以编译并正常运行。 usin原创 2009-12-23 12:25:00 · 3018 阅读 · 0 评论 -
.NET 发送电子邮件(转)
有两种方法,一种是在配置文件中指定邮件服务器的配置,另一种方法是在送邮件时指定。方法1。 在配置文件中添加配置节: 然后就可以在程序中直接发送了,代码很简单: public bool sendMai转载 2007-11-02 15:57:00 · 1259 阅读 · 0 评论 -
读写配置文件
转自:http://www.rainsts.net/article.asp?id=174 net Framework 2.0 专门提供了配置文件的操作。 namespace System.Configuration; 1. 创建配置节类 必须创建继承自Confi原创 2007-11-01 16:12:00 · 513 阅读 · 0 评论 -
Asp.net Provider模型第三部分(转)
在本系列的第一和 第二部 分,我们介绍了ASP.NET Provider的概念和内部体系结构,我们知道provider模型是可以扩展的,我们可以自己定义自己的模型结构来完成更适合自己需求的 Provider。本文将自定义自己的两个Providers--一个是成员members转载 2007-12-29 09:39:00 · 720 阅读 · 0 评论 -
System.Diagnostics.Debug一组奇怪的重载函数WriteLine
<br /><br />昨天想当然System.Diagnostics.Debug.WriteLine函数与System.Console.WriteLine函数具有相同的函数定义,所以来了类似这么一句: <br />string name = “Noock”; <br />System.Diagnostics.Debug.WriteLine("[{0}]Hello from:" + name, DateTime.Now.ToString("yyyy-MM-dd")); <br />但得到的结果确令人原创 2010-12-21 14:11:00 · 3303 阅读 · 0 评论
分享