Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-06-2018
LanAndrew LanAndrew is offline
Registrado
 
Registrado: Jun 2018
Posts: 2
Poder: 0
LanAndrew Va por buen camino
Conexion camara web tscap32

Hola,

Estoy intentando conectar una cámara web a mi proyecto de Delphi de manera que pueda capturar una imagen de lo que se esté viendo en la cámara.

Me he instalado el componente tscap32 y la primera vez que lanzo el proyecto, me veo por la webcam del pc pero si cierro y vuelvo a abrir me salta un mensaje de error que dice amablemente "connect-message was not processed by the capture driver". Tengo Windows 7 de 64 bits... pero si una vez me funciona, no sé por qué no funciona las siguientes veces.

Y mi siguiente prueba es conseguir capturar la imagen que se vea en una cámara web que tengo Icube.

Alguien puede darme un poco de luz para ver más clarito el camino? Por favor!


Atentamente una Andrea desesperada...
Responder Con Cita
  #2  
Antiguo 11-06-2018
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: Jul 2004
Ubicación: Barcelona - España
Posts: 15.670
Poder: 10
Neftali [Germán.Estévez] Tiene un aura espectacularNeftali [Germán.Estévez] Tiene un aura espectacular
Cita:
Empezado por LanAndrew Ver Mensaje
...pero si cierro y vuelvo a abrir me salta un mensaje de error que dice amablemente "connect-message was not processed by the capture driver". Tengo Windows 7 de 64 bits... pero si una vez me funciona, no sé por qué no funciona las siguientes veces.

Te has planteado que ¿tal vez no estés "cerrando" correctamente la conexión con el driver?
De ahí que la segunda vez te esté dando error al conectar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 12-06-2018
LanAndrew LanAndrew is offline
Registrado
 
Registrado: Jun 2018
Posts: 2
Poder: 0
LanAndrew Va por buen camino
Efectivamente... Tiene pinta de que no se está cerrando pero no sé qué hacer para que se cierre!!

Es más, abro el proyecto y automáticamente me sale la imagen que visualiza la webcam del pc, doy a desconectar la cámara desde la pantalla de delphi, vuelvo a dar a conectar y se abre una ventanita en la que me pide que elija qué cámara quiero usar (solo detecta la webcam) la elijo y me da el error de ayer.

No sé por qué la primera vez que abro el programa detecta la cámara web directamente y una vez que cierro la ventana o desconecto la cámara, la siguiente vez que intento conectar la cámara me pide que elija y al elegirla me da error!

El procedure que utilizo para conectar/desconectar es:
Código Delphi [-]
procedure TtsCap32.SetConnected(status:Boolean);
var
  c: array[0..9]of Char;
