博文

vb中从域名得到IP及从IP得到域名(2005-08-07 23:45:00)

摘要:vb中从域名得到IP及从IP得到域名

转载
  办法如下:


Private Const WS_VERSION_REQD = &H101
Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD = 1
Private Const SOCKET_ERROR = -1
Private Const WSADescription_Len = 256
Private Const WSASYS_Status_Len = 128

Private Type HOSTENT
hname As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type

Private Type WSADATA
wversion As Integer
wHighVersion As Integer
szDescription(0 To WSADescription_Len) As Byte
szSystemStatus(0 To WSASYS_Status_Len) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpszVendorInfo As Long
End Type
Private Declare Function gethostbyaddr Lib "WSOCK32.DLL" (addr As Any, ByVal _
byteslen As Integer, addrtype As Integer) As Long
Private ......

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

如何获取打印机纸张信息?(2005-08-07 22:45:00)

摘要:如何获取打印机纸张信息?
转载
Option Explicit
Private Const DC_MAXEXTENT = 5
Private Const DC_MINEXTENT = 4
Private Const DC_PAPERNAMES = 16
Private Const DC_PAPERS = 2
Private Const DC_PAPERSIZE = 3
Private Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" (ByVal lpDeviceName As String, ByVal lpPort As String, ByVal iIndex As Long, lpOutput As Any, lpDevMode As Any) As Long
Private Type POINTS
x As Long
y As Long
End Type

'***********************************************************
'* 名称:GetPaperInfo
'* 功能:得到打印机低张信息
'* 用法:GetPaperInfo(控件名)
'* 描述:如在 form_load()中调用GetPaperInfo MSHFlexGrid1
'***********************************************************
Public Function GetPaperInfo(Flex As MSHFlexGrid) As Boolean

Dim i As Long, ret As Long
Dim Length As Integer, Width As Integer
Dim PaperNo() As Integer, PaperName() As String, PaperSize() As POINTS

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

VB6.0中如何快速实现大面积不规则区域的填充 (2005-08-07 22:42:00)

摘要:VB6.0中如何快速实现大面积不规则区域的填充
转载
  办法如下:

  一、引言

  区域填充是指先将区域内的一个像素 ,一般称为种子点赋予给定的颜色和辉亮,然后将该颜色扩展到整个区域内的过程。

  二、已有的填充算法及缺点

  1.扫描线法

  扫描线法可以实现已知多边形域边界的填充,多边形域可以是凹的、凸的、还可以是带孔的。该填充方法是按扫描线的顺序,计算扫描线与待填充区域的相交区间,再用要求的颜色显示这些区间的像素,即完成填充工作。这里区间的端点通过计算扫描线与多边形边界线的交点获得。所以待填充区域的边界线必须事先知道,因此它的缺点是无法实现对未知边界的区域填充。

  2.边填充算法

  边填充的基本思想是:对于每一条扫描线和每条多边形边的交点,将该扫描线上交点右方的所有像素取补。对多边形的每条边作些处理,多边形的顺序随意。该算法适用于具有帧缓冲器的图形系统,按任意顺序处理多边形的边。处理每条边时,仅访问与该边有交的扫描线上交点右方的像素。所有的边都被处理之后,按扫描线顺序读出帧缓冲器的内容,送入显示设备。该算法的优点是简单,缺点是对于复杂图形,每一像素可能被访问多次,重要的是必须事先知道待填充多边形的边界,所以在填充未知边界的区域时不适用。

  3.递归算法

  递归算法的优点是编程实现时,语言简洁。但在VB6.0实际编程实现时,这种递归算法填充稍稍大一些的图形就会出现堆栈溢出现象,据我们的实践证明,递归算法只能连续递归深度在2090次左右,也就是说,如果待填充的图形大于二千多个像素那么堆栈溢出。下面给出八连通填充方法的VB程序实现(四连通算法同理)。

Public Sub area(p, q As Integer)
If ((imagepixels(0, p, q) = red1) And (imagepixels(1, p, q) = green1) And (imagepixels(2, p, q) = blue1)) Then
imagepixels(0, p, q) = 0: imagepixels(2, p, q) = 0: image......

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

VB中使用EXCEL输出(2005-07-03 22:22:00)

摘要:VB中使用EXCEL输出

