博文

如何通过VB.NET获取网卡地址(2008-08-23 10:04:00)

摘要:如何通过VB.NET获取网卡地址 开发者在线 Builder.com.cn 更新时间:2007-09-09作者:网奇  来源:网奇  本文关键词: VB.NET 网卡地址 程序语言:Microsoft Visual Basic 4.0,5.0,6.0 运行平台:WINDOWS 功能描述:IPX和NETBIOS接口需要网络地址。该文通过详细的步骤演示了如何通过VB获取网卡地址。 步骤: 1)在Visual Basic生成标准的EXE文件。缺省创建 Form1。

2)在Form1中添加一命令按钮,缺省名为Command1。

3)把下列代码放到Form1中说明部分。 Option Explicit

Private Const NCBASTAT = &H33

Private Const NCBNAMSZ = 16

Private Const HEAP_ZERO_MEMORY = &H8

Private Const HEAP_GENERATE_EXCEPTIONS = &H4

Private Const NCBRESET = &H32

Private Type NCB

ncb_command As Byte 'Integer

ncb_retcode As Byte 'Integer

ncb_lsn As Byte 'Integer

ncb_num As Byte ' Integer

ncb_buffer As Long 'String

ncb_length As Integer

ncb_callname As String * NCBNAMSZ

ncb_name As String * NCBNAMSZ

ncb_rto As Byte 'Integer

ncb_sto As Byte ' Integer

ncb_post As Long

ncb_lana_num As Byte 'In......

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

VB.Net中应用ArrayList实例(2008-08-23 10:03:00)

摘要:VB.Net中应用ArrayList实例 开发者在线 Builder.com.cn 更新时间:2007-09-09作者:塞北的雪 来源:Csdn  本文关键词: VB.NET ArrayList ArrayList 就是数组列表,它位于System.Collections名称空间下,是集和类型。与ArrayList 同胞的还有一个List,他们的实用很相似。这里我们只介绍一些关于ArrayList的一些东东。 ArrayList有三个构造器: ArrayList()

ArrayList(int32)

ArrayList(ICollection) 一个简单的例子如下: Dim t As New ArrayList()

t.Add("Northsnow")

Dim d As New Collection

d.Add("塞北的雪")

d.Add("http://blog.csdn.net/precipitant")

t.AddRange(d)

For Each aa As String In t

MsgBox(aa.ToString())

Next '会依次输出:

'Northsnow

'塞北的雪

'http://blog.csdn.net/precipitant ArrayList的构造器可以接受一个集合,例子如下: Dim d As New Collection

d.add("Northsnow")

d.Add("塞北的雪")

d.Add("http://blog.csdn.net/precipitant")

Dim t As New ArrayList(d)

Dim sb As New System.Text.StringBuilder()

If t.Count > 0 Then

sb.Append("ArrayList中共有 成员 ")

sb.Append(t.C......

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

在VB.NET中改变显示器的分辨率(2008-08-23 10:02:00)

摘要:在VB.NET中改变显示器的分辨率 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:.NET文档 来源:.NET文档  本文关键词: VB.NET 显示器 分辨率 在vb.net中,我们很容易获得显示器的分辩率,但是,要改变显示器的分辩率就比较麻烦了。由于.net的类库没有将enumdisplaysettings 和ChangeDisplaySettings这两个API函数进行封装,但是我们得调用它们函数,相对于VB6来说,VB.NET调用API函数是有一些小的改动! 下面,我们就尝试一下在vb.net中,使用这两个api函数。 新建一个项目,在form1上添加两个按钮,一个名为btngetdisp,将其text属性设置为“得到分辩率”;另一个按钮名为btnsetdisp,text属性为“设置分辩率”。然后在代码窗口里添加以下代码: private Const CCDEVICENAME As Short = 32

private Const CCFORMNAME As Short = 32

private Const DM_PELSWIDTH As Integer = &H80000

private Const DM_PELSHEIGHT As Integer = &H100000

'刷新频率常量

private Const DM_DISPLAYFREQUENCY As Integer = &H400000

'调用API函数

private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Integer, ByVal iModeNum As Integer, ByRef lpDevMode As DEVMODE) As Boolean

'调用api函数

private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeD......

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

VB.Net查找程序的前一个运行结果(2008-08-23 10:01:00)

摘要:VB.Net查找程序的前一个运行结果 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:中国IT实验室 来源:中国IT实验室 本文关键词: VB.NET 程序 运行结果 可以从获取当前过程的名称为开始,你可以通过调用过程对象的GetCurrentProcess方法来达到这一目的。这是一个公共的方法,所以无需建立一个过程对象的实例。 Dim strProcessName As String

