Delphi获取显卡和系统各种音频设备的代码实现
2016-11-11 00:00
447 查看
转载 http://www.codefans.net/articles/396.shtml Delphi获取不同的声音播放设备,这些设备包括:Aux设备、Wave播放设备、录音设备、MIDI音乐播放、MIDI音乐输入设备、游戏杆设备、混合设备,同时也可获取到显卡硬件信息。如果你需要使用Delphi获取上述任一个系统设备的话,你不妨参考下这个代码,运行截图:
![](https://static.oschina.net/uploads/img/201611/11121959_iocp.gif)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,mmsystem;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var dd: TDisplayDevice;
begin
dd.cb := sizeof(dd);
ListBox1.Clear; //清空列表框
if EnumDisplayDevices(nil, 0, dd, 0)=false Then //获取当前使用的显卡
Listbox1.Items.Add('没有发现显卡设备信息')
Else
Listbox1.Items.Add('显卡------'+dd.DeviceString);
end;
procedure TForm1.Button2Click(Sender: TObject);
Var aux,waveout,wavein,midiout,midiin,mixer:integer;
auxcap:AUXCAPS;
waveoutcap:WAVEOUTCAPS;
waveincap:WAVEINCAPS;
midioutcap:MIDIOUTCAPS;
midiincap:MIDIINCAPS;
joycap:JOYCAPS;
mixercap:MIXERCAPS;
begin
aux:=Trunc(AuxGetNumDevs);
waveout:=Trunc(WaveOutGetNumDevs);
wavein:=Trunc(WaveInGetNumDevs);
midiout:=Trunc(MidiOutGetNumDevs);
midiin:=Trunc(MidiInGetNumDevs);
mixer:=Trunc(MixerGetNumDevs);
ListBox1.Clear; //清空列表框
//获取Aux设备
if aux=0 Then
ListBox1.Items.Add('没有发现AUX设备')
Else
Begin
AuxGetDevCaps(0,@auxcap,sizeof(AUXCAPS));
ListBox1.Items.Add('AUX设备---------'+auxcap.szPname);
end;
//获取Wave播放设备
if waveout=0 Then
ListBox1.Items.Add('没有发现Wave播放设备')
Else
Begin
WaveOutGetDevCaps(0,@waveoutcap,sizeof(WAVEOUTCAPS));
ListBox1.Items.Add('Wave播放设备---------'+waveoutcap.szPname);
end;
//获取录音设备
if wavein=0 Then
ListBox1.Items.Add('没有发现录音设备')
Else
Begin
WaveInGetDevCaps(0,@waveincap,sizeof(WAVEINCAPS));
ListBox1.Items.Add('当前录音设备-----------'+waveincap.szPname);
end;
//获取MIDI音乐播放
if midiout=0 Then
ListBox1.Items.Add('没有发现MIDI音乐播放设备')
Else
Begin
MidiOutGetDevCaps(0,@midioutcap,sizeof(MIDIOUTCAPS));
ListBox1.Items.Add('MIDI音乐播放设备----'+midioutcap.szPname);
end;
//获取MIDI音乐输入设备
if midiin=0 Then
ListBox1.Items.Add('没有发现MIDI音乐输入设备')
Else
Begin
MidiInGetDevCaps(0,@midiincap,sizeof(MIDIINCAPS));
ListBox1.Items.Add('MIDI音乐输入设备----'+midiincap.szPname);
end;
//获取游戏杆设备
JoyGetDevCaps(0,@joycap,sizeof(JOYCAPS));
if joycap.szPname='' Then
ListBox1.Items.Add('没有发现游戏操纵杆设备')
Else
ListBox1.Items.Add('游戏操纵杆设备----'+joycap.szPname);
//获取混合设备
if mixer=0 Then
ListBox1.Items.Add('没有发现混合设备')
Else
Begin
MixerGetDevCaps(0,@mixercap,sizeof(MIXERCAPS));
ListBox1.Items.Add('混合设备----'+mixercap.szPname);
end;
end;
End.
![](https://static.oschina.net/uploads/img/201611/11121959_iocp.gif)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,mmsystem;
type
TForm1 = class(TForm)
Button1: TButton;
ListBox1: TListBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var dd: TDisplayDevice;
begin
dd.cb := sizeof(dd);
ListBox1.Clear; //清空列表框
if EnumDisplayDevices(nil, 0, dd, 0)=false Then //获取当前使用的显卡
Listbox1.Items.Add('没有发现显卡设备信息')
Else
Listbox1.Items.Add('显卡------'+dd.DeviceString);
end;
procedure TForm1.Button2Click(Sender: TObject);
Var aux,waveout,wavein,midiout,midiin,mixer:integer;
auxcap:AUXCAPS;
waveoutcap:WAVEOUTCAPS;
waveincap:WAVEINCAPS;
midioutcap:MIDIOUTCAPS;
midiincap:MIDIINCAPS;
joycap:JOYCAPS;
mixercap:MIXERCAPS;
begin
aux:=Trunc(AuxGetNumDevs);
waveout:=Trunc(WaveOutGetNumDevs);
wavein:=Trunc(WaveInGetNumDevs);
midiout:=Trunc(MidiOutGetNumDevs);
midiin:=Trunc(MidiInGetNumDevs);
mixer:=Trunc(MixerGetNumDevs);
ListBox1.Clear; //清空列表框
//获取Aux设备
if aux=0 Then
ListBox1.Items.Add('没有发现AUX设备')
Else
Begin
AuxGetDevCaps(0,@auxcap,sizeof(AUXCAPS));
ListBox1.Items.Add('AUX设备---------'+auxcap.szPname);
end;
//获取Wave播放设备
if waveout=0 Then
ListBox1.Items.Add('没有发现Wave播放设备')
Else
Begin
WaveOutGetDevCaps(0,@waveoutcap,sizeof(WAVEOUTCAPS));
ListBox1.Items.Add('Wave播放设备---------'+waveoutcap.szPname);
end;
//获取录音设备
if wavein=0 Then
ListBox1.Items.Add('没有发现录音设备')
Else
Begin
WaveInGetDevCaps(0,@waveincap,sizeof(WAVEINCAPS));
ListBox1.Items.Add('当前录音设备-----------'+waveincap.szPname);
end;
//获取MIDI音乐播放
if midiout=0 Then
ListBox1.Items.Add('没有发现MIDI音乐播放设备')
Else
Begin
MidiOutGetDevCaps(0,@midioutcap,sizeof(MIDIOUTCAPS));
ListBox1.Items.Add('MIDI音乐播放设备----'+midioutcap.szPname);
end;
//获取MIDI音乐输入设备
if midiin=0 Then
ListBox1.Items.Add('没有发现MIDI音乐输入设备')
Else
Begin
MidiInGetDevCaps(0,@midiincap,sizeof(MIDIINCAPS));
ListBox1.Items.Add('MIDI音乐输入设备----'+midiincap.szPname);
end;
//获取游戏杆设备
JoyGetDevCaps(0,@joycap,sizeof(JOYCAPS));
if joycap.szPname='' Then
ListBox1.Items.Add('没有发现游戏操纵杆设备')
Else
ListBox1.Items.Add('游戏操纵杆设备----'+joycap.szPname);
//获取混合设备
if mixer=0 Then
ListBox1.Items.Add('没有发现混合设备')
Else
Begin
MixerGetDevCaps(0,@mixercap,sizeof(MIXERCAPS));
ListBox1.Items.Add('混合设备----'+mixercap.szPname);
end;
end;
End.
相关文章推荐
- Delphi获取显卡和系统各种音频设备的代码实现
- [代码]Delphi实现获取当前系统的语言信息
- JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
- 代码记录--代码获取设备型号和系统版本(utsname)
- 获取系统的音频输出设备并添加到一个组合框中
- 详解Android获取系统内核版本的方法与实现代码
- VBA获取系统环境变量及特殊文件夹的各种代码与方法
- jQuery动态地获取系统时间实现代码
- wince应用程序(实现 获取存储设备的大小、实现 WINCE 系统重新启动、隐藏/显示 Windows 任务栏等等)【C#】
- Linux 环境下C/C++获取系统时间 && 每隔500ms循环一次代码实现
- 一行代码完成 调用系统相册 和 视频,语音库,选择图片,视频,和音频文件。在选择界面实现了录制视频和录制音频功能。 截图
- 奖学金评分系统(系统分析与设计版与Delphi实现代码)
- 手机终端设备启动微信app客户端的JS实现代码------利用JS获取url参数值
- C/C++ 获取Windows系统的位数32位或64位的实现代码
- delphi实现js的获取时间,兼容各系统。
- 获取Android各类系统相关信息的接口实现代码
- jQuery动态地获取系统时间实现代码
- asp.net 获取系统中参数的实现代码
- 获取系统中所有的音频输出设备信息