access:API使用集锦
时 间:2007-11-06 08:54:48
作 者:UMVSOFT整理 ID:16 城市:江阴
摘 要:Access:API使用集锦
正 文:
有时候你需要记下每次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坐标?
建立一个新的模块文件“Moudule1”。
输入以下代码声明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
把焦点移到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
按F5运行程序,移动鼠标注意观察两个标签对象的变化。
怎样捕捉窗体的鼠标?
这个技巧将向您展示如何使用捕捉光标的API函数阻止鼠标指针移出窗体。
注意!:如果窗体的BorderStyle属性被设为sizeable(2或5),则当你改变窗体的大小时鼠标就会“逃脱”程序的监控!因此你最好把BorderStyle设为0、1、3或4
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)
- 【Access高效办公】上月累...(01.09)
- 【Access高效办公】上月累...(01.06)
- 【Access Inputbo...(12.23)
- 【Access Dsum示例】...(12.16)

学习心得
最新文章
- 【Access高效办公】如何让vb...(04.11)
- 仓库管理实战课程(10)-入库功能...(04.08)
- Access快速开发平台--Fun...(04.07)
- 仓库管理实战课程(9)-开发往来单...(04.02)
- 仓库管理实战课程(8)-商品信息功...(04.01)
- 仓库管理实战课程(7)-链接表(03.31)
- 仓库管理实战课程(6)-创建查询(03.29)
- 仓库管理实战课程(5)-字段属性(03.27)
- 设备装配出入库管理系统;基于Acc...(03.24)
- 仓库管理实战课程(4)-建表操作(03.22)