IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Liste des webcams


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 47
    Points : 45
    Points
    45
    Par défaut Liste des webcams
    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

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    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

    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.
        }
    }
    voila

    bonne continuation

  3. #3
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Voici une version utilisant DirectShow:

    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();
    Penser au:

    et autres...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 47
    Points : 45
    Points
    45
    Par défaut
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 47
    Points : 45
    Points
    45
    Par défaut
    Il manquait déjà un ) dans le if.

    L'erreur du wIndex s'est résolue aussi mystérieusement qu'elle est apparue !

    Totofweb

  6. #6
    ubu
    ubu est déconnecté
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 38
    Points : 47
    Points
    47
    Par défaut
    Si tu n'as plus d'erreur, pense au tag [resolu]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste des webcams
    Par Kaneda Shotaro dans le forum C#
    Réponses: 2
    Dernier message: 10/06/2009, 20h31
  2. Réponses: 11
    Dernier message: 28/02/2007, 12h18
  3. [] [Réseau] Liste des répertoires d'un FTP
    Par Maitre Kanter dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/03/2003, 16h39
  4. [Kylix] Liste des fichiers d'un répertoire
    Par Houben Jacques dans le forum EDI
    Réponses: 3
    Dernier message: 30/11/2002, 21h14
  5. Réponses: 2
    Dernier message: 04/10/2002, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo