Tag: vb预览模式: 普通 | 列表

VB实现不占用CPU的延时

Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Delay(ByVal t As Long)
Dim BeginTime As Long
BeginTime = timeGetTime
While timeGetTime < BeginTime + t
DoEvents
Sleep 1
Wend
End Sub
Private Sub Command1_Click()
Call Delay(5000)
MsgBox ("Hello world!")
End Sub

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3467

List1.ListCount的极限是 32767, 这是它的List1.ListCount的臭虫.

但是内容笔数不受限于 32767, 你可以在循环开始时 Trec=0 在Additem时Trec=Trec+1 退出循环后 Msgbox Trec

 

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4059

vb编程picturebox的2个重要属性

AutoRedraw 属性

AutoRedraw 属性语法包含下面部分:

部分 描述
object 对象表达式,其值是“应用于”列表中的一个对象。
Boolean 布尔表达式,指定如何重绘对象,“设置值”中有详细描述。

 

设置值

boolean 的设置值如下:

设置值 描述
True 使 Form 对象或 PictureBox 控件的自动重绘有效。图形和文本输出到屏幕,并存储在内存的图象中。该对象不接受绘制事件,必要时,用存储在内存中的图象进行重绘。
False (缺省值)使对象的自动重绘无效,且将图形或文本只写到屏幕上。 当需要重画该对象时,Visual Basic 会激活对象绘制事件。

ScaleMode 属性

查看更多...

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3122

VB调用webbrowser技巧集

1、获得浏览器信息:

Private Sub Command1_Click()
   WebBrowser1.Navigate "http://www.jlist.cn"
End Sub

Private Sub Command2_Click()
   Dim oWindow
   Dim oNav
  
   Set oWindow = WebBrowser1.Document.parentWindow
   Set oNav = oWindow.navigator
   Debug.Print oNav.userAgent
  
   Set oWindow = Nothing
   Set oNav = Nothing
End Sub

 

查看更多...

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3479

vb用SendMessage操作剪贴板

要使用这一技巧,你就需要声明用于剪切、复制和粘贴的常数:

Private Const WM_COPY = &H301
Private Const WM_CUT = &H300
Private Const WM_PASTE = &H302

然后,声明对SendMessage API的调用:

Private Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" (ByValhWnd As Long, _
ByValwMsg As Long, ByValwParam As Long, lParam As Any) As Long

  HWnd自变量能够接受消息发送的目的控件的句柄,而wMsg自变量会接受一个表明要被发送的是哪个对象的常数。WParam和lParam自变量被用来把其他信息同消息一起传递,但是不对WM_CUT、WM_COPY或者WM_PASTE使用。

  下面是从菜单点击事件调用SendMessage API的代码:

Private Sub mnuCopy_Click()
Call SendMessage(Me.ActiveControl.hwnd, WM_COPY, 0, 0)
End Sub

Private Sub mnuCut_Click()
Call SendMessage(Me.ActiveControl.hwnd, WM_CUT, 0, 0)
End Sub

Private Sub mnuPaste_Click()
Call SendMessage(Me.ActiveControl.hwnd, WM_PASTE, 0, 0)
End Sub

  这个技巧能够用于任何实现hWnd属性,并能够响应WM_CUT、WM_COPY和WM_PASTE消息的控件。还应该实现错误处理,以处理不带hWnd属性的控件。

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4934

vb用Like比较字符串

