用DEPHI、VFP自动检测计算机设备
来源:cpcw 作者:蔡可训 出处:综艺读书 2005-11-19计算机设备有很多,如:光驱、声卡、键盘和鼠标等。如何在计算机应用程序中自动控制这些设备的使用,将给你的工作带来极大的方便。笔者用DEPHI和VFP编制了两组应用实例自动检测CD-ROM光驱和声卡。
一、用DEPHI、VFP自动检测CD-ROM光驱的方法:
|
|
|||
1.检测的关键:调用WINDOWS的API函数GetDriveType.即以微机上的可能盘符(A~Z)的对应值(0~25)作为该函数的入口参数对该函数进行调用,然后检查其返回值.若返回值为4,则表示检测到光驱或网络驱动器,否则未检测到.
2.WINDOWS的API函数GetDriveType,其语法格式如下:
Declare Function GetDriveType Lib "Kernel" (ByVal DriveNumber As Integer) As Integer
入口参数DriveNumber的取值为0,1,2,3等,其中A驱动器为0;B驱动器B为1;C驱动器为2;依此类推.函数返回值是0为未检测到驱动器;2为软驱;3为硬盘;4为CD-ROM光驱或网络驱动器.
3.应用实例:
实例一:用DEPHI 4.0自动检测CD-ROM光驱。
窗体 FORM1 用DEPHI 4.0自动检测CD-ROM光驱
procedure TForm1.FormCreate(Sender: TObject);
var drives,drivetype:string;
drvs:pchar;
x,i:integer;
begin
for i:=0 to 25 do
begin
drives:=chr(65+i)+:\;
strpcopy(drvs,drives);
x:=getdrivetype(drvs);
case x of
2:drivetype:=drives+是可移动驱动器。;
3:drivetype:=drives+是固定驱动器。;
4:drivetype:=drives+是网络驱动器。;
5:drivetype:=drives+是CD-ROM驱动器。;
6:drivetype:=drives+是RAMDISK驱动器。;
else
drivetype:=drives+不是驱动器。;
END;
showmessage(drivetype);
end;
end;
实例二:用VFP 6.0自动检测CD-ROM光驱。
DECLARE LONG GetDriveType in win32api string nDrive
clea
for cs=asc("A") to asc("Z")
drvs=chr(cs)+":\"
drives=GetDriveType(drvs)
do case
case drives=2
@ 2,10 say subs(drvs,1,1)+"驱动器是可移动驱动器。"
case drives=3
@ 3,10 say subs(drvs,1,1)+"驱动器是固定驱动器。"
case drives=4<
@ 4,10 say subs(drvs,1,1)+"驱动器是远程驱动器。"
case drives=5
@ 5,10 say subs(drvs,1,1)+"驱动器是CD-ROM。"
case drives=6
@ 6,10 say subs(drvs,1,1)+"驱动器是RAMDISK驱动器。"
other
@ 7,10 say "其余驱动器无效!"
endc
endf
retu
二、用DEPHI、VFP自动检测声卡的方法:
1.检测的关键:调用WINDOWS的API函数waveOutGetNumDevs,它可以用来检测声音设备安装的数目.
2.WINDOWS的API函数waveOutGetNumDevs,其语法格式如下:
Declare Function waveOutGetNumDevs Lib "MMSYSTEM" () As Integer
入口参数:无,函数返回值为0,则表示系统中未装声卡;否则必有声卡.
3.应用实例:
实例一:用DEPHI 4.0自动检测声卡。
(1)建立含有如下控件的窗体:
NAME CAPTION
FORM1 用DEPHI自动检测声卡
MEMO1 空
MEDIAPLAYER1
(2)程序清单:在USES语句中加入mmsystem.
procedure TForm1.FormCreate(Sender: TObject);
var devs:integer;
begin
devs:=waveOutGetNumDevs();
if devs$#@60;$#@62;0 then
memo1.lines.add(计算机中有声卡,可以播放DING.WAV!);
mediaplayer1.filename:=c:\windows\media\ding.wav;
mediaplayer1.open;
mediaplayer1.play;
end;
end.
实例二:用VFP 6.0自动检测声卡。
DECLARE LONG waveOutGetNumDevs in winmm
DECLARE LONG mciSendString in winmm string,long,long,long
x=waveOutGetNumDevs()
if x$#@60;$#@62;0
wait wind "您的计算机中有声卡,可以播放DING.WAV!"
cmstrs="play c:\windows\media\ding.wav"
x=MciSendString(cmstrs,0,0,0)
else
wait wind "您的计算机中没有安装声卡!"
endi
retu
以上程序在WINDOWS 98、DEPHI 4.0、VISUAL FOXPRO 6.0 环境中运行通过.
·用Foxpro制作Windows输入法码表 11-03
·用FoxPro生成HTML文件 11-03
·下载和上载远程视图数据 10-30
·为Visual FoxPro应用程序增加文件压缩功能 10-30
·为VFP添加循环微调控件类 10-30
·为FoxPro中的弹出式菜单增加自学习功能 10-30
·通过编程运行拨号网络连接 10-29
·谈谈在基于Foxpro的MIS中实现提示、帮助与询问 10-29
·谈谈VFP和SQL SERVER搭配做C/S系统 10-29
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