strProcessName = Diagnostics.Process.GetCurrentProcess.ProcessName 下一步即为查找当前匹配的过程。可以使用GetProcessesByName方法达到这一要求。还有另一个过程是对象的静态方法,它使用过程的名称,返回所有的匹配过程。 If Diagnostics.Process.GetProcessesByName( _

strProcessName).Length > 1 Then

注释:More than one instance was found

End If 如果这是程序的第一个运行结果,则应该只有一个匹配过程。如果能够找到多个运行结果,那么一定是程序的多个版本在运行之中。 当你想确认用户只运行程序的一个结果时,这一方法非常有用。 查看本文来源......

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

VB.NET:键盘控制焦点移动(2008-08-23 09:59:00)

摘要:VB.NET:键盘控制焦点移动 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:中国IT实验室 来源:中国IT实验室 本文关键词: VB.NET 键盘 焦点移动 在数据库的项目中,一定会有输入数据的Form。最令录入人员头痛的就是每填完一个数据后,要再操作鼠标,或者另一只手按一下Tab(不过还是很麻烦)。最人性化的就是:按回车键(在小键盘内输入只要一只手就可以了),还可以用方向键控制。 第一步:Form的KeyPreview的属性为True;

第二步:按照需要把TabIndex按顺序设置;

第三步:编写一个方法,代码如下: '---FocusMove Is Function Name--

'---ControlName Is the Control's Name Which you want to use ---

