VB常用API

来自:http://basicfan.yeah.net/ 作者:赵洋
用VB做屏保等程序时,需要隐藏鼠标,蔽屏Win键,Ctrl+Alt+Del、口令保存、防止窗体被重复调用等。
  • 准备工作:首先要使用API函数,应在VB中新建一个工程,在工程新建一个标准模块。将API函数的声明输入到标准模块中去。但由于API函数声明太长了,不好输入可以在API浏览器中复制(什么你没有装,找出VB盘装上不然@#$%&*),在标准模块中粘贴。
  • 隐藏鼠标:当屏保运行时要隐藏光标,可以用API函数的ShowCursor,的的声明格式为:

Public Declare Function ShowCursor Lib "user32" Alias "ShowCursor" (ByVal bShow As Long) As Long当参数bShow为

-1时,函数将系统的光标隐藏;为1时,函数将光标显示。

  • 蔽屏“Ctrl+Alt+Del”和Win键:用SystemParametersInfo函数取消Ctrl+Alt+Del和Win,声明格式为:

Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long

当函数的uAction参数值为SPI_SCREENSAVERRUNNING=97&、uParam的参数为1&、其它参数为0时,函数取消 Ctrl+Alt+Del;当函数的uAction参数值为SPI_SCREENSAVERRUNNING=97&、uParam的参数为0&、其它参数为0时,函数恢复Ctrl+Alt+Del。

  • 防止程序重复调用:使用一些如《金山词霸》之类的软件,你会发现无论你怎样调用应用程序,但总是启动一次,就无法同时启动第二次,就要用FindWindows函数检查主窗体是否被调用函数的声明格式:

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

其中lpClassName参数设置为vbNullString,WindowsNmae要为要检查窗体的标题。

  • 注册表操作

1)RegCreateKey函数:

函数功能是在注册表中建立一个新的主键。如果该主键以存在,则打开该主键。函数声明格式:

Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

参数hKey为任何一个打开的主键的句柄,将新建的主键放在它的下面。基本主键HKEY_CURRENT_USER=H80000001。

LpSubKey参数要建立的主键名。

PhkResult参数返回新建或已经打开的主键句柄。