Private Sub cmdSwatch_Click()
Dim xls As excel.Application
Dim xlbook As excel.Workbook
'On Error GoTo exlError
Dim i As Integer
    If Dir(Text1.Text) <> "" Then '此目录下如有同名文件给出提示,并作相应处理
        If MsgBox("文件已存在,是否覆盖!", vbYesNo + vbQuestion, "另存为工程造价文件") = vbNo Then
            Exit Sub
        Else
            Kill (Text1.Text) '删除文件
        End If
    End If

    '************打开工作表***************
    Set xls = New excel.Application
    xls.Visible = True
    Set xlbook = xls.Workbooks.Add
   &......

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

VB条形码编码(2005-07-03 22:17:00)

摘要:
VB条形码编码
类型:转载

    条形码技术广泛应用于各行各业,你随便拿起一本书、一包薯片都可以在外包装上找到,利用条码读取机便可将这一条条黑白相间、粗细不同的垂直线条识别而转换为具体的数值,并将这个数值返回到计算机中进行处理。正是这样,有了条形码技术,人们很方便就能取得该商品的有关信息如商品名称、规格、价格等,因为每种商品都有其对应的条形码,这个条形码计算机(终端、服务器)中就可以迅速返回用户,从数据库中读取约定的商品,信息使得销售、进货、存货等等管理更有效率,也对防止假冒伪劣又一定的抑制作用。
条码的编码方式有多种,不同行业,不同国家标准也不尽相同。条形码通过线条的粗细来表达其数值。至于接口方式一般也有多种,如键盘口的、串行口的。一般传感装置是光罩式的,也有笔式的。
上面笼笼统统地谈了一些关于条形码的知识,可帮助你更好地阅读以下更深入的内容。条形码有关概念先说到这里,接着是详细具体的编程实现方法。

     
一、条形码的读取
    用过键盘口式的扫条码工具的朋友就知道,它就如同在鍵盘上按下数字鍵一样,基本不需任何编程和处理。但如果你使用的是其它接口的话,可能你就要为该设备编写通讯代码了。以下有一段简单的25针串口的条码读取器通讯代码。
Option Explicit
Dim sData As String
Private Sub Form_Load()
With MSComm1
   .CommPort = 3 '设为COM3,试运行的系统而定,你可提供一个Combox让用户选择。
   .PortOpen = True '打开通讯端口
End With
End Sub

     
Private Sub MSComm1_OnComm()
  
  Dim EndPos As Integer<......

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

VB6.0 调用存储过程的例子(方法二)(2005-06-26 13:41:00)

摘要:VB6.0 调用存储过程的例子(方法二)
类型:转载

                    VB6.0 调用存储过程的例子(方法二)


     本人推荐使用方法一来取存储过程,当然前提是知道将要使用的参数化命令的详细情况,通过在代码中创建参数,其执行的速度快。



如果不知道要使用的参数化命令,本人整理了一份通过使用参数(Parameters)对象来获取存储过程的记录集的内容,但该执行方式速度没有方法一理想。



代码整理如下,你可以直接将该代码Copy到Form1窗体中进行调试。

其中函数GetDataType可以修改为自己所需的处理方式,在这里所有的代码都是为了测试方便所有,你也可以改为自己所需的相应处理。



Sub CreateParms()

    Dim ADOCmd As New ADODB.Command

    Dim ADOPrm As New ADODB.Parameter

    Dim ADOCon As ADODB.Connection

    Dim ADORs As ADODB.Recordset

    Dim strConnect As String

    Dim strFieldName As String

       

   ......

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

VB6.0 调用存储过程的例子(方法一)(2005-06-26 13:39:00)

摘要:VB6.0 调用存储过程的例子(方法一)
类型:转载

                VB6.0 调用存储过程的例子(方法一)


            (说明:以下代码摘自微软的MSDN,经过测试没问题。使用该方法的前提条件是必须知道将要使用的参数化命令的详细情况。)



打开Form1窗体,Copy以下的代码到窗体中,该段代码将测试存储过程ADOTestRPE的返回值、输入参数及输出参数,测试的过程中,可能需要修改链接字符串。



