首先应把MMSYSTEM单元加入,然后进行调用。先用midiOutGetNumDevs获得系统所带设备数,再用midiOutGetDevCapS获得设备说明。我写了个程序试验了一下。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,mmsystem;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var
num:uint;
i:Cardinal ;
midi:MIDIOUTCAPS;
mhr:MMRESULT ;
begin
num:=midioutGetNumDevs;
if (num=0) then
begin
showmessage('no device');
exit;
end;
for i:=0 to num-1 do
begin
mhr:=midiOutGetDevCaps(i,@midi,sizeof(midi));
case mhr of
MMSYSERR_BADDEVICEID:
showmessage('bad');
MMSYSERR_INVALPARAM:
showmessage('invalid');
MMSYSERR_NODRIVER:
showmessage('nodriver');
MMSYSERR_NOMEM:
showmessage('nomem');
MMSYSERR_NOERROR:
begin
showmessage('The Driver version is'+midi.szPname );
end; end;
end;
end;
end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls,mmsystem;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
var
num:uint;
i:Cardinal ;
midi:MIDIOUTCAPS;
mhr:MMRESULT ;
begin
num:=midioutGetNumDevs;
if (num=0) then
begin
showmessage('no device');
exit;
end;
for i:=0 to num-1 do
begin
mhr:=midiOutGetDevCaps(i,@midi,sizeof(midi));
case mhr of
MMSYSERR_BADDEVICEID:
showmessage('bad');
MMSYSERR_INVALPARAM:
showmessage('invalid');
MMSYSERR_NODRIVER:
showmessage('nodriver');
MMSYSERR_NOMEM:
showmessage('nomem');
MMSYSERR_NOERROR:
begin
showmessage('The Driver version is'+midi.szPname );
end; end;
end;
end;
end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货