用VB学做“黑客”程序(转)
只要掌握了原理,你也能写出一个所谓的“黑客”程序。下面笔者带领大家用VB亲自编写一个远程控制程序。从而揭开它的神秘面纱。 一、所用控件 在程序中将使用Winsock控件。Winsock控件是一个ActiveX控件,使用TCP协议或UDP协 议连接到远程计算机上并与之交换数据。和定时器控件一样,Winsock控件在运行时是不可见的。Winsock的工作原理是:客户端向服务器端发出连接请求,服务器端则不停地监听客户端的请求,当两者的协议沟通时,客户端和服务器端之间就建立了连接,这时客户端和服务器端就可以实现双向数据传输。实际编程中,必须
Visual Basic 2005中的My功能之二(转)
在 My 中,可从多个 .NET Framework 类型中汇集相关功能的类的其他示例包括 My.Application、My.Computer、My.Computer.FileSystem、My.Computer.Info 以及 My.Application.Info。Proxy 类proxy 类是一个非常“瘦”的类,可将对它的所有调用转发到基础对象中。例如,如果您调用 My.Computer.Clipboard.GetText(),则实际上是在调用 proxy 类方法 ClipboardProxy.GetText(),定义如下:Public Function GetText() As StringReturn Clipboard.GetText()End Function按照约定,proxy 类总是带有后缀 Proxy。当访问剪贴板、文件系统以及注册表
Visual Basic 2005中的My功能之一(转)
摘要:概述了 My 功能如何公开 .NET Framework 功能,包括可用的类、动态生成的类以及线程处理。 注:本文和示例代码均基于 Microsoft Visual Studio 2005(此前代号为“Whidbey”)的预发布版。文中包含的所有信息均有可能变更。示例项目需要 Visual Studio 2005 Beta1 或更高版本。 简介My 是 Visual Basic 2005 中的一项新功能,它可将常用功能放在您触手可及的地方,并减少了您必须编写的代码行数。它以有效、可靠且线程安全的方式实现这一目的。在程序员工作效率显得尤为重要的环境中,My 可以帮助您更快地完成工作,这就是 Visual B
VB编程的一些基础的问题(转)
Q:--请问VB中hwnd属性的含义是什么 Re: MicrosoftWindows操作系统通过给每一个窗口指定一个唯一的标识号(窗口句柄或hWnd)来管理所有的窗口。操作系统连续地监视每一个窗口的活动或事件的信号。事件可以通过诸如单击鼠标或按下按键的操作而产生,也可以通过程序的控制而产生,甚至可以由另一个窗口的操作而产生。你可以在很多API函数的参数中看到这个属性。 Q:--请问在VB中怎样声明全局变量 Re: 用Global语句,方法是先新建一个标准模块Moudle1,然后在其中声明全局变量。举个例子,如果我们要把“a”声明为全局变量,则使
Visual C# 插件构架实战(转)
一、引言 1. 问题的引入 假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。 2. 几个解决方案的对比 我总结了一下我所接触到的插件构架,大致上可分为以
用C#代码生成一个简单的PDF文件(转)
using System;using System.IO;using System.Text;using System.Collections; namespace PDFGenerator{/// <summary>/// Application : Generation of PDF file from text/// Author : Pramod Kumar Singh /// Date : 25th July 2001///</summary>public class PDFGenerator{static float pageWidth = 594.0f;static float pageDepth = 828.0f;static float pageMargin = 30.0f;static float fontSize = 10.0f;static float leadSize = 10.0f;//Create a PDF file.//PDF on Diskstatic StreamWriter pPDF=new StreamWriter(&q
深入解析C#编程中的事件(转)
一个事件是一个使对象或类可以提供公告的成员。用户可以通过提供事件句柄来为事件添加可执行代码。事件使用事件声明来声明: 一个事件声明既可以是一个事件域声明也可以是事件属性声明。在每种情况中,声明都可以由属性集合, new 修饰符, 四个访问修饰符的有效组合 和一个静态修饰符组成。 一个事件声明的类型必须是一个代表类型, 而那个代表类型必须至少同事件本身一样可访问。 一个事件域声明与一个声明了一个或多个代表类型域的域声明相应。在一个事件域声明中不允许有readonly 修饰符。 一个事件属性声明与声明了一个代
C#中的非安全编程(转)
介绍 这是C/C++程序迷们经常谈论的一个话题,同时也是一个复杂的、难以理解的话题-指针!每次谈到C#,大多数我遇到的人都持这样的观点-C#中没有指针的概念。而实际上,它已经被废除了,取而代之的是C#中的非安全编程-如何在程序中使用指针。不同于其字面意思的是,使用指针编程并没有什么不安全的。 它如此受关注的根本原因是,非安全编程不同于习惯的.NET开发规范,而需要编程人员进行明确定本地环境设置(仅适用于本地执行)。本文我将从区别两个最容易被疑惑的概念-非安全代码与非受控代码开始讨论非安全编程这个主题。接下
C#中的构造函数和析构函数的用法(转)
摘 要:构造函数与析构函数是一个类中看似较为简单的两类函数,但在实际运用过程中总会出现一些意想不到的运行错误。本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用,以及在使用过程中需要注意的若干事项。 关键字:构造函数;析构函数;垃圾回收器;非托管资源;托管资源 一.构造函数与析构函数的原理 作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员的大忙。但是程序通过了编译检查并不表示错误已经不存在
用C#开发程序应用框架(转)
简介: 框架是一种定制的通用的应用程序开发基础软件,在其基础上可以开发完整的关且功能完善的软件。在最近几年里,已经成功实现了某些应用领域的开发框架,比如说用户介面开发及数据访问开发等。如果能成功的开发出一个框架,这将是一个突破,因为这意味着开发将不再从头开始实现某个功能:比如一个框架如果可以成功的生成一个用户介面,哪么它也能生成做任意的用户介面。例如,假如我们使用java Applets 和servlets,我们仅仅需要重写某些方法,就可以实现我们自己的代码。这其中java Applets和servlets就是我们所使用的框架平台。M
C#里的委托和事件实现Observer之三(转)
(二)、利用委托的实现:下面有个例子:在C# 控制台应用程序编辑运行成功:using System;namespace CSharpConsole{ // 定义委托 public delegate void PlayGameHandler(object sender,System.EventArgs e); // 负责扣钱的人----主管 public class 主管 { public 主管() { Console.WriteLine("生成主管");
C#里的委托和事件实现Observer之二(转)
二、事件的简介C# 中的“事件”是当对象发生某些事情时,类向该类的客户提供通知的一种方法。1、事件的声明:声明的格式为:<access modifier> event <delegate type> EventName 因为使用委托来声明事件,所以在类里声明事件时,首先必须先声明该事件的委托类型<delegate type>(如果尚未声明的话)。在上面我们已经提到过了委托类型的声明,但是在.net framework下为事件使用的委托类型进行声明时有更严格的规定:(1)、 事件的委托类型应采用两个参数;(2)、两个参数分别是:指示事件源的“对象源”参数和
C#里的委托和事件实现Observer之一(转)
一、委托的简介1、委托的声明:<access modifier> delegate <returnType> HandlerName ([parameters])例如:public delegate void PrintHandler(string str); 委托声明定义了一种类型,它用一组特定的参数以及返回类型来封装方法。对于静态方法,委托对象封装要调用的方法。对于实例方法,委托对象同时封装一个实例和该实例上的一个方法。如果您有一个委托对象和一组适当的参数,则可以用这些参数调用该委托。2、委托的使用:using System;public class MyClass{ public static void Main()
C#处理文本文件之二(转)
(3).如何实现打印预览: 打印预览是通过打印预览对话框来实现的,实现对读取得文本文件的打印预览,最为重要的就是要通知打印预览对话框所要预览的文件的内容。下面代码就是把richTextBox1中显示的内容,通过打印预览对话框显示出来: string strText = richTextBox1.Text ; StringReader myReader = new StringReader ( strText ) ; PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ; printPreviewDialog1.Document = ThePrintDocument ; printPreviewDialog1.FormBorder
C#处理文本文件之一(转)
文本文件是一种常用的文件格式,所以如何处理文本文件也就成为编程的一个重点。本文就来探讨一下用C#是如何来处理文本文件。其内容重点就是如何读取文本文件内容、如何改变文本文件的内容,以及如何用C#来实现对读取后的文本文件的打印预览和打印。 一. 本文程序设计和运行的软件环境: (1).微软公司视窗2000服务器版 (2)..Net FrameWork SDK Beta 2 二. C#处理文本文件的一些重要环节: (1).如何读取文本文件内容: 在本文介绍的程序中,是把读取的文本文件,用一个richTextBox组件显示出来。要读取文本文件,必须
用C#设计一个命令行方式的文件分割器(转)
共享软件中有很多界面美观的文件分割程序,将一个大文件分割成几个较小的文件,分别保存,需要的时候再合并成原来的文件,常常是必备的工具。 本文用微软的visual studio .net开发环境的C#语言也来设计一个文件分割器,并且以DOS命令行方式运行,就象使用copy命令一样简单。从中也可以了解文件分割的原理以及.net框架对文件的读写操作方式。 新建一个visual c#项目,选择“控制台应用程序”,项目名称设置为filesplitcon,系统自动产生了class1.cs文件,将以下的代码加入到class1.cs的相应区域中:using System;using System.Data
由C#风潮想起的-给初学编程者的忠告(转)
我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是
C#程序调用外部程序(转)
/** 编程语言: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 Sy
怎样用C#实现完整文档打印功能(转)
在windows应用程序中文档的打印是一项非常重要的功能,在以前一直是一个非常复杂的工作,Microsoft .net Framework的打印功能都以组件的方式提供,为程序员提供了很大的方便,但是这几个组件的使用还是很复杂的,有必要解释一下。打印操作通常包括以下四个功能1 打印设置 设置打印机的一些参数比如更改打印机驱动程序等2 页面设置 设置页面大小纸张类型等3 打印预览 类似于word中的打印预览4 打印 下面我把我编写的记事本(全部源代码可以在http://www.cndot.net中下载)中用到的打印功能的代码进行解释希望能给大家一些帮助实现打印功能的
C#方法中的ref和out(转)
{大部分参照<<21天学通C#>>,小部分写了自己的感受,编程功底比较差,只能写这么多,多包涵}ref 通常我们向方法中传递的是值.方法获得的是这些值的一个拷贝,然后使用这些拷贝,当方法运行完毕后,这些拷贝将被丢弃,而原来的值不将受到影响.此外我们还有其他向方法传递参数的形式,引用(ref)和输出(out). 有时,我们需要改变原来变量中的值,这时,我们可以向方法传递变量的引用,而不是变量的值.引用是一个变量,他可以访问原来变量的值,修改引用将修改原来变量的值.变量的值存储在内存中,可以创建一个引用,他指向变量在内存中的