Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prism USB-Geräte in Delphi(Prism) (https://www.delphipraxis.net/149401-usb-geraete-delphi-prism.html)

lord-schaschlik 20. Mär 2010 16:54


USB-Geräte in Delphi(Prism)
 
Hallo, wollte mal fragen ob es grundsätzlich möglich ist auf USB-Geräte zuzugreifen. Es gibt ja keine universelle Klasse wie bei der seriellen Schnittstelle, da die Funktionsweise eine andere ist. Kann ich Beispielsweise auf das Videobild einer Webcam zugreifen und dieses darstellen? Ich weiß nicht in wie fern ich die USB-Treiber des Geräte dann einbinden müsste? Vielleicht kann mir jemand ein bisschen Hilfe geben oder mir grundsätzlich davon abraten dieses Thema weiter zu verfolgen*G*

hathor 20. Mär 2010 17:09

Re: USB-Geräte in Delphi(Prism)
 
SUFU: HID-Device

Lumpiluk 20. Mär 2010 18:15

Re: USB-Geräte in Delphi(Prism)
 
Zitat:

Es gibt ja keine universelle Klasse wie bei der seriellen Schnittstelle
Zu dem Thema kann ich leider nicht viel sagen, aber steht USB nicht für Universal Serial Bus?

fkerber 20. Mär 2010 18:26

Re: USB-Geräte in Delphi(Prism)
 
Hi!

Zitat:

Zitat von hathor
http://www.delphipraxis.net/search.php?search_id=1589959615&start=0

Leider kannst du so nicht auf ein Suchergebnis verlinken - sag uns am besten wonach du gesucht hast ;)


Grüße, Frederic

Khabarakh 21. Mär 2010 00:29

Re: USB-Geräte in Delphi(Prism)
 
Wenn es speziell um Webcams geht, gibt es dafür sicher einige .NET-Wrapper: http://stackoverflow.com/questions/2...cam-usage-in-c
Ansonsten gäbe es noch die #usblib.

hathor 21. Mär 2010 07:53

Re: USB-Geräte in Delphi(Prism)
 
Zitat:

Zitat von fkerber
Hi!

Zitat:

Zitat von hathor
http://www.delphipraxis.net/search.php?search_id=1589959615&start=0

Leider kannst du so nicht auf ein Suchergebnis verlinken - sag uns am besten wonach du gesucht hast ;)


Grüße, Frederic

Sorry, wahrscheinlich ist der Link nur einige Stunden gültig!

SUFU: HID-Device

lord-schaschlik 22. Mär 2010 18:26

Re: USB-Geräte in Delphi(Prism)
 
Bin jetzt auf WIA gestoßen (http://www.codeproject.com/KB/dotnet...ingdotnet.aspx). Die Komponente ist in Windows enthalten und sollte in delphi Prism problemlos laufen. Die C# Samples funktionieren auch, so wie ich mir das vorstelle. Laut den oberen Link werden nur folgende Anweisungen benötigt:

wiaVideo = new WiaVideoClass();
wiaVideo.CreateVideoByWiaDevID(
wiaDeviceID, window.Handle, 0, 1 );

Hab die Verweise in Delphi wie beschrieben aufgenommen und unter uses eingetragen.
WIALib,
wiavideolib;

Folgenden Code habe ich jetzt

method MainForm.button1_Click(sender: System.Object; e: System.EventArgs);
var wiavideo:WiaVideoClass;

begin
wiavideo:=wiaVideo.CreateVideoByWiaDevID('ID',prev iewPanel.handle,0,1);
end;

Bekomm jetzt den Fehler

(PH2) Beste Übereinstimmung "WIAVIDEOLib.WiaVideoClass.CreateVideoByWiaDevID(b strWiaDeviceID: System.String; var hwndParent: WIAVIDEOLib._RemotableHandle; bStretchToFitParent: System.Int32; bAutoBeginPlayback: System.Int32)" passt nicht für Parameter 2, Parameter ist "System.Windows.Forms.Panel" sollte "WIAVIDEOLib._RemotableHandle" sein

Ich habe einfach ein Panel zur Vorschau verwendet
Und ich weiß nicht wie ich die ID die ein String sein soll herausfinde

Wahrscheinlich ist es total logisch, aber ich sehs einfach nicht

Khabarakh 22. Mär 2010 23:28

Re: USB-Geräte in Delphi(Prism)
 
Das Problem wird im Artikel sogar angesprochen, hast du wirklich die Dll daraus genommen?
Zitat:

Unfortunately, the embedded TLB has a bug for methods passing a window handle. I used ILDASM to get the IL code of the interop assembly, then I changed all incorrect occurances of 'valuetype _RemotableHandle&' to 'native int', then finally compiled back to an assembly with ILASM. This repaired DLL is included in the download as WIAVIDEOLib.dll.

lord-schaschlik 23. Mär 2010 17:31

Re: USB-Geräte in Delphi(Prism)
 
Bin am verzweifeln, der Fehler mit dem falschen Parameter ist weg, aber bring es einfach nicht zum Laufen. Weiß nicht ob WIA mit Prism nicht geht oder woran es liegt.

Code schaut jetzt so aus:

Delphi-Quellcode:
method MainForm.button1_Click(sender: System.Object; e: System.EventArgs);
var wiavideo:WiaVideoClass;
begin
  wiavideo := wiaVideo.CreateVideoByWiaDevID('{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\\0000', panel1.Handle, 0, 1);
  wiavideo.PreviewVisible := 1;
  wiavideo.Play;
end;

Fehlermeldung
Fehler 1 (CE15) Typ stimmt nicht überein, <unknown type> kann nicht zu WIAVIDEOLib.WiaVideoClass zugewiesen werden

DeviceID stimmt, gleiche ID in C# funktioniert

[edit=Phoenix]Delphi-Tags eingefügt. Das nächste mal bitte selber machen. Mfg, Phoenix[/edit]

Phoenix 23. Mär 2010 17:52

Re: USB-Geräte in Delphi(Prism)
 
Delphi-Quellcode:
method MainForm.button1_Click(sender: System.Object; e: System.EventArgs);
begin
  var video := new WiaVideoClass();
  video.CreateVideoByWiaDevID('{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\\0000', panel1.Handle, 0, 1);
  video.PreviewVisible := 1;
  video.Play();
end;
CreateVideoByWiaDevID ist eine Methode ohne Rückgabewert.
Du musst erst die Klasse erstellen und dann benutzen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz