Как я могу получить все доступные драйверы веб-камеры на компьютере? Я хочу показать драйверы в поле со списком.Как получить список установленных веб-камер?
0
A
ответ
7
Чтобы перечислить веб-камеры, вы можете использовать System Device Enumerator, передавая CLSID_VideoInputDeviceCategory
GUID, который получит все устройства захвата видео.
Попробуйте этот образец
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows,
ActiveX,
DirectShow9,
ComObj;
procedure EnumerateVideoInputDevices;
const
IID_IPropertyBag : TGUID = '{55272A00-42CB-11CE-8135-00AA004BB851}';
var
LDevEnum : ICreateDevEnum;
ppEnumMoniker : IEnumMoniker;
pceltFetched : ULONG;
Moniker : IMoniker;
PropBag : IPropertyBag;
pvar : olevariant;
hr : HRESULT;
i : integer;
begin
CocreateInstance(CLSID_SystemDeviceEnum, nil, CLSCTX_INPROC, IID_ICreateDevEnum, LDevEnum);
hr := LDevEnum.CreateClassEnumerator(CLSID_VideoInputDeviceCategory, ppEnumMoniker, 0);
if (hr = S_OK) then
begin
while(ppEnumMoniker.Next(1, Moniker, @pceltFetched) = S_OK) do
begin
Moniker.BindToStorage(nil, nil, IID_IPropertyBag, PropBag);
if PropBag.Read('Description', pvar, nil) = S_OK then
Writeln(Format('Description %s',[String(pvar)]));
if PropBag.Read('FriendlyName', pvar, nil) = S_OK then
Writeln(Format('Friendly Name %s',[String(pvar)]));
if PropBag.Read('DevicePath', pvar, nil) = S_OK then
Writeln(Format('Device Path %s',[String(pvar)]));
if PropBag.Read('CLSID', pvar, nil) = S_OK then
Writeln(Format('CLSID %s',[String(pvar)]));
PropBag := nil;
Moniker := nil;
end;
end;
ppEnumMoniker :=nil;
LDevEnum :=nil;
end;
begin
try
CoInitialize(nil);
try
EnumerateVideoInputDevices;
finally
CoUninitialize;
end;
except
on E:EOleException do
Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
on E:Exception do
Writeln(E.Classname, ':', E.Message);
end;
Writeln('Press Enter to exit');
Readln;
end.
+0
Недостаточно WMI ;-) – OnTheFly
Смежные вопросы
- 1. Как получить список установленных кодеков?
- 2. Как получить список установленных медиаплееров
- 3. Как получить список установленных аудиоплееров?
- 4. Получить список установленных СУБД
- 5. Получить список установленных профилей
- 6. Как получить список установленных/не установленных зависимостей в Android Studio
- 7. Получить список установленных тем Aero
- 8. Получить список установленных приложений Windows
- 9. Какао получить список установленных приложений
- 10. Как получить список всех установленных приложений маршрутизации?
- 11. Как получить список установленных программных продуктов?
- 12. Как получить список установленных приложений Android Studio?
- 13. Как получить список установленных поставщиков OLE DB?
- 14. Как получить список установленных приложений с Unity3D?
- 15. Как получить список установленных приложений IOS
- 16. Как получить список установленных языков отображения?
- 17. Как программно получить список установленных программ
- 18. Как получить список установленных значков приложений
- 19. Как получить список установленных обновлений и исправлений?
- 20. Как получить список установленных универсальных приложений Windows?
- 21. Как получить список установленных процедур из класса
- 22. Как запрограммировать список установленных видеокодеков?
- 23. Как получить список запущенных приложений/список установленных приложений?
- 24. Список установленных оконных крючков
- 25. Список установленных приложений android
- 26. показать список установленных приложений
- 27. Список установленных пользователями приложений
- 28. Список файлов, установленных Nuget
- 29. (setup.py) список установленных файлов
- 30. Получить список установленных обновлений на ПК
И ответ, вероятно, "с запросом WMI." У нас есть эксперт по WMI и Delphi, который довольно активен; если он появится, он, вероятно, даст вам хороший ответ. –
Вы хотите, чтобы «установленные веб-камеры» (которые являются ** устройствами **) или «доступными драйверами веб-камеры» (которые являются ** драйверами **)? Это не одно и то же, и как получить каждый из них резко отличается. –
@ken Я был смущен тем же, поэтому я проголосовал за закрытие ... Хороший вопрос, если бы это было достаточно ясно ... –