Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Webcam: Device-Liste (https://www.delphipraxis.net/23039-webcam-device-liste.html)

Florian H 27. Mai 2004 21:30


Webcam: Device-Liste
 
Hi,

evtl. gabs so einen Beitrag schon, aber ich wusste nicht, nach was ich noch suchen sollte, weil gefunden habe ich nix.

Ich erstelle mir über die WinAPI so eine Anzeige des aktuellen Webcam-Bildes.
Die Webcam-Treiber lade ich mit "capDriverConnect(hwnd, treiberid, z.B. 0);"
Nur wie kann ich nun eine liste bekommen, welcher Treiber welche ID hat?
Also wenn z.B. 2 Webcams angeschlossen sind, ist eine ja 0 und die andere 1, wie bekomme ich nun die namen?


viele grüße
flo

Florian H 11. Aug 2004 22:19

Re: Webcam: Device-Liste
 
ist schieben nach zweieinhalb Monaten erlaubt?
:mrgreen:

mischerr 12. Aug 2004 10:58

Re: Webcam: Device-Liste
 
Das geht über capGetDriverDescription. Beschrieben ist dies z.B. in der MSDN.

Grüsse!

Florian H 26. Aug 2004 16:40

Re: Webcam: Device-Liste
 
Zitat:

Zitat von mischerr
Das geht über capGetDriverDescription. Beschrieben ist dies z.B. in der MSDN.

Grüsse!

hm, komme da irgendwie nicht weiter, bzw. netmal anzufangen :wall: :gruebel:

mischerr 26. Aug 2004 20:59

Re: Webcam: Device-Liste
 
Echt? Woran hängt's denn? Da du capDriverConnect ja bereits hast, solltest du auch bereits capGetDriverDescription gefunden haben. :zwinker:
Du kannst also wohl die Prototypen weglassen, wenn bereits eine VfW-Unit eingebunden sein sollte, die capGetDriverDescription usw. definiert - hier nur der Vollständigkeit halber.
Code:
function   capGetDriverDescriptionA(wDriverIndex: UINT; lpszName: LPSTR; cbName: integer; lpszVer: LPSTR; cbVer: integer): BOOL; stdcall; external 'AVICAP32.DLL';
function   capGetDriverDescriptionW(wDriverIndex: UINT; lpszName: LPWSTR; cbName: integer; lpszVer: LPWSTR; cbVer: integer): BOOL; stdcall; external 'AVICAP32.DLL';
function   capGetDriverDescription(wDriverIndex: UINT; lpszName: LPSTR; cbName: integer; lpszVer: LPSTR; cbVer: integer): BOOL; stdcall; external 'AVICAP32.DLL' name 'capGetDriverDescriptionA';

procedure TForm1.bnEnumVfWDriversClick(Sender: TObject);
var Idx     : integer;
    szName,
    szVersion: array[0..MAX_PATH] of char;
begin
  ListBox1.Clear;
  for Idx:= 0 to 9 do begin
      if capGetDriverDescription(Idx,
                                 @szName,
                                 sizeof(szName),
                                 @szVersion,
                                 sizeof(szVersion)) then begin
         ListBox1.Items.Add(szName+' ('+szVersion+')');
      end;
  end;
end;
Leider hab ich hier keine Cam zum Testen, aber zumindest so'n XP Windows WDM Standart-Treiber wird gelistet. Habe aber auch schon woanders mit einer ähnlichen Variante auch die Cam-Treiber geliefert bekommen. Sollte also klappen. :angel:

Hoffe es hilft!

Grüsse!

mischerr 29. Aug 2004 19:28

Re: Webcam: Device-Liste
 
Nachtrag: Habe heute eine WebCam zum Test zuhause angeschlossen.

Bei dieser Cam (Genius...???) wurder der Treiber nicht gelistet, Logi usw. aber schon!

:idea: Sollte der Treiber nicht in der Liste erscheinen, sondern nur ein "Windows WDM...", dann schau mal, ob sich der Treiber über den Konfig-Dlg "capDlgVideoSource(CaptureWnd)" auswählen läßt. Dies ist mir zumindest unter XP aufgefallen - 2k war bislang immer ok!


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr.

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