Webcam name

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Rikudo.

    Webcam name

    Hallo Leute,

    Ich würde gerne den Namen meiner Webcam auslesen, und zwar den richtigen namen.
    Das hat ein freund in Delphi programmiert: *schnipp*
    Hier wird mir der richtige Webcamname angezeigt:


    Bei allen VB Lösungen die ich im Internet gefunden habe, wird mir immer nur Microsoft WDM Image Capture ausgespuckt...

    Gibt es eine möglichkeit über WMI o.ä. den richtigen Webcamnamen auszulesen?

    Keine Programmdownloads außerhalb des Showrooms! Editiert. ~fufu
    C# Developer
    Learning C++

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fufu“ ()

    Wenn du uns die Source von dem Projekt deines Freundes geben könntest oder zumindest den Teil, der für das Auslesen des Namen zuständig ist, können wir dir warscheinlich besser helfen :).
    Ok, hier ist der Delphi code:

    Quellcode

    1. {$APPTYPE CONSOLE}
    2. uses
    3. SysUtils,
    4. Windows,
    5. ActiveX,
    6. DirectShow9,
    7. ComObj;
    8. procedure EnumerateVideoInputDevices;
    9. const
    10. IID_IPropertyBag : TGUID = '{55272A00-42CB-11CE-8135-00AA004BB851}';
    11. var
    12. LDevEnum : ICreateDevEnum;
    13. ppEnumMoniker : IEnumMoniker;
    14. pceltFetched : ULONG;
    15. Moniker : IMoniker;
    16. PropBag : IPropertyBag;
    17. pvar : olevariant;
    18. hr : HRESULT;
    19. i : integer;
    20. begin
    21. CocreateInstance(CLSID_SystemDeviceEnum, nil, CLSCTX_INPROC, IID_ICreateDevEnum, LDevEnum);
    22. hr := LDevEnum.CreateClassEnumerator(CLSID_VideoInputDeviceCategory, ppEnumMoniker, 0);
    23. if (hr = S_OK) then
    24. begin
    25. while(ppEnumMoniker.Next(1, Moniker, @pceltFetched) = S_OK) do
    26. begin
    27. Moniker.BindToStorage(nil, nil, IID_IPropertyBag, PropBag);
    28. if PropBag.Read('FriendlyName', pvar, nil) = S_OK then
    29. Writeln(Format('Webcam: %s',[String(pvar)]));
    30. PropBag := nil;
    31. Moniker := nil;
    32. end;
    33. end;
    34. ppEnumMoniker :=nil;
    35. LDevEnum :=nil;
    36. end;
    37. begin
    38. try
    39. CoInitialize(nil);
    40. try
    41. EnumerateVideoInputDevices;
    42. finally
    43. CoUninitialize;
    44. end;
    45. except
    46. on E:EOleException do
    47. Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    48. on E:Exception do
    49. Writeln(E.Classname, ':', E.Message);
    50. end;
    51. Readln;
    52. end.
    C# Developer
    Learning C++