Private Sub FocusMove()Sub FocusMove(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ControlName1.KeyPress,ControlName2.KeyPress

If e.KeyChar = ChrW(13) Then

'---SelectNextControl is a Function will be introduced next---

SelectNextControl(sender, True, True, True, False)

End If

End Sub SelectNextControl的说明来自MSDN: 激活下一个控件。 [Visual Basic]

Public Function SelectNextControl( _

ByVal ctl As Control, _

ByVal forward As Boolean, _

ByVal tabStopOnly As Boolea......

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

VB.net与Media Player9.0嵌入式开发(2008-08-23 09:58:00)

摘要:VB.net与Media Player9.0嵌入式开发 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:张悦 来源:51CTO.com  本文关键词: VB.NET Media Player 嵌入式 开发 Windows Media Player 9.0是微软推出的最新数字媒体播放器,它除了继承了media player 8.0的优秀之处外,还添加了许多的实用功能。不过这些功能并不是本文讲述的重点,本文要讲的是如何利用media player来编写一个自己的嵌入式软件,并让它拥有播放cd,vcd,avi,mp3等的功能。  要编写这个程序你首先要熟悉vb.net,因为本程序是使用vb.net编写。在你的计算机上要安装windows media player 9.0。最后最关键的是要安装windows mendia player 9.0 sdk,在sdk中包含了一个dll,这个dll的作用是完成com和.net之间的转换,因为media player 9.0的编程要使用一个media player 9.0 activeX控件,而activeX的本质就是一个com。对于windows mendia player 9.0 sdk可以到微软的msdn去下载。 完成上面3个软件的安装后还不可以动手编写代码,因为要保证mendia player 9.0要与.net框架通信,还必须注册mendia player 9.0的pia,所谓pia是"Primary interop assemblies"的缩写本人将它翻译为"原始内部汇编集",之所以要先注册它是因为com技术诞生在.net技术之前要让com和.net通信就要一个中间层来连接这两边在mendia player 9.0中使用mendia player 9.0 sdk redist目录下的wmppia.dll来注册mendia player 9.0的pia,在命令窗口中输入:[path]regasm c:WMSDKWMPSDK9 redistwmppia.dll(regasm是.net提供的pia注册程序,path是它的路径,你可以用搜索功能来找到它)。  各位别以为注册了pia就可以编程了,你还得将它添加到全局缓存中。在命令窗口中输入:[path]Gacutil /i C:WM......

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

vb.net常用函数(2008-08-23 09:57:00)

摘要:vb.net常用函数 开发者在线 Builder.com.cn 更新时间:2007-09-10作者:51cto.com整理  来源:51cto.com 本文关键词: VB.NET 函数 Abs(number) 取得数值的绝对值。  

Asc(String) 取得字符串表达式的第一个字符ASCII 码。  

Atn(number) 取得一个角度的反正切值。  

CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。  

CBool(expression) 转换表达式为Boolean 型态。  

CByte(expression) 转换表达式为Byte 型态。  

CChar(expression) 转换表达式为字符型态。  

CDate(expression) 转换表达式为Date 型态。  

CDbl(expression) 转换表达式为Double 型态。  

CDec(expression) 转换表达式为Decimal 型态。  

CInt(expression) 转换表达式为Integer 型态。  

CLng(expression) 转换表达式为Long 型态。  

CObj(expression) 转换表达式为Object 型态。  

CShort(expression) 转换表达式为Short 型态。  

CSng(expression) 转换表达式为Single 型态。  

CStr(expression) 转换表达式为String 型态。  

Choose (index, choice-1[, choice-2, ......

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

VB.NET多线程应用(2008-08-23 09:53:00)

摘要:VB.NET多线程应用 开发者在线 Builder.com.cn 更新时间:2007-11-11作者:QQ新人类 来源:yesky 本文关键词: VB.NET 多线程 应用 开发者一直要求微软为VB加入更多的多线程功能,对于VB.NET也是这样。VB6已经支持建立多线程的EXE、DLL和OCX。不过使用多线程这个词语,可能也不太确切。因此VB6仅支持运行多个单线程的单元。一个单元实际上是代码执行的空间,而单元的边界限制了代码访问任何单元以外的事物。

  VB.NET就不同了,它支持建立自由线程(free-threaded)的应用。这意味着多个线程可以访问同样一套的共享数据。本文的以下部分将讨论一下多线程的一些基本点。

  问题

  虽然VB6支持多个单线程的单元,不过它并不支持一个自由线程的模型,即不允许多个线程使用同一套数据。在许多的情况下,你需要建立一个新的线程来进行后台的处理,这样可提高应用的可用性,否则,一个长的处理就可以令程序的响应变得很慢,例如你按下表格上的一个取消按钮,却很久都没有响应。

  解决办法

  由于VB.NET使用了CLR(Common Language Runtime),从而拥有了许多的新特性,其中的一个是可以创建自由线程的应用。

  使用线程

  在VB.NET中,运用线程是很简单的。我们将在后面涉及其中的细节,现在我们首先来创建一个简单的表格,它使用一个新的线程来运行一个后台处理。第一件要做的事情是创建运行在新线程上的后台任务。以下的代码执行一个相当长的运行处理--一个无限的循环:

Private Sub BackgroundProcess()
Dim i As Integer = 1

Do While True
ListBox1.Items.Add("Iterations: " + i)
i += 1
Loop
End Sub

这段代码无限地循环,并且在每次执行时为表格上的一个列表框加入一个项目。如果你对VB.NET不熟悉的话,你将会发现这段代码和VB6的有一些区别:

  . 在声明变量Dim i As Integer = 1......

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

.Net Remoting中Remote Server的Port占用/释放问题(2008-08-23 09:51:00)

摘要:.Net Remoting中Remote Server的Port占用/释放问题 开发者在线 Builder.com.cn 更新时间:2008-01-28作者:冷枫 来源:CSDN 本文关键词: 释放 占用 Port remoting .net 这一问题一般出现在Console application/Windows Service承载Remote Objects时,要求Remote Server指定特定port。IIS在承载Remote Objects并不需要指定特定port,因此一般不会出现SocketException异常信息。   1. 启动承载Remote Objects的Console application,发现指定的port状态为:LISTENING。 显然Remote Server开始监听该port,可以接受Client端的请求。   2. 在关闭承载Remote Objects的Console application后,发现指定的port状态为:TIME_WAIT。   如果现在启动该Console application,就会抛出如下异常: An unhandled exception of type 'System.Runtime.Remoting.RemotingException' occurred in mscorlib.dll   Additional information: Remoting configuration failed with the exception System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted   SocketException异常:每一个socket address (protocol/networ......

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

用VS2005.NET进行三层结构应用程序的开发(2008-08-23 09:50:00)

摘要:用VS2005.NET进行三层结构应用程序的开发 开发者在线 Builder.com.cn 更新时间:2008-01-27作者:冷枫 来源:CSDN 本文关键词: 三层结构 VS2005 .net .NET 应用程序 开发 1.三层之间的关系:

三层是指:界面显示层(UI),业务逻辑层(Business),数据操作层(Data Access)

文字描述:

Clients对UI进行操作,UI调用Business进行相应的运算和处理,Business通过Data Access对Data Base进行操作。  优点: 1、增加了代码的重用。Data Access可在多个项目中公用;Business可在同一项目的不同地方使用(如某个软件B/S和C/S部分可以共用一系列的Business组件)。 2、使得软件的分层更加明晰,便于开发和维护。美工人员可以很方便地设计UI设计,并在其中调用Business给出的接口,而程序开发人员则可以专注的进行代码的编写和功能的实现。
2.Data Access的具体实现: DataAgent类型中变量和方法的说明:   private string m_strConnectionString; //连接字符串 private OleDbConnection m_objConnection; //数据库连接   public DataAgent(string strConnection) //构造方法,传入的参数为连接字符串 private void OpenDataBase() //打开数据库连接 private void #region CloseDataBase() //关闭数据库连接 public DataView GetDataView(string strSqlStat) //根据传入的连接字符串返回DataView   具体实现代码如下:        public class DataAgent      { &......

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