PDA

Ver la Versión Completa : Camara Web conectada o no


Novás
01-03-2007, 15:07:39
Hola a todos, mi pregunta es si existe algún componente (a poder ser free) que me detecte la desconexión de la cámara web del pc.

Gracias muchas de antemano.

seoane
02-03-2007, 01:21:48
Es una pregunta interesante, supongo que estamos hablando de una cámara web que se conecta por un usb, ya que desconectar en caliente una PCI seria una burrada :D .

No tengo ninguna Webcam Usb para probar, pero se me ocurre lo siguiente, listar la cámaras disponibles:

function capGetDriverDescription(Index: WORD; Name: PChar; cbName: Integer;
Ver: PChar; cbVer: Integer): BOOL; stdcall;
external 'AVICAP32.DLL' name 'capGetDriverDescriptionA';

var
i: integer;
Name, Ver: array[0..1024] of Char;
begin
for i:= 0 to 9 do
if capGetDriverDescription(i,@Name,Sizeof(Name)-1,@Ver,Sizeof(Ver)-1) then
begin
// En name tenemos la descripcion (nombre) de la camara, podemos comararlo
// con un valor conocido, o guardarlo en una lista. Tu veras ...
end;
end.


Ahora podemos detectar que se a quitado la webcam de dos maneras, si conocemos su nombre podemos comprobar si su nombre esta en la lista, si no esta es que la han quitado. Si no conocemos su nombre creamos una lista con los nombres, si la lista cambia entre una vez y otra es que han quitado o insertado una cámara. En ambos casos, tendríamos que realizar la comprobación a intervalos regulares (100 ms por ejemplo) para detectar en momento exacto en que se desconecta la cámara.

Puede que no sea la mejor solución, pero por ahora te puede servir :)

fealso84
21-06-2007, 00:28:18
bueno, en realidad lo que necesito es un código que me permita listar los dispositivos que se encuentran en el administrador de dispositivos, especialmente las cámaras, los scanners y si alguien ha trabajado con scanners de huella. cualquier ayuda es cariño.