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获取显卡和系统各种音频设备的代码实现相关推荐
- 【转载】Delphi获取与设置系统时间格式(长日期与短日期)
Delphi获得与设置系统时间格式 在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或 ...
- 获取显卡名称、显存大小 代码
获取显卡容量代码 #include <Windows.h> #include <string.h> #include <dxgi.h> #include <a ...
- 在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList
在delphi 获取特殊目录 SHGetSpecialFolderLocation SHGetPathFromIDList 前往专题相关软件相关文章发表评论 来源:本站整理时间:2015/7/21 1 ...
- 在配有英特尔® Iris™ 显卡的系统上通过优化对 Just Cause 3 进行增强
高端 PC 继续通过高性能显卡驱动桌面游戏. 一流的"梦想机器"基于第六代智能 英特尔® 酷睿™ 处理器i7-6700K等 CPU,通常与高端独立显卡配合使用以运行要求最严苛的游戏 ...
- 优化增强只是原因 3 在 Intel® Iris™ 显卡的系统上
继续推动采用令人惊叹的显卡的台式机游戏的高端电脑.如 6 搭载 Cputh代英特尔® 酷睿™ 品牌7-6700k,–先进的"敢于梦想机器"通常获取您配备高端独立视频卡,运行要求最苛 ...
- windows获取显卡名称
背景 女孩子想要男孩子在家中过夜,所以说"我家有一个会发光的3090",这样就会吸引男孩过去,毕竟没有一个男生会拒绝会发光的3090显卡.而这里的显卡信息是如何用代码获取呢? 作为 ...
- 获取当前的系统时间 年-月-日 小时-分钟-秒
获取当前的系统时间 年-月-日 小时-分钟-秒 代码如下: NSDate * newDate = [NSDate date]; //实例化一个NSDateFormatter对象 NSDateForma ...
- Android 使用反射机制获取或设置系统属性(SystemProperties)
网上有很多介绍,但是感觉比较混乱!由于自己能力有限,只做一些简单易懂的介绍. 一.获取和设置SystemProperties属性的代码 下面是通过反射来获取和设置系统属性的代码 public fina ...
- Android : 反射机制获取或设置系统属性(SystemProperties)
Android.os.SystemProperties 提供了获取和设置系统属性的方法,但是这个类被隐藏了,应用开发时无法直接访问,可以通过反射的机制进行操作. 获取系统属性 public stati ...
最新文章
- 苹果小圆点怎么关闭_苹果手机连按2下屏幕,就能自动截图,不知道的来学一学...
- 今日工作总结 2022-02-08
- Java面试题之HashMap如何有效减少碰撞
- python远程执行shell 防止注入脚本_解决 window 上python远程执行shell paramiko 下令 Permission denied...
- python一个函数调用另一个函数的返回值_python-调用另一个函数后立即从函数返回...
- iOS开发多线程篇—GCD的常见用法
- MIUI ROM for Milestone 刷机教程
- ESET 杀毒软件企业版
- WEB前端小米商城网页制作
- java 模板类 mock_mockj: 生成mock数据的利器,按照规则模板生成 mock 数据,mockjs的java实现。同时内置随机 random 一个对象的功能...
- 联合循环——16(电缆终端接地总结)
- require.context()的用法详解
- Message创建方式:new Message和obtainMessage的区别
- C#之判断字母大小、字母转ACII码
- Revit中添加了标高看不见原来轴网解决方法及轴网转化
- [转载]AIX 常见问题整理
- Tech Execs面对国会:9大收获
- Android本地服务器NanoHttpd配置Https双向认证
- 实例渲染(Instanced Rendering)
- 8月1日云栖精选夜读:独家:阿里巴巴DevOps落地实践玩法及思路解析
热门文章
- gazebo仿真环境加载多个机器人
- Ink on paper 最小生成树-Prim-二分答案并查集
- Zookeeper在Kafka中的作用
- 【手撸RPC框架】SpringBoot+Netty4实现RPC框架
- kmp算法详解php,php中字符串匹配KMP算法实现例子
- 2层框架结构柱子间距_框架结构的特点有哪些?框架结构是什么?
- python高阶函数filter_python 高阶函数之filter
- python sslerror_python3中SSLError错误处理
- 多目标粒子群优化算法_基于粒子群优化的投资组合优化研究
- 熵权法中计算的熵值与决策树的熵值完全不一样之谜