Delphi获取显卡和系统各种音频设备的代码实现

转载 http://www.codefans.net/articles/396.shtml

Delphi获取不同的声音播放设备,这些设备包括:Aux设备、Wave播放设备、录音设备、MIDI音乐播放、MIDI音乐输入设备、游戏杆设备、混合设备,同时也可获取到显卡硬件信息。如果你需要使用Delphi获取上述任一个系统设备的话,你不妨参考下这个代码,运行截图:

Delphi获取显卡和不同的声音播放设备

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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值