private bool LeerArchivo(out byte[] pTemplateEntrada, String pArchivoStr64)
        {
            string archivo;

            try
            {
                pTemplateEntrada = Convert.FromBase64String(pArchivoStr64);
                return(true);
            }
            catch (Exception ex)
            {
                pTemplateEntrada = null;

                StringBuilder sb = new StringBuilder();
                sb.Append("\n");
                sb.AppendFormat("Exception Found:\n{0}Type: {1}", string.Empty, ex.GetType().FullName);
                sb.AppendFormat("\n{0}Message: {1}", string.Empty, ex.Message);
                sb.AppendFormat("\n{0}Source: {1}", string.Empty, ex.Source);
                sb.AppendFormat("\n{0}Stacktrace: {1}", string.Empty, ex.StackTrace);

                if (ex.InnerException != null)
                {
                    sb.AppendFormat("\n{0}InnerMessage: {1}", string.Empty, ex.InnerException.Message);
                    sb.Append("\n");
                }
                String vError = " Error : " + sb.ToString();

                Util_Log.EscribirLog(vError);
                return(false);
            }

            return(true);
        }
        public String renombrarSalidas(Int32 muestra, Int32 generarBmp, Int32 generarWsq, Int32 generarIso, Int32 generarAnsi, String pNom_Archivo)
        {
            String vResultadoTransferencia = "";

            try
            {
                //String vrutaAlmacenada = "C:\\template_Edu_" + pNom_Archivo + "_" + muestra.ToString() + ".ansi";
                String vrutaAlmacenada = pNom_Archivo;
                if (generarBmp == 1)
                {
                    File.Delete("huella" + muestra.ToString() + ".bmp");

                    File.Move("huella.bmp", "huella" + muestra.ToString() + ".bmp");
                }

                if (generarWsq == 1)
                {
                    File.Delete("huella" + muestra.ToString() + ".bmp");
                    File.Move("huella.wsq", "huella" + muestra.ToString() + ".wsq");
                }

                if (generarIso == 1)
                {
                    File.Delete("template" + muestra.ToString() + ".iso");
                    File.Move("template.iso", "template" + muestra.ToString() + ".iso");
                }

                if (generarAnsi == 1)
                {
                    File.Delete("template" + muestra.ToString() + ".ansi");
                    File.Move("template.ansi", vrutaAlmacenada);
                }
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("\n");
                sb.AppendFormat("Exception Found:\n{0}Type: {1}", string.Empty, ex.GetType().FullName);
                sb.AppendFormat("\n{0}Message: {1}", string.Empty, ex.Message);
                sb.AppendFormat("\n{0}Source: {1}", string.Empty, ex.Source);
                sb.AppendFormat("\n{0}Stacktrace: {1}", string.Empty, ex.StackTrace);

                if (ex.InnerException != null)
                {
                    sb.AppendFormat("\n{0}InnerMessage: {1}", string.Empty, ex.InnerException.Message);
                    sb.Append("\n");
                }
                String vError = " Error : " + sb.ToString();

                Util_Log.EscribirLog(vError);
            }

            return(vResultadoTransferencia);
        }
        public String CapturarBioIdentidad(string arg)
        {
            String vResultado = "";

            try
            {
                String vRutaArchivo       = arg.Split('|')[0];
                Int32  vNum_Muestra       = Convert.ToInt32(arg.Split('|')[1]);
                Int32  vopcionFormatoAnsi = Convert.ToInt32(arg.Split('|')[2]);
                Int32  vopcionFormatoWsq  = Convert.ToInt32(arg.Split('|')[3]);

                byte[] template1;
                int    template1Size;
                byte[] template2;
                int    template2Size;
                int    calidad;
                int    resultado;
                int    generarBmp = 0;
                int    generarWsq = 0;
                int    generarIso = 0;
                int    generarAnsi = 0;
                int    habilitarRepetir = 0, autoClose = 0;
                int    lfdEnable   = 0;
                int    lfdStrenght = 0;
                long   hWND;
                hWND        = GetForegroundWindow();
                generarAnsi = 0;
                //    generarIso = 1;
                //    generarBmp = 1;
                //    generarWsq = 1;
                //    autoClose = 1;
                //    habilitarRepetir = 1;
                //    lfdEnable = 1;
                lfdStrenght = 1;
                //    resultado = capturarEx(out calidad, generarBmp, generarWsq, generarIso, generarAnsi, 0, lfdEnable,
                //      lfdStrenght, habilitarRepetir, autoClose, hWND);

                try
                {
                    generarAnsi = vopcionFormatoAnsi;
                    generarWsq  = vopcionFormatoWsq;
                }
                catch (Exception ex)
                {
                    generarAnsi = 1;
                }

                autoClose = 1;
                var resultado1 = capturarEx(out calidad, generarBmp, generarWsq, generarIso, generarAnsi, 0, lfdEnable, lfdStrenght,
                                            habilitarRepetir, autoClose, hWND);
                if (resultado1 == 0)
                {
                    //template1 = System.IO.File.ReadAllBytes("template.Ansi");
                    //template1Size = template1.Length;
                    String vResultadoBase64 = ConvertirBase64(generarBmp, generarWsq, generarIso, generarAnsi);
                    //var resultado2 = capturar(out calidad, generarBmp, generarWsq, generarIso, 1, 0, lfdEnable, lfdStrenght,
                    //    habilitarRepetir, autoClose, hWND);
                    //if (resultado2 == 0)
                    //{
                    //    template2 = File.ReadAllBytes("template.Ansi");
                    //    template2Size = template2.Length;
                    //    renombrarSalidas(2, generarBmp, generarWsq, generarIso, generarAnsi);
                    //    resultado = mergeTemplates(template1, template1Size, template2, template2Size);

                    //}
                    if (vResultadoBase64.Contains("OK|"))
                    {
                        vResultado = vResultadoBase64 + "|" + calidad;
                    }
                    else
                    {
                        vResultado = "Error|Problemas al Generar archivo de BioIdentidad:";
                    }
                }
                else
                {
                    vResultado = "Error|Problemas al Generar archivo de BioIdentidad:";
                }
            }
            catch (Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("\n");
                sb.AppendFormat("Exception Found:\n{0}Type: {1}", string.Empty, ex.GetType().FullName);
                sb.AppendFormat("\n{0}Message: {1}", string.Empty, ex.Message);
                sb.AppendFormat("\n{0}Source: {1}", string.Empty, ex.Source);
                sb.AppendFormat("\n{0}Stacktrace: {1}", string.Empty, ex.StackTrace);

                if (ex.InnerException != null)
                {
                    sb.AppendFormat("\n{0}InnerMessage: {1}", string.Empty, ex.InnerException.Message);
                    sb.Append("\n");
                }
                String vError = " Error : " + sb.ToString();

                Util_Log.EscribirLog(vError);
            }

            return(vResultado);
        }
        public String ConvertirBase64(Int32 generarBmp, Int32 generarWsq, Int32 generarIso, Int32 generarAnsi, Int32 verificado = 0)
        {
            String vResultadoBase64      = "";
            String vResultadoBase64_Ansi = "";
            String vResultadoBase64_Wsq  = "";

            try
            {
                if (generarBmp == 1)
                {
                    //Byte[] bytes = File.ReadAllBytes("huella.bmp");
                    //vResultadoBase64 = Convert.ToBase64String(bytes);
                }

                if (generarWsq == 1)
                {
                    if (verificado == 1)
                    {
                        Byte[] bytes = File.ReadAllBytes("huella_v.wsq");
                        vResultadoBase64_Wsq = Convert.ToBase64String(bytes);
                    }
                    else
                    {
                        Byte[] bytes = File.ReadAllBytes("huella.wsq");
                        vResultadoBase64_Wsq = Convert.ToBase64String(bytes);
                    }
                }

                if (generarIso == 1)
                {
                    //Byte[] bytes = File.ReadAllBytes("template.iso");
                    //vResultadoBase64 = "OK|" + Convert.ToBase64String(bytes);
                }

                if (generarAnsi == 1)
                {
                    if (verificado == 1)
                    {
                        Byte[] bytes = File.ReadAllBytes("templa_v.ansi");
                        vResultadoBase64_Ansi = Convert.ToBase64String(bytes);
                    }
                    else
                    {
                        Byte[] bytes = File.ReadAllBytes("template.ansi");
                        vResultadoBase64_Ansi = Convert.ToBase64String(bytes);
                    }
                }

                vResultadoBase64 = "OK|" + vResultadoBase64_Wsq + "|" + vResultadoBase64_Ansi;
            }
            catch (Exception ex)
            {
                vResultadoBase64 = "";
                StringBuilder sb = new StringBuilder();
                sb.Append("\n");
                sb.AppendFormat("Exception Found:\n{0}Type: {1}", string.Empty, ex.GetType().FullName);
                sb.AppendFormat("\n{0}Message: {1}", string.Empty, ex.Message);
                sb.AppendFormat("\n{0}Source: {1}", string.Empty, ex.Source);
                sb.AppendFormat("\n{0}Stacktrace: {1}", string.Empty, ex.StackTrace);

                if (ex.InnerException != null)
                {
                    sb.AppendFormat("\n{0}InnerMessage: {1}", string.Empty, ex.InnerException.Message);
                    sb.Append("\n");
                }
                String vError = " Error : " + sb.ToString();
                vResultadoBase64 = "Error|" + sb.ToString();

                Util_Log.EscribirLog(vError);
            }

            return(vResultadoBase64);
        }