博文

整理出来的得到汉字拼音的代码(2005-05-10 13:53:00)

摘要: using System; using System.Text; namespace HXBTools.Util   {    /// <summary>   ///   /// </summary>   public class py    {    public py()     {     //     // TODO: 在此处添加构造函数逻辑     //    }    public static char GetPyChar(char c)     {     return GetPyChar("" + (char)c);    }    public static char GetPyChar(string strName)     {     short code;     if (strName == "" )      return ' ';     code = GetGB2312Code(strName);           // 英文字符区     if( code >= 32 && code <= 126 ......

阅读全文(34050) | 评论:0

ActiveX、OLE和COM介绍(2005-05-10 13:49:00)

摘要:ActiveX、OLE和COM介绍 熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多人们还是比较模糊的。 在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起来像对象,但不符合对象的学术定义。它们的主要区别是: 1)组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用; 2)组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序; 3)组件为模块重用,而对象为代码重用。 现在,比较流行的组件模型有COM(Component Objiect Module,对象组件模型)/DCOM(Distributed COM,分布式对象组件模型)和CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)。到这里,已经出现了与本文相关的主题COM,而CORBA与本文无关,就不作介绍。之所以从组件与对象的区别说起,是想让大家明确COM和CORBA是处在整个体系结构的最底层,如果暂时对此还不能理解,不妨继续往下看,最后在回过头看一看就自然明白了。 现在开始阐述ActiveX、OLE和COM的关系。首先,让大家有一个总体的概念,从时间的角度讲,OLE是最早出现的,然后是COM和ActiveX;从体系结构角度讲,OLE和ActiveX是建立在COM之上的,所以COM是基础;单从名称角度讲,OLE、ActiveX是两个商标名称,而COM则是一个纯技术名词,这也是大家更多的听说ActiveX和OLE的原因。 既然OLE是最早出现的,那么就从OLE说起,自从Windows操作系统流行以来,“剪贴板”(Clipboard)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码,于是动态数据交换(Dynamic Data Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据,但是,解决彼此之间的“数据格式”......

阅读全文(44791) | 评论:0

C#程序调用外部程序(2005-05-10 13:48:00)

摘要:/* *  编程语言:Visual  Studio  .NET  C#  (Beta  2) *  作        者:迪泊威 *  功        能:通过C#程序调用  Windows  记事本程序  编辑一个 *  名为  test.txt  的文本文件。 * *  在整个程序中  System.Diagnostics.Process.Start(Info)   *  为主要语句。 *  如果只是单独执行一个外部程序,可用一条如下代码即可: *  System.Diagnostics.Process.Start( *  "外部程序名","启动参数"); */ using  System; class  test { static  void  Main() { //声明一个程序信息类 System.Diagnostics.ProcessStartInfo  Info  =  new  System.Diagnostics.ProcessStartInfo(); //设置外部程序名 Info.FileName  =  "notepad.exe"; //设置外部程序的启动参数(命令行参数)为test.txt Info.Arguments  =  "test.txt";......

阅读全文(45087) | 评论:0

Window 消息大全使用详解(2005-05-10 13:36:00)

摘要:消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg, 它在Windows单元中是这样声明的: type TMsg = packed record hwnd: HWND; / /窗口句柄 message: UINT; / /消息常量标识符 wParam: WPARAM ; // 32位消息的特定附加信息 lParam: LPARAM ; // 32位消息的特定附加信息 time: DWORD; / /消息创建时的时间 pt: TPoint; / /消息创建时的鼠标位置 end; 消息中有什么? 是否觉得一个消息记录中的信息像希腊语一样?如果是这样,那么看一看下面的解释: hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。 message 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。 wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。 lParam 通常是一个指向内存中数据的指针。由于W P a r a m、l P a r a m和P o i n t e r都是3 2位的, 因此,它们之间可以相互转换。 WM_NULL = $0000; WM_CREATE = $0001; 应用程序创建一个窗口 WM_DESTROY = $0002; 一个窗口被销毁 WM_MOVE = $0003; 移动一个窗口 WM_SIZE = $0005; 改变一个窗口的大小 WM_ACTIVATE = $0006; 一个窗口被激活或失去激活状态; WM_SETFOCUS = $0007; 获得焦点后 WM_KILLFOCUS = $0008; 失去焦点 WM_ENABLE = $000A; 改变enable状态 WM_SETREDRAW = $000B; 设置窗口是否能重画 WM_SETTEXT = $000C; 应用程序发送此消息来设置一个窗口的文本......

阅读全文(43293) | 评论:0

用Visual C#来做组件(2005-05-10 13:32:00)

摘要: 用Visual C#来做组件,其实是一件很容易的事情。至少比用VISUAL C++要容易的多。在本文中,笔者将为您详细介绍如何来做一个组件。我们可以通过二个步骤来完成这个过程:1.制作一个组件;2.在客户端测试这个组件。 一.制作一个组件 1.首先建立一个新类库工程文件 选择File->New->Project->Visual C# Projects->Class Library。填入工程文件名称,并且通过Browse按钮选择文件要存放的目录。然后点击OK。 2.工程文件和他所包含的文件 此时的工程文件中的Solution Explorer已经加了两个C#的类。分别是AssemblyInfo.cs和Class1.cs我们只要关心的是Class1.cs就可以了,AssemblyInfo.cs可以不管它。 3.namespace mcMath(名称空间 mcMath) 双击Class1.cs,就会看到namespace mcMath,我们在客户端调用组件的时候,会涉及到这个namespace: public long Add (long val1, long val2) { return 0; } public bool Extra { get { return true; } set { } } 至此,在确认上面的事情都已经完成后,编译这个工程文件时就可以在bin/debug目录里面找到mcMath.dll,它就是组件。但此时的组件没有任何功能,下面我们将进一步的完善它。 4.加入一个方法 从View menu中打开ClassView,我们看到的Class1没有任何方法和属性。现在我们给它加上一个方法和一个属性。 点中Class1,右击,选择Add->Add Method... 这时会弹出VISUAL C#的方法制作向导窗口。你可以在此向导的帮助下,为你的组件加入方法的名称、访问类型、返回值、参数,甚至是注释。用Add和Remove按钮可以方便的从参数列表中增加或删除参数。我们在此加入一个方法:long Add( long val1,long val2 ),这个方法的功能是把两个数相加,然后返回他们的和。 5.加入一个属性 重复加入方法的过程,在同样的位置,打开C#的属性向导,按照下图为组件加入......

阅读全文(43086) | 评论:0