Delphi获取显卡和系统各种音频设备的代码实现
轉載?http://www.codefans.net/articles/396.shtml
Delphi獲取不同的聲音播放設備,這些設備包括:Aux設備、Wave播放設備、錄音設備、MIDI音樂播放、MIDI音樂輸入設備、游戲桿設備、混合設備,同時也可獲取到顯卡硬件信息。如果你需要使用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.
總結
以上是生活随笔為你收集整理的Delphi获取显卡和系统各种音频设备的代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 删除文件夹中包含的子文件夹及文件
- 下一篇: PHP安装wamp设置虚拟目录后,无法访