Software 版 (精华区)
发信人: checcy (老巴夺), 信区: Software
标 题: 在多媒体软件中 自动检测CD-ROM和声卡
发信站: 哈工大紫丁香 (Sat Apr 4 15:58:12 1998), 转信
在多媒体软件中
自动检测CD-ROM和声卡
蔡可训
VB是目前WINDOWS平台上非常流行的可视化编程工具,
采用VB编制多媒体应用软件非常简单和快捷。一般在多媒
体系统中,CD-ROM光驱和声卡都是不可缺少的重要设备。
笔者在用VB开发的多媒体教学软件时,遇到了一个问题,由
于用户使用的每台微机的光驱和声卡情况不尽相同,如何
由程序自动检测系统中是否安装了CD-ROM光驱和声卡。经
过摸索,成功地解决了这一问题。
一、用VB自动检测CD-ROM光驱的方法:
1检测的关键:调用API函数GetDriveType。即以微
机上的可能盘符(A~Z)的对应值(0~25)作为该函数的入口
参数对该函数进行调用,然后检查其返回值。若返回值为4
,则表示检测到光驱或网络驱动器。
2WINDOWS的API函数GetDriveType,其语法格式如下
:
Declare Function GetDriveType Lib "Kernel" (By
Val DriveNumber As Integer) As Integer
入口参数:DriveNumber的取值为0、1、2、3等。函
数返回值是0为未检测到驱动器;2为软驱;3为硬盘;4为C
D-ROM光驱或网络驱动器。
3实现方法:
控 件 NAME CAPTION
窗体 FORM1 用VB自动检测CD-ROM光驱
图像框 IMAGE1
以下代码适用于WINDOWS 32和VB 30环境下:
Declare Function GetDriveType% Lib ″Kernel″
(ByVal nDrive%)
Sub Form_Click ()
Dim DRIVE_NUMS%, DRIVE_VALUE%, DRIVE_CHRS$,
PIC_PATH$
For DRIVE_NUMS% = 0 To 25
DRIVE_VALUE% = GetDriveType(DRIVE_NUMS%)
If DRIVE_VALUE% = 4 Then
DRIVE_CHRS$ = Chr$(DRIVE_VALUE% + 65)M
sgBox ″CD-ROM盘符:″ + DRIVE_CHRS$
PIC_PATH$ = DRIVE_CHRS$ + ″:\FPW26\FOX
.BMP″
IMAGE1Picture = LoadPicture(PIC_PATH$
)
End If
Next
End Sub
以下代码适用于WINDOWS95,VB 40环境下:
Declare Function GetDriveType Lib ″Kernel32″
Alias "GetDriveTypeA" (ByVal DriveNumber As Strin
g) As Integer
Sub Form_Click ()
Dim DRIVE_NUMS%, DRIVE_VALUE%, DRIVE_CHRS$,
PIC_PATH$
For DRIVE_NUMS% = 0 To 25
DRIVE_CHRS$ = CHR$(DRIVE_NUMS% + 65)&″:
″
DRIVE_VALUE% = GetDriveType(DRIVE_CHRS$)
If DRIVE_VALUE% = 5 Then
MsgBox ″CD-ROM盘符:″ + DRIVE_CHRS$
PIC_PATH$=DRIVE_CHRS$+″\FPW26\FOX.B
MP″
IMAGE1.Picture = LoadPicture(PIC_PATH$
)
End If
Next
End Sub
二、用VB自动检测声卡的方法:
1.检测的关键:调用API函数waveOutGetNumDevs,可以
用来检测声音设备安装的数目。
2.WINDOWS的API函数waveOutGetNumDevs,其语法格式
如下:
Declare Function waveOutGetNumDevs Lib ″MMSY
STEM″() As Integer
入口参数:无,返回值为0,则表示系统中未装声卡
3.实现方法:
控 件 NAME CAPTION
窗体 FORM1 用VB自动检测声卡
OLE2.0 OLE1
Declare Function waveOutGetNumDevs Lib ″MM
SYSTEM″() As Integer(适用于WINDOWS32,VB 3.0环境下
)
Declare Function waveOutGetNumDevs Lib ″WI
NMM″Alias ″waveOutGetNumDevs″() As Long (适用
于WINDOWS95,VB 4.0环境下)
Sub Form_Click ()
DIM SOUNDS%
SOUNDS = waveOutGetNumDevs()
If SOUNDS = 0 Then
MsgBox ″您的计算机中没有安装声卡
!″
Else MsgBox ″您的计算机中有声卡,可以播
放DINGWAV!″
OLE1.Class = ″SOUNDREC″
OLE1.SourceDoc = ″C:\WINDOWS\DING
WAV″
OLE1.Action = 1
OLE1.Action = 7
End If
End Sub
以上程序在同创P/133上、中文WINDOWS 3.2、WINDOW
S 95、VB 3.0、4.0 FOR WINDOWS环境中运行通过,用户可
将上述代码模块适当修改加入到自己的多媒体软件中去,
从而实现对CD-ROM光驱和声卡的自动检测。 --
*********************************
Chengyan Che - Software Freelancer
Harbin, P.R.China
mailto: checcy@public.hr.hl.cn
ICQ: 5116726
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.511毫秒