API 函数关闭计算机、控制光驱、控制键盘-林岚
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-模块/函数/VBA


API 函数关闭计算机、控制光驱、控制键盘

发表时间:2018/1/30 22:52:14 评论(0) 浏览(4424)  评论 | 加入收藏 | 复制
   
摘 要:1、如何关闭计算机?
2、在程序中如何打开和关闭光驱门?
3、怎样使Ctrl-Alt-Delete无效?
4、怎样确定系统是否安装了声卡?
5、如何找到CD-ROM驱动器的盘号?
6、如何将文件放入回收站? 
7、如何得知键盘number lock等开关键的状态?
正 文:

1、如何关闭计算机?

*API函数声明 
Declare Function ExitWindows Lib "User" (ByVal dwReturnCode As Long, ByVal wReserved As Integer) As Integer
注释:执行 
Dim DUMMY 
DUMMY=ExitWindows(0
0) 

2、在程序中如何打开和关闭光驱门?

*API函数声明如下:
Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
注释:调用时的代码如下
Dim Ret As Long
Dim RetStr As String
注释:打开光驱门
Ret = mciSendString("set CDAudio door open", RetStr, 0, 0)
注释:关闭光驱门
Ret = mciSendString("set CDAudio door closed", RetStr, 0, 0) 

3、怎样使Ctrl-Alt-Delete无效? 

*API函数声明 
Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long 
编写如下函数: 
Sub DisableCtrlAltDelete(bDisabled As Boolean) 
Dim X As Long 
X = SystemParametersInfo(97, bDisabled, CStr(1), 0) 
End Sub 
使Ctrl-Alt-Delete无效  
Call DisableCtrlAltDelete(True) 
恢复Ctrl-Alt-Delete  
Call DisableCtrlAltDelete(False) 
 

4、怎样确定系统是否安装了声卡? 

*API函数声明: 
Declare Function waveOutGetNumDevs Lib "winmm.dll" Alias "waveOutGetNumDevs" () As Long 
代码如下: 
Dim I As Integer 
I = waveOutGetNumDevs() 
If I > 0 Then MsgBox "
你的系统可以播放声音。", vbInformation, "声卡检测
Else 
MsgBox "
你的系统不能播放声音。", vbInformation, "声卡检测
End If 

5、如何找到CD-ROM驱动器的盘号?

下面的函数将检查你计算机所有的驱动器看是否是 CD-ROM,如果是就返回驱动器号,如果没有就返回空字符 
Public Function GetCDROMDrive() As String 
 Dim lType As Long,I As Integer,tmpDrive as String,found as Boolean
 On Error GoTo errL
 For I = 0 To 25 
  tmpDrive = Chr(65 + I) & ":" 
  lType = GetDriveType(tmpDrive) 注释:Win32 API 函数 
  If (lType = DRIVE_CDROM) Then 注释:Win32 API 常数 
   found = True 
   Exit For 
  End If 
 Next 
 If Not found Then tmpDrive = "" 
 BI_GetCDROMDrive = tmpDrive 
 exit Function 
 errL: msgbox error$ 
End Function 

6、如何将文件放入回收站? 

**API函数声明
Public Type SHFILEOPSTRUCT 
hwnd As Long 
wFunc As Long 
pFrom As String 
pTo As String 
fFlags As Integer 
fAnyOperationsAborted As Long 
hNameMappings As Long 
lpszProgressTitle As Long 
End Type 
Public Declare Function SHFileOperation Lib _ "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Const FO_Delete = &H3 
Public Const FOF_ALLOWUNDO = &H40 
注释:调用
Dim Shop As SHFILEOPSTRUCT, strFile as string 
With Shop 
.wFunc = FO_Delete 
.pFrom = strFile + Chr(0) 
.fFlags = FOF_ALLOWUNDO 
End With 

7、如何得知键盘number lock等开关键的状态?

Declare Function GetKeyState Lib "User32" (ByVal lngVirtKey As Long) As Integer

GetKeyState(vbKeyNumLock)
GetKeyState(vbKeyCapital)

 


Access软件网交流QQ群(群号:198465573)
 
 相关文章
access键盘快捷键大全  【UMVsoft整理  2008/11/18】
Windows键盘快捷键大全  【风行  2011/3/26】
鼠标和键盘事件处理说明  【杜超-2号  2013/6/8】
键盘KeyCode值列表  【杜超-2号  2013/10/12】
Access利用api实现打开/关闭光驱  【zhengjin  2013/11/13】
API获取当前计算机名  【宏鹏  2017/2/17】
安装sql server2008时提示重启计算机失败怎么办  【宏鹏  2017/5/20】
常见问答
技术分类
相关资源
文章搜索
关于作者

林岚

文章分类

文章存档

友情链接