Einzelnen Beitrag anzeigen

Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Newbee! Anwendung für USB/HID - startet nicht auf andere

  Alt 29. Sep 2007, 16:33
Probieren wir es erst mal mit der HID-Komponente.
Delphi-Quellcode:
unit NB5100PMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, JvComponentBase, JvHidControllerClass, StdCtrls;

type
  TForm1 = class(TForm)
    HidCtl: TJvHidDeviceController;
    Label1: TLabel;
    ListBox1: TListBox;
    procedure HidCtlDeviceChange(Sender: TObject);
    procedure HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte;
      const Data: Pointer; Size: Word);
  public
    Dev: TJvHidDevice;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.HidCtlDeviceChange(Sender: TObject);
begin
  // pruefen ob das bereits benutzte Geraet ausgesteckt wurde
  if Assigned(Dev) and not Dev.IsPluggedIn then
  begin
    // das Geraet zurueckgeben
    HidCtl.CheckIn(Dev);
    Label1.Caption := 'No device';
  end;
  // noch kein Geraet in Benutzung
  if not Assigned(Dev) then
    // pruefen ob die Fernbedienung angesteckt wurde, wenn ja in Benutzung nehmen
    if HidCtl.CheckOutByID(Dev, $147A, $E019) then
    begin
      Label1.Caption := 'Device connected';
      Listbox1.Items.Clear;
    end;
end;

procedure TForm1.HidCtlDeviceData(HidDev: TJvHidDevice; ReportID: Byte;
  const Data: Pointer; Size: Word);
var
  I: Word;
  P: PChar;
  S: string;
begin
  P := Data;
  S := '';
  for I := 0 to Size - 1 do
    S := S + Format('%.2x ', [Cardinal(P[I])]);
  ListBox1.Items.Add(S);
end;

end.
Hier ein Programm fuer das Auslesen einer Fernbedienung. Ich glaube die richtige VID und PID einzusetzen sollte kein Problem sein.
Wenn du nicht die JVCL benutzt, dann JvComponentBase aus dem uses loeschen.
  Mit Zitat antworten Zitat