转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
VB经验技巧(一)         ★★★★

VB经验技巧(一)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1516 更新时间:2009/4/23 18:58:02

VB经验技巧(一)

记载Windows使用的时间

怎样关闭一个正在运行的程序

我怎样确定我的程序是否在运行?

怎样延迟一个VB程序?

怎样改变双击鼠标的时间间隔?

怎样找到鼠标指针的XY坐标?

怎样捕捉窗体的鼠标?

怎样使我的程序总处于屏幕最前方?(Always on top)

怎样得到文本框(TextBox)中的文本行数?

怎样使程序的标题条闪烁?

在程序设计中,我们经常遇见这样或那样的问题,即使是“身经百战”的编程老手,对于一些过于具体、细微的问题有时也会不知所措,以下是我从外文网站上摘取的一些VB经验技巧,并对它们进行的翻译整理,希望对你会有所帮助,有疏漏之处请大家指正,谢谢!


记载Windows使用的时间

有时候你需要记下每次Windows开启和关闭的时间,下面这个小程序就可以完成这个功能,你可以把它放在Windows开始菜单的“启动”文件夹里面,这样当你进入Windows时,这个小程序就会自动启动(不可见),并在你指定的文件中写下当时的时间,在你推出Windows系统时,小程序会关闭并记下离开的时间,并关闭记录文件。

Private Sub Form_Load()

Left = -10000

Top = -10000

Open "c:\apps\log.txt" For Append As #1

Print #1, "On: " & CStr(Now)

Close #1

End Sub

Private Sub Form_Unload(Cancel As Integer)

Open "c:\apps\log.txt" For Append As #1

Print #1, "Off:" & CStr(Now)

Close #1

End

End Sub


怎样关闭一个正在运行的程序

 

你可以使用API函数FindWindow和PostMessage去寻找指定的窗口,并关闭它。下面的例子教给你怎样找到并关掉一个Caption为“Caluclator”的程序。

 

Dim winHwnd As Long

Dim RetVal As Long

winHwnd = FindWindow(vbNullString, "Calculator")

Debug.Print winHwnd

If winHwnd <> 0 Then

RetVal = PostMessage(winHwnd, WM_CLOSE, 0&, 0&)

If RetVal = 0 Then

MsgBox "置入消息错误!"

End If

Else

MsgBox "Calculator没有打开!"

End If

 

为了让以上的代码工作,你必须在模块文件中什么以下API函数:

 

Declare Function FindWindow Lib "user32" Alias _

"FindWindowA" (ByVal lpClassName As String, _

ByVal lpWindowName As String) As Long

Declare Function PostMessage Lib "user32" Alias _

"PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _

ByVal wParam As Long, lParam As Any) As Long

Public Const WM_CLOSE = &H10


我怎样确定我的程序是否在运行?

 

把以下代码放在第一个窗体的Form_Load事件中:

 

If App.PrevInstance = True Then

Call MsgBox("这个程序正在运行!",_

vbExclamation)

End

End If


怎样延迟一个VB程序?

 

延迟在VB中非常有意义!举个例子,有时你需要等待一个额外的过程完成,才能运行程序下面的代码。延迟使程序摆脱了CPU的运算速度对程序运行速度的影响,但是在VB中却没有延迟这个很多语言都有的现成函数,所以还要依靠API函数,请看以下的代码:

 

Declare Sub Sleep Lib "kernel32" _

(ByVal dwMilliseconds As Long)

 

''''延迟1秒

Call Sleep(1000)


怎样改变双击鼠标的时间间隔?

 

在较短时间里连续的点击两次鼠标就会造成鼠标双击事件。你可以调用API函数SetDoubleClickTime改变鼠标双击所需要的时间,它只有一个参数,并可精确到毫秒级。

 

Declare Function SetDoubleClickTime _

Lib "user32" Alias "SetDoubleClickTime" _

(ByVal wCount As Long) As Long

 

提示:这种改变将影响到整个操作系统。


怎样找到鼠标指针的XY坐标?

 

在很多的作图软件中都有一个小的区域显示当前屏幕上的光标位置,这利用API函数非常容易做到,下面的例子将演示使用代码如何返回当前光标的XY的坐标值。

 

步骤:

  1. 在VB5中建立一个新项目文件,Form1使用默认设置.

  2. 选择菜单的“Project/add Module”,建立一个新的模块文件“Moudule1”。

  3. 输入以下代码声明API函数。

    Option Explicit

    Type POINTAPI '''' Declare types

    x As Long

    y As Long

    End Type

    Declare Function GetCursorPos Lib "user32" _

    (lpPoint As POINTAPI) As Long '''' Declare API

  4. 把焦点移到Form1,添加两个标签对象(Label)和一个计时器对象(Timer1),把计时器的Interval属性设为1,然后双击Form1的任何区域,在代码窗口中输入:

 

 

Option Explicit

Dim z As POINTAPI '''' 声明变量

 

Private Sub Timer1_Timer()

GetCursorPos z '''' 得到坐标

Label1 = "x: " & z.x '''' 得到X坐标

Label2 = "y: " & z.y '''' 得到Y坐标

End Sub

 

5、按F5运行程序,移动鼠标注意观察两个标签对象的变化。


怎样捕捉窗体的鼠标?

 

这个技巧将向您展示如何使用捕捉光标的API函数阻止鼠标指针移出窗体。

 

注意!:如果窗体的BorderStyle属性被设为sizeable(2或5),则当你改变窗体的大小时鼠标就会“逃脱”程序的监控!因此你最好把BorderStyle设为0、1、3或4。

 

步骤:

 

  1. 把以下代码添加如模块:

 

Option Explicit

Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Declare Function ClipCursor Lib "user32" _

(lpRect As Any) As Long

 

Public Sub DisableTrap(CurForm As Form)

Dim erg As Long

''''声明过程变量

''''设置新坐标

Dim NewRect As RECT

C

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台