转载 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获取显卡和系统各种音频设备的代码实现相关推荐

  1. 【转载】Delphi获取与设置系统时间格式(长日期与短日期)

    Delphi获得与设置系统时间格式 在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或 ...

  2. 获取显卡名称、显存大小 代码

    获取显卡容量代码 #include <Windows.h> #include <string.h> #include <dxgi.h> #include <a ...

  3. 在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList

    在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList 前往专题相关软件相关文章发表评论 来源:本站整理时间:2015/7/21 1 ...

  4. 在配有英特尔® Iris™ 显卡的系统上通过优化对 Just Cause 3 进行增强

    高端 PC 继续通过高性能显卡驱动桌面游戏. 一流的"梦想机器"基于第六代智能 英特尔® 酷睿™ 处理器i7-6700K等 CPU,通常与高端独立显卡配合使用以运行要求最严苛的游戏 ...

  5. 优化增强只是原因 3 在 Intel® Iris™ 显卡的系统上

    继续推动采用令人惊叹的显卡的台式机游戏的高端电脑.如 6 搭载 Cputh代英特尔® 酷睿™ 品牌7-6700k,–先进的"敢于梦想机器"通常获取您配备高端独立视频卡,运行要求最苛 ...

  6. windows获取显卡名称

    背景 女孩子想要男孩子在家中过夜,所以说"我家有一个会发光的3090",这样就会吸引男孩过去,毕竟没有一个男生会拒绝会发光的3090显卡.而这里的显卡信息是如何用代码获取呢? 作为 ...

  7. 获取当前的系统时间 年-月-日 小时-分钟-秒

    获取当前的系统时间 年-月-日 小时-分钟-秒 代码如下: NSDate * newDate = [NSDate date]; //实例化一个NSDateFormatter对象 NSDateForma ...

  8. Android 使用反射机制获取或设置系统属性(SystemProperties)

    网上有很多介绍,但是感觉比较混乱!由于自己能力有限,只做一些简单易懂的介绍. 一.获取和设置SystemProperties属性的代码 下面是通过反射来获取和设置系统属性的代码 public fina ...

  9. Android : 反射机制获取或设置系统属性(SystemProperties)

    Android.os.SystemProperties 提供了获取和设置系统属性的方法,但是这个类被隐藏了,应用开发时无法直接访问,可以通过反射的机制进行操作. 获取系统属性 public stati ...

最新文章

  1. 苹果小圆点怎么关闭_苹果手机连按2下屏幕,就能自动截图,不知道的来学一学...
  2. 今日工作总结 2022-02-08
  3. Java面试题之HashMap如何有效减少碰撞
  4. python远程执行shell 防止注入脚本_解决 window 上python远程执行shell paramiko 下令 Permission denied...
  5. python一个函数调用另一个函数的返回值_python-调用另一个函数后立即从函数返回...
  6. iOS开发多线程篇—GCD的常见用法
  7. MIUI ROM for Milestone 刷机教程
  8. ESET 杀毒软件企业版
  9. WEB前端小米商城网页制作
  10. java 模板类 mock_mockj: 生成mock数据的利器,按照规则模板生成 mock 数据,mockjs的java实现。同时内置随机 random 一个对象的功能...
  11. 联合循环——16(电缆终端接地总结)
  12. require.context()的用法详解
  13. Message创建方式:new Message和obtainMessage的区别
  14. C#之判断字母大小、字母转ACII码
  15. Revit中添加了标高看不见原来轴网解决方法及轴网转化
  16. [转载]AIX 常见问题整理
  17. Tech Execs面对国会:9大收获
  18. Android本地服务器NanoHttpd配置Https双向认证
  19. 实例渲染(Instanced Rendering)
  20. 8月1日云栖精选夜读:独家:阿里巴巴DevOps落地实践玩法及思路解析

热门文章

  1. gazebo仿真环境加载多个机器人
  2. Ink on paper 最小生成树-Prim-二分答案并查集
  3. Zookeeper在Kafka中的作用
  4. 【手撸RPC框架】SpringBoot+Netty4实现RPC框架
  5. kmp算法详解php,php中字符串匹配KMP算法实现例子
  6. 2层框架结构柱子间距_框架结构的特点有哪些?框架结构是什么?
  7. python高阶函数filter_python 高阶函数之filter
  8. python sslerror_python3中SSLError错误处理
  9. 多目标粒子群优化算法_基于粒子群优化的投资组合优化研究
  10. 熵权法中计算的熵值与决策树的熵值完全不一样之谜