Bonjour
Comment lister la liste des webcams installées et configurées sur l'ordinateur de l'utilisateur ? Et comment déterminer alors la méthode de l'acquisition de l'image enregistrée ?
Merci
Totofweb
Bonjour
Comment lister la liste des webcams installées et configurées sur l'ordinateur de l'utilisateur ? Et comment déterminer alors la méthode de l'acquisition de l'image enregistrée ?
Merci
Totofweb
Bonjour,
Pour ce qui est des webcam j utilise vfw.h (video for windows)
qui te permet d aquerir des image de Capture Driver
si tu fais une recherche dans l aide SDK Windows avec le mot capture
ou capdriverconnect tu trouvera ton bonheur
il y a aussi des exemples de codes dont lister les Capture Driver
voici comment
voila
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <vfw.h> ... ... char szDeviceName[80]; char szDeviceVersion[80]; for (wIndex = 0; wIndex < 10; wIndex++) { if (capGetDriverDescription (wIndex, szDeviceName, sizeof (szDeviceName), szDeviceVersion, sizeof (szDeviceVersion)) { // Append name to list of installed capture drivers // and then let the user select a driver to use. } }
bonne continuation
Voici une version utilisant DirectShow:
Penser au:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 IEnumMoniker *pClassEnum; ICreateDevEnum *pDevEnum; ULONG cFetched; IMoniker *pMoniker; HRESULT hr; TStringList *DeviceName; pDevEnum = NULL; pClassEnum = NULL; pMoniker = NULL; pSrc = NULL; DeviceName=new TStringList; CoInitialize(NULL); CoCreateInstance(CLSID_SystemDeviceEnum, NULL, CLSCTX_INPROC,IID_ICreateDevEnum, (void **)&pDevEnum); hr=pDevEnum->CreateClassEnumerator(CLSID_VideoInputDeviceCategory, &pClassEnum, 0); while (pClassEnum->Next(1, &pMoniker, &cFetched) == S_OK) { IPropertyBag *pPropBag; pMoniker->BindToStorage(0, 0, IID_IPropertyBag, (void **)&pPropBag); VARIANT varName; VariantInit(&varName); hr = pPropBag->Read(L"FriendlyName",&varName,0); if (SUCCEEDED(hr)) { Variant V(varName); DeviceName->Add(AnsiString(V)); } VariantClear(&varName); pPropBag->Release(); pMoniker->Release(); } CoUninitialize();
et autres...
Code : Sélectionner tout - Visualiser dans une fenêtre à part #include <DShow.h>
Salut
Pour le premier code qui a été proposé, j'ai une erreur de compilation à propos de wIndex. Si je le déclre comme int préalableent, il me dit qu'il est définit deux fois, si je ne le déclare pas, il me dit que sa déclaration est terminée incorretement.
Que faire ?
Merci
Totofweb
Il manquait déjà un ) dans le if.
L'erreur du wIndex s'est résolue aussi mystérieusement qu'elle est apparue !
Totofweb
Partager