博客园  :: 首页  :: 新随笔  :: 联系 :: 管理
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页

2010年4月23日

摘要: 代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Net;usingSystem.Web.Services.Description;usingSystem.CodeDom;usingSystem.CodeDom.Compiler;usingMicrosoft.CSharp;namespaceGre 阅读全文

posted @ 2010-04-23 23:06 codingsilence 阅读(519) 评论(0) 推荐(0) 编辑

2010年4月12日

摘要: function keyDown(){//屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 //alert("ASCII代码是:"+event.keyCode); if ((window.event.altKey)&& ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向键 ← (window.event.keyCode==39))){//屏蔽 Alt+ 方向键 → alert("不准你使用ALT+方向键前进或后退网页!"); event.returnValue=false; } if (( 阅读全文

posted @ 2010-04-12 15:12 codingsilence 阅读(285) 评论(0) 推荐(0) 编辑

2010年4月10日

摘要: <a href="http://www.google.com/" onclick="window.location = this.href; return false;"> 去google 阻止shift+click页面超链接打开新窗口</a> 阅读全文

posted @ 2010-04-10 13:51 codingsilence 阅读(154) 评论(0) 推荐(0) 编辑

2010年3月24日

摘要: 其实重点在于实现 IComparer 接口,实现按照自已的来排序classEntity{publicEntity(){}privateintid;publicintId{get{returnid;}set{id=value;}}privatestringname;publicstringName{get{returnname;}set{name=value;}}privatedoubleprice;publicdoublePrice{get{returnprice;}set{price=value;}}}然后写一个对象比较的类,实现IComparer<T>接口。internalcl 阅读全文

posted @ 2010-03-24 21:09 codingsilence 阅读(288) 评论(0) 推荐(0) 编辑

2010年3月19日

摘要: if ( 鄙视用sql语句 and 不屑oracle ) { break; }经常有人问起关于数据库端分页的问题,包括利用存储过程之类的方法有很多,今天我尝试着利用一个更简单的方法来处理一下,就是抽出按某种方式排序的记录集中的第M条记录开始的X条记录,也就是在SqlServer里面的select top的方法。首先说明一下的是我用的数据库是oracle,但是原理差不多。由于ORACLE不支持SELECTTOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM RECNO的组合来实现SELECT TOP N的查询。我们知道,ROWNUM RECNO是记录表中数据编号的一个隐藏子段, 阅读全文

posted @ 2010-03-19 23:15 codingsilence 阅读(187) 评论(0) 推荐(0) 编辑

2010年1月31日

摘要: ,下载地址:http://www.microsoft.com/downloads/details.aspx?familyid=22914587-b4ad-4eae-87cf-b14ae6a939b0 使用方法非常简单 在项目属性窗口中,选择"生成事件",在"生成后事件命令行"下的文本框中输入 ilmerge /ndebug /t:dll /log c:/1/DevExpress.Data.v7.3.dll c:/1/DevExpress.OfficeSkins.v7.3.dll c:/1/DevExpress.Utils.v7.3.dll c:/1/lo 阅读全文

posted @ 2010-01-31 15:56 codingsilence 阅读(226) 评论(0) 推荐(0) 编辑

2010年1月30日

摘要: ArrayList可以用来组合任何的对象,但其默认的排序是按对象本身值来排序,而不是应用自定义的,因此需要重新修改ArrayList的Sort方法的IComparer接口实现。以下是重新写的IComparer的实现,用了类型反射以做到能适合所有类的排序 性能测试:(仅供参考) 配置:PIII 733 384M内存 Windows2000SP4 .net FrameWork 1.1.4322 SP1 ArrayList容纳100个对象,排序时间大约10~20毫秒 ArrayList容纳1000个对象,排序时间大约100毫秒左右 ArrayList容纳10000个对象,排序时间大约1200~160 阅读全文

posted @ 2010-01-30 23:36 codingsilence 阅读(845) 评论(1) 推荐(1) 编辑

2010年1月28日

摘要: 1. Overview1.1. “.bat”: The first extension used by Microsoft for batch files. This extension can be run in most Microsoft Operating Systems, including MS-DOS and most versions of Microsoft Windows. 1.2. “.cmd”: Designates a Windows NT Command Script, which is written for the Cmd.exe shell, and is n 阅读全文

posted @ 2010-01-28 21:44 codingsilence 阅读(339) 评论(0) 推荐(0) 编辑

2010年1月25日

摘要: public class CollectionHelper{ private CollectionHelper() { } public static DataTable ConvertTo<T>(IList<T> list) { DataTable table = CreateTable<T>(); Type entityType = typeof(T); PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(entityType); foreach (T item i 阅读全文

posted @ 2010-01-25 23:40 codingsilence 阅读(244) 评论(0) 推荐(0) 编辑

摘要: /// <summary> /// DataTable 转换为List 集合 /// </summary> /// <typeparam name="TResult">类型</typeparam> /// <param name="dt">DataTable</param> /// <returns></returns> public static List<TResult> ToList<TResult>(DataTable dt) 阅读全文

posted @ 2010-01-25 22:11 codingsilence 阅读(223) 评论(0) 推荐(0) 编辑

摘要: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Reflection;using System.Collections;namespace GrdVEx.Common{ public class DataTableConvert { /**/ /// <summary> /// 将集合类转换成DataTable 阅读全文

posted @ 2010-01-25 22:00 codingsilence 阅读(151) 评论(0) 推荐(0) 编辑

2010年1月22日

摘要: 根据我个人使用ASP.NET的经验,和通过在网上搜索。我发现,Page的ResolveUrl方法给我们带来了一些比较严重的问题。 最常见的问题是在页面或控件以外的范围不能使用它。 其他的问题都是bug。如它不能正确处理一些你给的URL。例如,尝试Page.ResolveUrl("~/test.aspx?param=http://www.test.com")。结果与你输入字符串相同,没做任何变动。使用Reflector查看asp.net代码,我发现将相对URL转换为绝对URL机制都是先搜索string中的 "://",如果找到,就直接返回了。因此,如果你传 阅读全文

posted @ 2010-01-22 20:24 codingsilence 阅读(349) 评论(0) 推荐(0) 编辑

2010年1月21日

摘要: ASPxGridView之Preview主要解决表中较长字段的显示。参考官方Demos:http://demos.devexpress.com/ASPxGridViewDemos/Templates/Preview.aspxhttp://demos.devexpress.com/ASPxGridViewDemos/Rows/PreviewRow.aspx如短字段姓名,性别,出生日期之类的,几个字符就可以了,在一列就可以显示。而比如备注,说明,大图片,放在ASPxGridView的一列中,就影响了美观。PreViewRow较好的解决了这个问题。下面是使用PreViewRow的步骤:1、拖放一个A 阅读全文

posted @ 2010-01-21 21:25 codingsilence 阅读(302) 评论(0) 推荐(0) 编辑

摘要: 一般在XP文件夹里面,特别是图片和视频文件夹里有一个文件—Thumbs.db文件。这个文件是XP用来缓存图片和影音文件的缩略图的,有了这个文件,XP在打开保存大量图片文件的文件夹的时候,显示速度会明显比没有Thumbs.db文件的文件夹快—因为后者需要实时生成缩略图。最近在做一个自己的图片管理程序,需要快速生成缩略图,就想到复用这个文件,这样我的程序可以无缝地继承视窗系统的资源管理器功能。因为Thumbs.db文件的文件结构和访问API没有被公开,所以在Google查了一些资料,发现Thumbs.db文件采用的是结构化存储文件(Structured Storage File)结构,这个文件在C 阅读全文

posted @ 2010-01-21 21:23 codingsilence 阅读(211) 评论(0) 推荐(0) 编辑

摘要: 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里把自己成功制作的方式贴出来,一方面留给自己,一方面也希望能给遇到同样问题绝望中不能自拔、以致失去灵魂的路人甲,路人乙一还魂丹. . .IDE :WIN2003 VS2008 SQL2005 一、创建window服务项目 首先我们建一个window服务项目 :解决方案(右击)——> 增加 ——> 新建项目——>项目类型选择Windows——>模板选择Windows服务 ,如图: 阅读全文

posted @ 2010-01-21 21:16 codingsilence 阅读(182) 评论(0) 推荐(0) 编辑

2010年1月14日

摘要: 最近客户索要产品的二次开发类库文档,由于开发过程中并没有考虑过此类文档,而且项目规范比较,持续时间比较长,经手人比较多,还真是麻烦,如果人工制作文档需要是一个比较大的工程.还好有这个文档生成工具,能够根据项目生成文档,而且格式看起来确实很专业. Sandcastle是微软官方的文档生成工具,NDoc开发停止后,这个貌似也是唯一的一个这方面的工具。它从dll文件及其xml注释文件能够生成完整的帮助文档,支持多种生成格式(Helpe1x:chm, Helper2x:Hxs, Website,HelperView),结合新发布的Sandcastle Help File Builder可视化工具,整. 阅读全文

posted @ 2010-01-14 22:04 codingsilence 阅读(182) 评论(0) 推荐(0) 编辑

2010年1月3日

摘要: 在过去的一年里,我已确定把文件格式作为我的主要研究课题之一,NPOI就是在这样的研究课题下的产物。尽管从严格意义上讲NPOI只是POI的.NET版本,并不是我创造的,但是在开发过程中,我对OLE2有了深入的理解和认识,也对Office 97-2003的文件格式有了截然不同的认识。如果在过去,有人问我:你知道Office文件格式吗?作为开发人员的我会毫不犹豫的说:我当然知道!但如今,我会说:我只知道一部分。有句话说得好:学得越多越觉得自己无知。很多研究生为毕业时写篇合格的论文而发愁,觉得3年压根没学到啥东西,充其量就是跟着导师做点能赚外快的项目,其实他们并没有意识到,很多研究课题就在他们眼前,只 阅读全文

posted @ 2010-01-03 20:09 codingsilence 阅读(215) 评论(0) 推荐(0) 编辑

2009年12月29日

摘要: jQuery之所以如此流行并被从大公司到个人博客的几乎每个人都广泛使用,是因为它上手和使用相当简单,而且为我们提供了一些人都不知道的相当棒的特性。我认为jQuery的大多数用户更趋向于使用jQuery插件来解决面临的难题,这通常是明智的选择。但是当插件相对于你的需求有一定缺陷的时候,你也许更应该想办法自己来解决,下面来看看这些实用的jQuery技巧,他们肯定会能够派上用场的!您还可以参考以下JavaScript相关教程及资源:《10种JavaScript特效实例让你的网站更吸引人》 《300+Jquery, CSS, MooTools 和 JS的导航菜单资源》 《10个非常棒的Ajax及Jav 阅读全文

posted @ 2009-12-29 22:36 codingsilence 阅读(123) 评论(0) 推荐(0) 编辑

摘要: 一、简介1.1、概述随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、 mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。jQuery是继prototype之后的又一个优秀的Javascript框架。它是由 John Resig 于 2006 年初创建的,它有助于简化 JavaScript? 以及Ajax 编程。有人使用这样的一比喻来比较protot 阅读全文

posted @ 2009-12-29 22:27 codingsilence 阅读(168) 评论(0) 推荐(0) 编辑

摘要: Attribute:$(”p”).addClass(css中定义的样式类型); 给某个元素添加样式$(”img”).attr({src:”test.jpg”,alt:”test Image”}); 给某个元素添加属性/值,参数是map$(”img”).attr(”src”,”test.jpg”); 给某个元素添加属性/值$(”img”).attr(”title”, function() { return this.src }); 给某个元素添加属性/值$(”元素名称”).html(); 获得该元素内的内容(元素,文本等)$(”元素名称”).html(”<b>new stuff< 阅读全文

posted @ 2009-12-29 22:22 codingsilence 阅读(136) 评论(0) 推荐(0) 编辑

摘要: 使用Jquery实现可编辑的表格 并使用AJAX提交到服务器修改数据下面是js Code:$(function() { // 相当于在页面中的body标签加上onload事件 $(".caname").click(function() { // 给页面中有caname类的标签加上click函数 var objTD = $(this); var oldText = $.trim(objTD.text()); // 保存老的类别名称 var input = $("<input type='text' value='" + old 阅读全文

posted @ 2009-12-29 22:12 codingsilence 阅读(512) 评论(0) 推荐(0) 编辑

2009年12月16日

摘要: 在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。它的形式为下列之一:yield return <expression>;yield break;备注计算表达式并以枚举数对象值的形式返回;expression 必须可以隐式转换为迭代器的 yield 类型。yield 语句只能出现在 iterator 块中,该块可用作方法、运算符或访问器的体。这类方法、运算符或访问器的体受以下约束的控制:不允许不安全块。方法、运算符或访问器的参数不能是 ref 或 out。yield 语句不能出现在匿名方法中。有关更多信息,请参见匿名方法(C# 编程指南)。当和 expression 一起使用时 阅读全文

posted @ 2009-12-16 22:02 codingsilence 阅读(192) 评论(0) 推荐(0) 编辑

摘要: 用到TreeView的CheckBox时,通常需要联动操作,即父节点被选中,则子节点全部选中,反之一样,这样的需求用JavaScript实现比较适合,如果用c#代码实现这样的效果,性能是不如JavaScript的贴上代码: Code<script type="text/javascript" language="javascript"> //checkbox点击事件 function OnCheckEvent() { var objNode = event.srcElement; if(objNode.tagName != "INP 阅读全文

posted @ 2009-12-16 22:01 codingsilence 阅读(1272) 评论(0) 推荐(0) 编辑

摘要: public static class CodeTimer{ public static void Initialize() { Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; Thread.CurrentThread.Priority = ThreadPriority.Highest; Time("", 1, () => { }); }public static void Time(string name, int iteration, Action action){ if 阅读全文

posted @ 2009-12-16 21:56 codingsilence 阅读(235) 评论(0) 推荐(0) 编辑

摘要: 001// Define the namespaces used by this sample. 002using System; 003using System.Text; 004using System.Globalization; 005using System.IO; 006using System.Diagnostics; 007using System.Threading; 008using System.ComponentModel; 009010011namespace ProcessAsyncStreamSamples 012{ 013014class ProcessNetS 阅读全文

posted @ 2009-12-16 21:35 codingsilence 阅读(1175) 评论(0) 推荐(0) 编辑

2009年12月14日

摘要: 页面:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@PageLanguage="C#"CodeBehind="Default.aspx.cs"AutoEventWireup="true"Inherits="WebApplication1._Default"%>后台:代码Code highlighting produced by Actipro 阅读全文

posted @ 2009-12-14 08:17 codingsilence 阅读(169) 评论(0) 推荐(0) 编辑

2009年12月10日

摘要: 1.表达式树public static IEnumerable<Customers> GetCustomersFunc1(string[] keywords)2 {3 DataClassesDataContext dc = new DataClassesDataContext();45 //创建一个静态类型为Customers的参数表达式6 ParameterExpression c = Expression.Parameter(typeof(Customers), "c");78 //创建一个恒等于false的表达式,用于与下面的表达式取并集9 Express 阅读全文

posted @ 2009-12-10 08:13 codingsilence 阅读(315) 评论(0) 推荐(0) 编辑

2009年12月2日

摘要: 最近做了个项目用到了vc的dll,但是又需要在.net中调用,研究了下c#调用非托管的dll先介绍一下dll文件一.Dll文件动态链接库(也称为DLL,即为“Dynamic Link Library”的缩写)是Microsoft Windows最重要的组成要素之一,打开Windows系统文件夹,你会发现文件夹中有很多DLL文件,Windows就是将一些主要的系统功能以DLL模块的形式实现。动态链接库是不能直接执行的,也不能接收消息,它只是一个独立的文件,其中包含能被程序或其它DLL调用来完成一定操作的函数(方法。注:C#中一般称为“方法”),但这些函数不是执行程序本身的一部分,而是根据进程的需 阅读全文

posted @ 2009-12-02 20:30 codingsilence 阅读(531) 评论(0) 推荐(0) 编辑

2009年11月29日

摘要: --创建一个包createorreplacepackagetypesastypecursorTypeisrefcursor;endtypes;--创建存储过程,游标类型返回参数createorreplaceprocedureSP_Fee_Instance(v_companyinvarchar,v_sdateinnvarchar2,v_edateinnvarchar2,p_cursorinouttypes.cursorType)is--vs_sqlvarchar2(2000);--companyvarchar2(100);--公司编码--start_datevarchar2(10);--计划付款 阅读全文

posted @ 2009-11-29 14:12 codingsilence 阅读(400) 评论(0) 推荐(0) 编辑

摘要: 1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条 记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND) 例子: BEGIN SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx; EXCEPTION WHEN NO_DA 阅读全文

posted @ 2009-11-29 13:57 codingsilence 阅读(153) 评论(0) 推荐(0) 编辑

摘要: 1、行列转换 行转列DROP TABLE t_change_lc;CREATE TABLE t_change_lc (card_code VARCHAR2(3), q NUMBER, bal NUMBER);INSERT INTO t_change_lc SELECT '001' card_code, ROWNUM q, trunc(dbms_random.VALUE * 100) bal FROM dual CONNECT BY ROWNUM <= 4UNION SELECT '002' card_code, ROWNUM q, trunc(dbms_r 阅读全文

posted @ 2009-11-29 13:55 codingsilence 阅读(141) 评论(0) 推荐(0) 编辑

2009年11月28日

摘要: Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行, DOS中可以执行时由于 在oracle 8i 中 安装目录ora81BIN被设置为全局路径, 该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。 下面介绍的是导入导出的实例。数据导出:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daochu.dmp中 exp system/manage 阅读全文

posted @ 2009-11-28 14:38 codingsilence 阅读(482) 评论(0) 推荐(0) 编辑

2009年11月23日

摘要: 如果应用程序在控制用户界面的线程上执行非 UI 处理,则会使应用程序的运行显得缓慢而迟钝,让用户难以忍受。但是长期以来,编写适用于 Windows 的多线程应用程序只限于 C++ 开发人员。现在有了 .NET Framework,您就可以充分利用 C# 中的多线程来控制程序中的指令流,并使 UI 线程独立出来以便用户界面能够迅速响应。本文将向您介绍如何实现这一目标。此外,本文还将讨论多线程的缺陷并提供一个框架来保护并发线程执行的安全。用户不喜欢反应慢的程序。程序反应越慢,就越没有用户会喜欢它。在执行耗时较长的操作时,使用多线程是明智之举,它可以提高程序 UI 的响应速度,使得一切运行显得更为快 阅读全文

posted @ 2009-11-23 15:34 codingsilence 阅读(224) 评论(0) 推荐(0) 编辑

摘要: C#线程相关问题有很多,有多线程的,有单线程的。本文主要讨论C#单线程操作以及与UI控件互交方面的一些注意事项。C#线程在.NET中是一项十分值得探讨的对象。C#是一门支持多线程的语言,因此线程的使用也是比较常见的。由于线程的知识在Win32编程的时候已经说得过多,所以在.Net中很少介绍这部分(可能.Net不觉得这部分是它所特有的)。那么线程相关的问题大致有如下四类(这篇文章只讨论单线程、单线程与UI线程这两方面的问题)。问题一,线程的基本操作,例如:暂停、继续、停止等;问题二,如何向线程传递参数或者从中得到其返回值;问题三,如何使线程所占用的CPU不要老是百分之百;最后一个,也是问题最多的 阅读全文

posted @ 2009-11-23 15:32 codingsilence 阅读(293) 评论(0) 推荐(0) 编辑

摘要: 一. 概述在使用C#进行应用程序设计时,经常会采用多线程的方式进行一些后台任务的工作。对于不同的应用场景,使用的策略也不尽相同。1. 后台循环任务,少量UI更新:例如批量上传文件,并提供进度。这种情况使用BackgroundWorker组件是非常好的选择。2. 耗时的后台任务:这里的耗时任务是指一个时间较长的任务,并且不能精确获取进度,如:调用一个远程WebService接口。这种情况可以开两个线程,一个工作,一个更新UI(不能提供进度,只能显示动画表示系统在运行中)。3. 耗时的UI任务:当工作压力集中在UI响应上时,可以在工作者线程中增加延时,从而让UI线程获得响应时间。整个工作的总体时间 阅读全文

posted @ 2009-11-23 15:30 codingsilence 阅读(259) 评论(0) 推荐(0) 编辑

2009年11月17日

摘要: 先说一说这个需求:我有一个公共对象,(可能会拓展成一堆),有许多线程需要访问它,操作方式包括读取和修改两种,我涉及到一个同步问题,就是,当有线程读取时,其他的读线程可以正常访问,而写线程需要阻塞等待,到无线程继续读时,才能开始写(当然他阻塞的时候,不能允许新读线程进入),而当写线程在访问对象时,其他的读和写线程都需要被阻塞.我觉得这个问题比较难的地方就是,有时候是需要互斥所有线程,有时候只互斥写线程,如果是互斥所有线程,我们的对象设计可以这么简单就实现.view plaincopy to clipboardprint?using System; using System.Collections 阅读全文

posted @ 2009-11-17 08:06 codingsilence 阅读(374) 评论(0) 推荐(0) 编辑

摘要: 这里说的只是在WINDOWS 任务管理器里隐藏,不是在进程里消失例如我们要隐藏QQ进程,不在WINDOWS任务管理器里显示使用方法private WindowsAPI.HideTaskmgrList _List = new WindowsAPI.HideTaskmgrList(); private void Form1_Load(object sender, EventArgs e) { _List.ProcessName = "QQ.exe"; _List.Star(); }下面是全部的类view plaincopy to clipboardprint?namespace 阅读全文

posted @ 2009-11-17 08:00 codingsilence 阅读(6917) 评论(1) 推荐(1) 编辑

2009年11月13日

摘要: 设计初衷: 公司为了便于网络管理,使用了IEEE 802.1X的网络访问控制,这样每次开机需要输入两次登录密码,于是我就研究了一下用C#来帮我输入第二此登录的密码 设计思想: 主要是通过调用Windows API中的一些方法,主要使用的也就是FindWindow,FindWindowEx和SendMessage这三个函数,循环遍历当前的所有窗口,找到目标窗口和进程以后把保存在特定位置的用户名密码以及域信息自动填入输入框中,然后再触发一下button事件,最后程序本身退出。 环境: 在Windows 2000中文版 + sp4,VS.net 2003中文版下开发 在Windows 2000中文版 阅读全文

posted @ 2009-11-13 23:48 codingsilence 阅读(241) 评论(0) 推荐(0) 编辑

摘要: WinForm 下我们可以调用MessageBox.Show 来显示一个消息对话框,提示用户确认等操作。在有些应用中我们需要通过程序来自动关闭这个消息对话框而不是由用户点击确认按钮来关闭。然而.Net framework 没有为我们提供自动关闭MessageBox 的方法,要实现这个功能,我们需要使用Window API 来完成。 首先我们需要找到这个消息对话框的窗口句柄,一个比较简单的方法就是用 FindWindow API 来查找对应的窗体句柄。 [DllImport("user32.dll", SetLastError = true)] static extern I 阅读全文

posted @ 2009-11-13 23:38 codingsilence 阅读(194) 评论(0) 推荐(0) 编辑

摘要: 最近发现我参与开发的基于.NET WinForm + WebService的呼叫中心应用程序如果客户端打开一个以上窗口的时候会出现非预期的异常.这促使我将我们的应用程序改进成同一时间内只允许有一个进程运行. 基本的原理上Google一搜一大把,无非是利用System.Diagnostics.Process.GetProcess()方法获取当先系统所有运行着的进程信息来进行判断.但是我们有一个特殊的要求,那就是如果发现已经有进程在运行着就把这个运行中进程的主窗体显示出来. 既然要获取当前进程的主窗体,那么就从Process类的属性着手, Process类有一个名为MainWindowHandl. 阅读全文

posted @ 2009-11-13 23:37 codingsilence 阅读(369) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页