Sub CreateParms()

    Dim ADOCmd As New ADODB.Command

    Dim ADOPrm As New ADODB.Parameter

    Dim ADOCon As ADODB.Connection

    Dim ADORs As ADODB.Recordset

    Dim sParmName As String

    Dim strConnect As String

    Dim rStr As String

   

    On Error GoTo ErrHandler

   

  ......

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

VB调用存储过程的例子(2005-06-26 13:38:00)

摘要: VB调用存储过程的例子 前言
类型:转载
(说明:以下代码摘自微软的MSDN,经过测试没问题。)


         VB调用存储过程的方法很多,如利用ADO对象的Recordset.Open方法,ADO对象的Connection.Excute方法等,都可以获得记录集信息。本主题讨论的是使用Parameter对象调用存储过程,而且可以获得许多意外的信息。

首先需要在Sql Server中建立一个存储过程。请确定已安装了Sql Server 2000的任何版本,且含有Pubs数据库。

打开“查询分析器”,启动你本地的SqlServer,然后将以下的Sql语句Copy到所打开的查询编辑框中。按下“F5”键。OK,存储过程ADOTestRPE便生成了。



Use Pubs

      GO

      if exists (select * from sysobjects where id =

        object_id('dbo.ADOTestRPE') and sysstat & 0xf = 4)

      drop procedure dbo.ADOTestRPE

GO



      create procedure ADOTestRPE

      (

      @SetRtn  INT=0 OUTPUT,
<......

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

在VB中调用CHM 帮助的几种方法(2005-06-24 14:59:00)

摘要:在VB中调用CHM 帮助的几种方法
类型:转载
一个应用程序不论编制得如何完美,在很多情况下用户还是会对如何使用它提出问题。 Visual Basic 提供了对两种不同帮助系统的支持:传统的 Windows 帮助系统 (WinHelp)和新的 HTML 帮助(CHM帮助)。当我们制作好帮助文件后,就需要在程序的适当位置编写代码进行调用,本文将讨论几种在程序中调用CHM帮助文件的方法。
方法一 使用F1键:
这种方法最简单,只需如下代码即可:
Private Sub Form_Load()
App.HelpFile = app.path & "\help.chm" '调用与主程序同目录下的help.chm帮助文件,按F1键调用
End Sub

方法二 使用SendKeys方法:
Private Sub Form_Load()
App.HelpFile = app.path & "\help.chm"
End Sub
private Sub CmdHelp_Click()
SendKeys "{F1}" '发送击键到活动窗口
End Sub

方法三 使用Shell函数:
private Sub CmdHelp_Click()
Shell "hh.exe help.chm", vbNormalFocus 'help.chm为指定的帮助文件,可包含路径。
End Sub

方法四 使用HtmlHelp函数:
先声明如下API:
Option Explicit
Private Declare Function HtmlHelpA Lib "hhctrl.ocx" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long
'hwndCaller指定调用者的窗口,pszFile指定要调用的文件,uComma......

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

如何制作CHM帮助文件及使用(2005-06-24 14:56:00)

摘要:如何制作CHM帮助文件及使用
类型:转载

摘    要:本文阐述了如制作能在ACCESS中使用上下文关联的CHM帮助文件,并演示了在ACCESS中如何应用.

正    文:

本文阐述了如制作能在ACCESS中使用上下文关联的CHM帮助文件,并讲述和演示了在ACCESS中如何应用.

首先在模块中定义 HHCtrl.ocx API

Declare Function HtmlHelp Lib "HHCtrl.ocx" Alias "HtmlHelpA" _
  (ByVal hwndCaller As Long, _
  ByVal pszFile As String, _
  ByVal uCommand As Long, _
  dwData As Any) As Long

在窗体的LOAD事件中,指定该窗体的帮助文件路径

Private Sub FORM_Load()
  Me.HelpFile = CurrentProject.Path & "\help\help.chm"
End Sub

如果使用按钮,按钮的事件处理程序

Private Sub cmdHelp_Click()
  Call HtmlHelp(0, CurrentProject.Path & "\help\help.chm", &H0, ByVal "index.htm")
End Sub

例子中,在文本框1上按 F1,需在文本框的 帮助上下文ID 填入 1001
    在文本框2上按 F1,需在文本框的 帮助上下文ID 填入 1002

制作html文件

index.htm 对应按钮
help1.htm 对应文本框1
help2.htm 对应文本框2......

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