unit AverTVdll;
interface
uses
Windows,Messages,ActiveX;
function GetIRstate(IRKey:byte):Boolean; cdecl;
function GetIR:Integer; cdecl;
implementation
function AVER_HWInit (handle:HWnd): Byte; cdecl; external 'averapi.dll';
function AVER_GetRemoteData (var button: Byte): Integer; cdecl; external 'averapi.dll';
function AVER_Free (data: Integer): Byte; cdecl; external 'averapi.dll';
var
handle:HWnd;
lastbutton:byte;
function GetIR: Integer;
var data: byte;
begin
try
data := 0;
if AVER_GetRemoteData(data) = 1 then
begin
if (data and 2) <> 0 then
begin
lastbutton := data and $fd;
Result := data and $ff;
end else Result := lastbutton;
end else Result := -1;
except
Result := -1;
end;
end;
function GetIRstate(IRKey:byte):Boolean;
begin
if GetIR=IRKey then result:=true
else result:=false;
end;
initialization
CoInitialize (nil);
AVER_HWInit(handle);
finalization
CoUninitialize;
end.
чтобы отловить сигнал в проге делаем следующее
function GetIR: Integer; cdecl; external 'getatv.dll'; function GetIRstate(b:byte):Boolean;cdecl; external 'getatv.dll'; procedure TForm1.Timer1Timer(Sender: TObject); var b:byte; begin RadioButton1.Checked:=GetIRstate(26);//кнопка play Label1.Caption:=IntToStr(GetIR);// код нажатой кнопки end;
Надесь это кому-нибудь будет полезно