Like运算符可以让你比较两个字符串来判断它们是否匹配,它还支持通配符。例如,星号(*)代表一个或者多个字符,问号(?)代表单个字符,而井号(#)代表单个数字。另外,通过使用左括号和右括号([、]),你可以指定一个用来匹配的字符集合。

  下面的代码给出了几种可以使用Like运算符的方法。

If "(800) 555-5555" Like "(###) ###-####"
Then
注释:有效的电话号码
End If

If "1ABCDEF" Like "#[A-Z]*" Then
注释:有效
End If

If "1ABCDEF" Like "#[a-z]*" Then
注释:有效
End If
  Like运算符可以简化你的验证有效性逻辑并提高易读性。对比较复杂方式,它也比InStr函数易于使用。

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3658

vb取得Windows临时文件的路径

要获得Windows的临时文件的存放路径,可以使用GetTempPath API函数。以下是该函数的声明:

Private Declare Function GetTempPath Lib "kernel32" Alias_

"GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long



  调用前,初始化一个(通常长为255)的以null为结尾的字符串,长度为字符长度加1。然后调用这个函数,这个函数的返回值是一个Long型的变量,该返回值将是TEMP路经的真实长度。

Dim lngFolderSize As Long
Dim strFolder As String
Dim lngLength As Long

lngFolderSize = 255
strFolder = String(lngFolderSize + 1, 0)
lngLength = GetTempPath(lngFolderSize, strFolder)
If lngLength > 1 Then
strFolder = Left(strFolder, lngLength)
Else
strFolder = vbNullString
End If

MsgBox strFolder

当你的用户需要确定临时文件目录,并且应用程序将在那里创建临时的工作文件时,这个API函数将十分有用。

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3228

VB利用API创建文件目录

Private Declare Function CreateDirectory Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Long
End Type
Sub Main()

  在C盘创建了"VB API"目录

  Call CreateNewDirectory("C:\VB API")

  MsgBox "在C盘创建了 VB API 目录"

查看更多...

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3279

VB对数据进行加解解密

 

  简易加解密算法要求:

  1、 算法不宜过于复杂,且具有一定的保密性

  2、 对于高级语言很容易能实现

查看更多...

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2630

VB创建可以输出函数的DLL

 

  VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法通过Link来输出函数了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里面写下面的语句:

  Private Sub Form_Load()
If (MsgBox("hehe", vbOKCancel) = vbOK) Then
Shell "link2.exe " & Command$
End If
End
End Sub

  然后编译为linktemp.exe,接下来将LINK.EXE改名为Link2.exe,将linktemp.exe改名为link.exe。这样在VB调用link.exe时会弹出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了 J

查看更多...

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2369

VB开发、打包、发布ActiveX控件

     1、创建一个ActiveX Control的项目

     2、绘制ActiveX控件的操作界面,并且编写代码

     3、特别注意:在项目的属性上的Make页,有一个Version Number区域,需要你写当前控件
        的版本号,这个地方和自动下载有密切关系!当你远端的Web浏览器检查到本机的控件
        版本号和服务器上不一样的时候,浏览器就会自动从服务器下载新版本控件进行安装,
        所以你编译的新版本控件一定要改版本号!否则可能导致远程无法更新。

查看更多...

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6713

vb打开文本文件

如何更有效地打开文本文件应该是一个值得研究的课题,假设F盘下有一个名为d.txt的文本文件,若需要尝试这些例子请作相应的改动。
  
  方法一:
  用定长的String变量获取文本内容。由于定长String变量支持的下界为65400,所以在打开超过32K字节的文件时超出部分的字节将无法获取:
  Private Sub Command1_Cliack()
  Dim sA As String * 65400 '声明定长String变量
  Open "F:\d.txt" For Binary As #1 '用二进制打开文件
  Get #1, , sA '用Get语句从文件中获取字节
  Text1 = sA '显示打开的文件
  Close #1 '关闭文件
  End Sub
  
  方法二:
  先声明一字符串变量,然后用空格填充字符串,使变量大小与文件大小一致,再通过Get语句将文件全部数据存储到变量中,从而达到获取整个文件字节数的目的。此法可以打开大于32K的文件,但应该注意的是,装载文件的容器必须能装载大于32K的文件,下例用RichTextBox控件显示打开的文件:
  Private Sub Command1_Click()
  Dim sA As String
  Open "f:\d.txt" For Binary As #1
  sA = Space(LOF(1)) '用空格填充sA变量
  Get #1, , sA '用Get语句获取文件全部内容
  RichTextBox1.Text = sA
  Close #1
  End Sub
  
  方法三:
  用StrConv函数将文件的控制字符串数据和Unicode码之间进行转换,从而达到打开文件的目的。可打开任意大小文件。此法笔者曾有一篇文章谈及,这里再给一个简单例子:
  Private Sub Command1_Click()
  Open "f:\d.txt" For Input As #1
  RichTextBox1.Text = StrConv(InputB$(LOF(1), 1), vbUnicode)
  Close #1
  End Sub
  
  方法四:
  用Shell语句直接调出Windows的记事本,给个文件名即可轻而易举地打开文本文件。此法适合于打开程序的Readme文件(注意:在可执行文件和要打开的文本文件之间要有空格):
  Shell "NotePad.EXE f:\d.txt",vbNormalFucus
  
  方法五:
  用RichTextBox控件自身的LoadFile属性打开文件:
  RichTextBox1.LoadFile "f:\d.txt", rtfText

Tags: vb

分类:技术文章 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4571

 广告位

↑返回顶部↑