begin
  //Beim Lesen der propertywerte existiert das Fenster noch nicht. Der property-
  //wert wird gespeichert und mit ihm wird nach CreateWnd SetConnected erneut aufgerufen
  if (csReading in ComponentState) then begin
    BufConnected := status;
    exit;
  end;

  if (PROHIBITED_STATES*ComponentState)<>[] then exit;

  if status then begin
    if not FConnected and IsWindow(Handle) then
    begin

      //automatische Suche nach einem Treiber:
      if FAutomaticSearchForDriver then
      try
        FDriverNo := AutomaticSearchForDriver;
      except
        //keiner gefunden: Abbruch
        MessageDlg(ERRMSG_GENERAL_OPEN_FAILED, mtError, [mbOk], 0);
        exit;
      end;

      {Capture-Window oeffnen}
      {Meldung:}
      StatusText := '--CONNECTING TO ' + FDriverNameList[FDriverNo] + '...--';
      Paint;
      {Broadcast an alle anderen TTSCAP32-Fenster, die sollen ihre Capturewindow schließen}
      BroadcastToWindows(Handle, 'TtsCap32', ConnectRequCode, FDriverNo, 0);

      StrPCopy(@c, 'TSCap32');
      FhCapWnd := 0;
      FhCapWnd := capCreateCaptureWindowA(@c, (WS_CHILD or WS_VISIBLE),
                                             0, 0, 200, 100, Handle, 0);
      if not IsWindow(FhCapWnd) then tsError('Open the Capturewindow failed', True);

      try
      {Verbindung zum Treiber herstellen}
        if not LongBool(SendMessage(WM_CAP_DRIVER_CONNECT, FDriverNo, 0)) then
          tsError(ERRMSG_CONNECT_FAILED, True) else FConnected := TRUE;
        {Drivercaps holen}
        FDriverCaps.UpdateShownCaps;
        {CapStatus holen}
        GetCaptureStatus;
        {Captureparameter holen}
        GetCaptureParameter;
        {Videoformat holen}
        GetVideoFormat;
        {AudioFormat holen}
        FAudioParameter.LoadAudioFormat;
        {Callbacks einschalten}
        InstallCallbacks(TRUE);
        InstallFrameCallback(FALSE);
        {eingestellte parameter übernehmen}
        ExecuteAll;
        {Größe d. CaptureFensters Updaten}
        Resize;
        StatusText := '--CONNECTED--';
        {Tastatur- und mouse - Messages zum CaptureWindow an Komponente weiterleiten, bitte}
        if IsMessageHookNeeded and not PreventMessageHook then
          tsCap32MessageRedirecter.RegisterHandlePair(self);
        //Userevent OnConnected
        if Assigned(FOnConnected) then FOnConnected(self, TRUE);
        //Userevent OnSync
        SyncExternalCtrls;
      except
        on E: Exception do begin
          {something was wrong. free all and disconnect}
          FConnected := FALSE;
          StatusText := '--DISCONNECTED--';
          DestroyWindow(FhCapWnd);
             FhCapWnd := 0;
   {$IFDEF TSCAP32_GERMAN_VERSION}
             tsError('Fehler bei Treiberanmeldung. Auslösende Exception meldet: '+ E.Message, True);
   {$ELSE}
             tsError('connect failed - exception message: '+ E.Message, True);
   {$ENDIF}
        end;
      end; //Exceptionblock
    end; //!FConnected&&IsWindow
  end //status
  else
  begin
    if FConnected then
    begin
      {Tastatur- und mouse-Message-umleitung aus}
      tsCap32MessageRedirecter.UnRegisterHandlePair(self);
      //nach außen hin ab jetzt disconnected
      FConnected:=FALSE;

      if IsWindow(hCapWnd) then begin
        {Falls Aufnahme am laufen, ausschalten}
        if CapturingNow then CapOrder := stop;
        {Callbacks ausschalten}
        InstallCallbacks(FALSE);
        {Verbindung zum Treiber abbrechen}
        if not LongBool(SendMessage(WM_CAP_DRIVER_DISCONNECT, FDriverNo, 0))then
          tsError('Disconnect failed', False);
        {Fenster killen}
        if (LongBool(DestroyWindow(FhCapWnd)) = FALSE) then
          tsError('CloseWindow failed', False);
      end;
      FSaveRequired := FALSE;
      FhCapWnd:=0;

      {Videoformat loeschen, falls gefüllt}
      if FpVideoFormat<>nil then
      begin
        FreeMem(FpVideoFormat);
        fpVideoFormat := nil;
      end;

      StatusText := '--DISCONNECTED--';
      //Userevent OnConnected
      if Assigned(FOnConnected) then FOnConnected(self, FALSE);
      //neuzeichnen
      Invalidate;
      {Drivercaps auf FALSE updaten}
      FDriverCaps.UpdateShownCaps;
      {Angeschlossenes Popupmenu synchronisieren}
      SyncExternalCtrls;
    end; //FConnected
  end; //!status
end;
Mil gracias de antemano por tu respuesta. Por cierto! Me encanta tu P.D!

Última edición por Casimiro Notevi fecha: 12-06-2018 a las 17:11:57. Razón: Poner etiquetas [delphi] [/delphi]
Responder Con Cita
  #4  
Antiguo 12-06-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.475
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No olvides poner el código entre sus etiquetas, para que se pueda leer.
Ejemplo:


Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Convertir cámara web en cámara IP jandro Varios 3 07-09-2013 00:19:32
Componente tsCap32 para Delphi7 javier.m866 La Taberna 5 26-12-2011 22:08:12
camara web en red lan? Jheysson13 Redes 0 04-03-2007 04:53:34
Conectar con una camara IP Leonardo Varios 0 23-06-2006 00:18:10
camara web kao Internet 0 16-03-2005 02:39:21


La franja horaria es GMT +2. Ahora son las 08:27:22.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi